include
Thomas Schmieder
- php
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
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 :)]
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
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
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
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
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
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";
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
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
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
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