meolon: Wie müsste es richtig heißen?

Hallo, Ich bastle zur Zeit an meiner HP(Ich benutze websitebaker( http://websitebaker-cms.de/ )), dabei wollte ich um nicht dauernd das Template ändern zu müssen sideboxen per include einbinden. Da ich allerdigns nicht grade so der phpcrack bin hab ichs einfach mal per gutdünken probiert und

<?php include("" + WB_URL + "boxes/feed.txt") ?>

benutzt(WB_URL ist eine variable die in websitebaker integiert ist und für den pfad zum ordner in dem wb installiert is steht).  Das funzt allerdings nicht.  Fehlermeldung:

Warning: include(0) [function.include]: failed to open stream: No such file or directory in /var/www/vhosts/meolon.de/httpdocs/templates/reddarkness/index.php on line 33

kann mir jemand sagen wie es richtig heißen müsste?
Danke und mfG meolon

  1. <?php include("" + WB_URL + "boxes/feed.txt") ?>

    benutzt(WB_URL ist eine variable die in websitebaker integiert ist

    WB_URL ist wahrscheinlich keine Variable sondern eine Konstante, ansonsten müsste da sowas stehen wie $wb_url, da alle Variablen in PHP mit '$' beginnen müssen.
    Falsch an der Sache ist das was in der Klammer steht.

    ("" + WB_URL + "boxes/feed.txt")

    Strings werden bei PHP nicht mit '+' verknüpft, sondern mit '.'.
    Warum schreibst du am Anfang des Ganzen einen leeren String hin? Was hat es für einen Sinn, einen String ohne irgendein Zeichen hizuschreiben, wenn du gleich darauf einen anderen String anhängst?
    Außerdem hast du vergessen, nach dem Funktionsaufruf einen ';' zu machen, wie es sich nach jeder Anweisung in PHP gehört.

    kann mir jemand sagen wie es richtig heißen müsste?

    <?php include(WB_URL.'boxes/feed.txt'); ?>

    mfg
    Rato

    --
    §§§
    Meine Postings basieren lediglich auf mein Wissen und können völliger Blödsinn sein.
    §§§
    1. echo $begrüßung;

      <?php include("" + WB_URL + "boxes/feed.txt") ?>
      Außerdem hast du vergessen, nach dem Funktionsaufruf einen ';' zu machen, wie es sich nach jeder Anweisung in PHP gehört.

      Das letzte Semikolon eines PHP-Blocks - also jenes vor dem ?> oder dem Dateiende - ist optional.

      Warum schreibst du am Anfang des Ganzen einen leeren String hin?

      Und wenn wir schon beim Krümeln sind :-) - include ist keine Funktion, benötigt also keine Klammern. Sie sind nicht falsch, nur überflüssig. Sie klammern hier einen Ausdruck, genauso wie beispielsweise in $a * ($b + $c).

      Und dann scheint mir das ganze include fehl am Platz, wenn, nach der Dateiendung zu schließen, eine Textdatei inkludiert werden soll. Wenn nur Textdateien ohne zu auszuführenden PHP-Code eingeladen werden sollen, nimmt man besser die Funktion readfile() - diesmal mit Klammern, da es eine echte Funktion ist.

      echo "$verabschiedung $name";

      1. Hi!

        Und dann scheint mir das ganze include fehl am Platz, wenn, nach der Dateiendung zu schließen, eine Textdatei inkludiert werden soll. Wenn nur Textdateien ohne zu auszuführenden PHP-Code eingeladen werden sollen, nimmt man besser die Funktion readfile() - diesmal mit Klammern, da es eine echte Funktion ist.

        Sollte es sich hier nicht um eine Textdatei handeln, sondern wirklich um eine Datei mit PHP-Code, dann sollte man diese in gar keinem Fall "irgendwas.txt" nennen.
        Einige Leute haben sich auch angewöhnt, ihren einzubindenen PHP-Dateien die Dateiendung ".inc" zu verpassen.
        Auch das sollte man in gar keinem Fall tun!

        Wenn man eine Datei mit PHP-Code einbinden will, dann sollte die Dateiendung immer ".php" lauten.
        Wenn der Dateiname nicht auf ".php" endet und jemand diese Datei direkt anfordert, dann wird sie entweder zum Download geboten (z.B. bei "irgendwas.inc") oder sie wird im Browser angezeigt (bei "irgendwas.txt).
        Das hat dann zur Folge, daß man den PHP-Code der Datei einsehen kann, was ganz gefährlich werden kann.

        Angenommen, du willst eine Verbindung zu deinem Datenbankserver herstellen.
        Weil du diesen Codeteil in verschiedenen Scripten brauchst, lagerst du ihn aus, speicherst den Krams als "connect.inc" ab und bindest das in deinen PHP-Scripten ein.
        Fordert jetzt jemand diese Datei direkt an, hat er die Zugangsdaten zu deinem Server.

        Mal gut, daß man solche Files nur schwer mit einer Suchmaschine findet, weil .inc-Files nicht verlinkt werden und weil Google keinen filetype:inc zuläßt (da gibt es nur ein paar wenige Filetypes).
        Naja, aber wenn ich mal eine Suchmaschine einsetze, dann finde ich schon ein paar Beispiele.

        In jedem Fall: Wenn es sich um eine einzubindene Datei mit PHP-Code handelt, dann muß sie die Endung ".php" erhalten.
        Wenn man so eine Datei direkt anfordert, dann kommt es zwar zur einer Fehlermeldung, aber der Quellcode wird nicht preisgegeben.

        Schöner Gruß,
        rob

        1. Moin,

          Wenn man eine Datei mit PHP-Code einbinden will, dann sollte die Dateiendung immer ".php" lauten.

          viel schlauer finde ich es, die Includes in einem Verzeichnis unterzubringen, dessen Inhalt gar nicht über HTTP abrufbar ist. Dann ist nämlich die Namensgebung egal, und man kann die Dateien so nennen, wie es am besten in das eigene Namensschema passt.

          Das hat dann zur Folge, daß man den PHP-Code der Datei einsehen kann, was ganz gefährlich werden kann.

          Es darf natürlich nie sein, dass der Besucher - und sei es aus Versehen - den PHP-Code zu lesen bekommt. Das verhindert man aber ebensogut, indem man beim Zugriff auf das Include-Verzeichnis grundsätzlich nur einen 403er zurückgibt.

          So long,
           Martin

          --
          Paradox ist, wenn der Innenminister sich äußert und der Außenminister sich erinnert.
        2. Angenommen, du willst eine Verbindung zu deinem Datenbankserver herstellen.
          Weil du diesen Codeteil in verschiedenen Scripten brauchst, lagerst du ihn aus, speicherst den Krams als "connect.inc" ab und bindest das in deinen PHP-Scripten ein.

          Dateien mit Zugangsdaten sollten ausserhalb des Webspace abgelegt werden. Die Skripte können dann immernoch darauf zugreifen (z.B. mit include). Ein Abruf solcher Dateien über den Webserver wird aber verhindert, unabhängig von der Erweiterung. Nur ein fehlerhaftes Skript könnte diese Daten kompromittieren, aber dagegen ist keine Methode gefeit.

          MfG
          GK

  2. Hallo meolon,

    Ich kenne websitebaker nicht, aber in php-Syntax waere
    <?php include(WB_URL . "boxes/feed.txt") ?> richtig, evtl. auch
    <?php include(WB_URL . "/boxes/feed.txt") ?>, ohne die Umstaende zu kennen, kann ich dir das nicht genau sagen.

    Gruß,

    Dieter

  3. Hallo meolon,

    <?php include("" + WB_URL + "boxes/feed.txt") ?>

    (WB_URL ist eine variable die in websitebaker integiert ist und für den pfad zum ordner in dem wb installiert is steht).  Das funzt allerdings nicht.

    Du benutzt die Konstante "WB_URL", die es aber offenbar nicht gibt und nicht etwa wie, wie Du denkst, eine Variable.

    kann mir jemand sagen wie es richtig heißen müsste?

      
    <?php  
      include($WB_URL.'boxes/feed.txt');  
    ?>  
    
    

    Zum Schluss noch 2 Links für dich: Was ist eine Variable? und Was ist eine Konstante?.

    Mit freundlichen Grüßen,
    Steffen Bruchmann

    --
    Mein Selfcode: ie:{ fl:( br:> va:) ls:& fo:| rl:( n4:& ss:| de:> js:| ch:{ mo:} zu:}