Jens Müller: include funktioniert nicht

Hi

  
error_reporting(E_ALL);  
  
$arr_verz = array('db1','db2','db3','db4','db5','db6');  
  
foreach($arr_verz as $einzelverzeichniss) {  
  
include ("../".$einzelverzeichniss."/inc/ini.inc");  
  
echo("$in_der_iniinc_hinterlegte_variable");  
}  

Im ersten Durchlauf wird die entsprechene "inc" eingebunden un die Variable wird ausgegeben, aber danach bricht das Sript anscheinend an.

Error_reporting bleibt still.

Was läuft hier falsch?

Gruß, Jens

  1. Tach!

    include ("../".$einzelverzeichniss."/inc/ini.inc");
    echo("$in_der_iniinc_hinterlegte_variable");

    Im ersten Durchlauf wird die entsprechene "inc" eingebunden un die Variable wird ausgegeben, aber danach bricht das Sript anscheinend an.
    Was läuft hier falsch?

    Das kann man nicht sagen, ohne den Inhalt der einzubindenden Dateien zu kennen. Nur dass in der echo-Zeile überflüssige Klammern und Anführungszeichen stehen. Aber das ist mehr ein Schönheitsfehler. (Auch include braucht keine Klammern.)

    Error_reporting bleibt still.

    Prüfe, ob Fehlermeldungen überhaupt ausgegeben werden, beispielsweise mit einem echo $foo; hinter dem error_reporting - $foo darf natürlich nicht existieren. Auch ein Blick in die phpinfo()-Ausgabe kann offenbaren, warum die Fehler nicht ausgegeben werden (zum Beispiel display_errors auf off gestellt). Weiterhin kann eine angefangene HTML-Seite dafür sorgen, dass Fehlermeldungen nicht als auszugebender Text interpretiert werden - da hilft ein Blick in die Quelltext-Anzeige des Browsers. Und auch das Error-Log vom Webserver kann Auskunft geben.

    dedlfix.

    1. Auch ein Blick in die phpinfo()-Ausgabe kann offenbaren, warum die Fehler nicht ausgegeben werden (zum Beispiel display_errors auf off gestellt).

      Danke, genau so war es auch.

      Notice: Constant menue already defined in ...

      Was kann ich nun tun, ohne die .inc-Dateien zu verändern?

      Kann ich die Konstante in der Schleife irgendwie "zurücksetzen", um sie nochmal benutzen zu dürfen?

      Gruß, Jens

      1. Kann ich die Konstante in der Schleife irgendwie "zurücksetzen", um sie nochmal benutzen zu dürfen?

        Es ist gerade der Sinn einer Konstante, konstant zu sein. Insbesondere nicht in includes überladen zu werden.

        Lösung: Verwende statt dessen eine Variable.

        Fred

  2. Schreib doch das alles mal ohne Schleife aus und schau was passiert.

    include ("../db1/inc/ini.inc");
    echo("$in_der_iniinc_hinterlegte_variable");
    include ("../db2/inc/ini.inc");
    echo("$in_der_iniinc_hinterlegte_variable");
    und so weiter

    Vielleicht bricht das zweite inc ab?