Thomas Schmieder: include

Hallo,

bei der Ausmerzung von Holzwegen bin ich doch schon wieder auf einem gelandet!

Wie kann ich eine Fehlerbehandlung für

@include $dateiname;

durchführen? Die Standardfehlermeldung soll nicht angezeigt werden.

Grüße

Tom

  1. Hallo Thomas

    Wie kann ich eine Fehlerbehandlung für
    @include $dateiname;
    durchführen? Die Standardfehlermeldung soll nicht angezeigt werden.

    ich nehme mal an du willst vorher prüfen ob die Datei in $dateiname existiert:
    if(file_exists($dateiname){
     include ($dateiname);
    }
    else {
     include ($fehler);
    }
    (siehe auch http://www.php.net/manual/de/function.include.php(weiter unten bei den Beispielen))

    gruß
    Tobias [der sich freut dass er Name, E-Mail usw nicht mehr eingeben muss :)]

  2. Hallo,

    bei der Ausmerzung von Holzwegen bin ich doch schon wieder auf einem gelandet!

    Wie kann ich eine Fehlerbehandlung für

    @include $dateiname;

    durchführen? Die Standardfehlermeldung soll nicht angezeigt werden.

    indem Du vorher testest ob die Datei existiert und bei false, das include gar nicht ausführst sondern eine eigene Fehlermeldung erstellst.
    if(file_exists($dateiname))

    Grüße

    hih
    romy

    Tom

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
    1. Hi romy,

      bei der Ausmerzung von Holzwegen bin ich doch schon wieder auf einem gelandet!

      Wie kann ich eine Fehlerbehandlung für

      @include $dateiname;

      durchführen? Die Standardfehlermeldung soll nicht angezeigt werden.

      indem Du vorher testest ob die Datei existiert und bei false, das include gar nicht ausführst sondern eine eigene Fehlermeldung erstellst.
      if(file_exists($dateiname))

      Klar, Fehler vermeiden ist besser als welche behandel zu müssen. Aber trotzdem ich das vorher teste, kann das include trotzdem schiefgehen. Irgendein böser Mensch kann die zu includierende Datei ja genau in diesem Moment zwischen den beiden Statements gelöscht haben.

      Tom

      1. Hi romy,

        Hi Tom

        indem Du vorher testest ob die Datei existiert und bei false, das include gar nicht ausführst sondern eine eigene Fehlermeldung erstellst.
        if(file_exists($dateiname))

        Klar, Fehler vermeiden ist besser als welche behandel zu müssen. Aber trotzdem ich das vorher teste, kann das include trotzdem schiefgehen. Irgendein böser Mensch kann die zu includierende Datei ja genau in diesem Moment zwischen den beiden Statements gelöscht haben.

        ich glaube es ist nicht anders möglich, ich hatte dieses Problem auch von einer Woche ca. und da hatte ich auch nur Antworten in diese Richtig bekommen.
        Meine Suche verlief Ergebnislos (ich wollte mich mit dieser Tatsäche nämlich auch nicht zufriedengeben)
        weder php.net noch google konnte mir helfen
        also ich weiss da auch nicht weiter...
        ciao
        lg romy

        Tom

        --
        DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
        1. Hi romy,

          nochmal vielen Dank für Deine Mühe. Durch querlesen in php.net (errorhandling) hab ichs dann doch gefunden.

          Siehe oben. Vielleicht kannst Du es auch verwenden.

          @include("./defConst.inc.php");
          if ($php_errormsg) die("Konstantendefinitionen konnten nicht geladen werden!");

          Grüße

          Tom

          1. Hi Tom,

            nochmal vielen Dank für Deine Mühe. Durch querlesen in php.net (errorhandling) hab ichs dann doch gefunden.

            Siehe oben. Vielleicht kannst Du es auch verwenden.

            @include("./defConst.inc.php");
            if ($php_errormsg) die("Konstantendefinitionen konnten nicht geladen werden!");

            jo, danke
            vielleicht sollte ich demnächst auch mal die Augen auf machen *g*
            lg romy

            --
            DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
  3. Hallo,

    Wie kann ich eine Fehlerbehandlung für

    @include $dateiname;

    durchführen? Die Standardfehlermeldung soll nicht angezeigt werden.

    Erledigungsmeldung:

    der Affe vor include unterdrückt die Fehlermeldung und die Fehlerbehandlung (Scriptabbruch); das war vorhin auch schon klar.

    include ist _keine_ Funktion, wie in manchen Büchern dargestellt!

    Wenn in der php.ini track_errors=on geschaltet ist (Default ist Off), dann steht in $php_errormsg immer die letzte Fehlermeldung zur Verfügung. Das funktioniert auch bei @include "datei.ist.nicht.da";

    1. Hallo,

      [...]

      Wenn in der php.ini track_errors=on geschaltet ist (Default ist Off), dann steht in $php_errormsg immer die letzte Fehlermeldung zur Verfügung. Das funktioniert auch bei @include "datei.ist.nicht.da";

      Das funktioniert aber auch, wenn vorher bereits an einer anderen Stelle ein Fehler aufgetaucht ist:

      @$dead = $_POST['die']; // ;-)
      @include "datei.ist.da.inc.php";
      if ($php_errormsg) die($php_errormsg);

      Will sagen: Dein Skript stirbt auch dann, wenn ein Fehler auftritt den Du gar nicht behandeln willst.

      Gruß Alex

      1. Guten Abend,

        Wenn in der php.ini track_errors=on geschaltet ist (Default ist Off), dann steht in $php_errormsg immer die letzte Fehlermeldung zur Verfügung. Das funktioniert auch bei @include "datei.ist.nicht.da";

        Das funktioniert aber auch, wenn vorher bereits an einer anderen Stelle ein Fehler aufgetaucht ist:

        klar, und daher habe ich nun in der "Ladezone" immer als erstes unset($php_errormsg) stehen. Nun klappts auch mit dem Nachbarn...

        @$dead = $_POST['die']; // ;-)
        @include "datei.ist.da.inc.php";
        if ($php_errormsg) die($php_errormsg);

        Will sagen: Dein Skript stirbt auch dann, wenn ein Fehler auftritt den Du gar nicht behandeln willst.

        Liebe Grüße aus http://www.braunschweig.de

        Tom

    2. Hi Tom,

      Hallo,

      Wie kann ich eine Fehlerbehandlung für

      @include $dateiname;

      durchführen? Die Standardfehlermeldung soll nicht angezeigt werden.

      Erledigungsmeldung:

      der Affe vor include unterdrückt die Fehlermeldung und die Fehlerbehandlung (Scriptabbruch); das war vorhin auch schon klar.

      include ist _keine_ Funktion, wie in manchen Büchern dargestellt!

      Na und? Man hat ja trotzdem einen Rückgabewert.
      Beispiel:

      $da = @include("test.php");
      echo "<br>".$da; // Bei Erfolg ist $da 1, bei Misserfolg ein Leerstring.
      if($da != 1)echo("Shit!"); // oder die(); ...

      Fabian

      1. Guten Abend,

        Na und? Man hat ja trotzdem einen Rückgabewert.
        Beispiel:

        $da = @include("test.php");
        echo "<br>".$da; // Bei Erfolg ist $da 1, bei Misserfolg ein Leerstring.
        if($da != 1)echo("Shit!"); // oder die(); ...

        dieser Meinung war ich ja auch immer. Aber da die zu includierende Datei einen Fehler hatte, ging nix. Allerdings wurde die Fehlermeldung gesetzt auf irgend einen irren Text...

        Liebe Grüße aus http://www.braunschweig.de

        Tom