die()
Christian
- php
Um aus meinem PHP-Code auszusteigen benutze ich die(). Das bricht aber auch meinen HTML-Code ab! Es funtioniert zwar alles.. aber der Quelltext steht ohne die passenden end-tags da.
Gibt es eine bessere Lösung, oder muss ich meine end-tags als string in die()-Funtion schreiben?
Hello,
Um aus meinem PHP-Code auszusteigen benutze ich die(). Das bricht aber auch meinen HTML-Code ab! Es funtioniert zwar alles.. aber der Quelltext steht ohne die passenden end-tags da.
die() ist nicht geeignet, in komplexen Systemen genutzt zuwerden, bei denen der User nicht mit dem Fehler behelligt werden soll. Die89 dient mMn nur der Entwicklung einer Lösung bzw. im absoluten "Notfall".
Um eine vernünftige Lösung zu bauen, müsstest Du schon einen Plan machen, was wann passieren kann und muss, und dann entsprechende Funktionen erstellen.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Verstehe.
Aber gibt es keine einfache Alternative?
Ich möchte bei meinen Script, wenn ein bestimmter Fall zutrifft, nichts weiter machen sondern nur einen String ausgeben und aussteigen.
echo $begrüßung;
Aber gibt es keine einfache Alternative?
Ich möchte bei meinen Script, wenn ein bestimmter Fall zutrifft, nichts weiter machen sondern nur einen String ausgeben und aussteigen.
Nein, das möchtest du nicht, da ja dann, wie du bemerkt hast, der Rest des Scripts nicht abgearbeitet wird. Fehlerbehandlung ist manchmal umfangreicher als die eigentliche Aufgabe.
Normalerweise weiß eine Teilaufgabe nicht, was global gesehen die richtige Reaktion auf einen Fehler ist. Sie kann aber das Auftreten eines Fehlers an die aufrufende Stelle weiterleiten und dieser dann die geeignete Reaktion überlassen.
So könnte das beispielhaft aussehen:
<html>
<head>
<title>Fehlerbehandlung</title>
</head>
<body>
<?php
function foo() {
// machwas...
if fehleraufgetreten
return false;
else
return $ergebnis;
}
$ergebnis_von_foo = foo();
if ($ergebnis_von_foo)
echo "<p>$ergebnis_von_foo</p>";
else
echo '<p>Fehler aufgetreten</p>';
?>
</body>
</html>
echo "$verabschiedung $name";
Hi,
Aber gibt es keine einfache Alternative?
Ich möchte bei meinen Script, wenn ein bestimmter Fall zutrifft, nichts weiter machen sondern nur einen String ausgeben und aussteigen.
Du koenntest dir selbst eine Funktion schreiben, die mit echo eine Fehlermeldung ausgibt und die Tags abschliesst und anschliessend mit exit das laufende Script beendet. Wenn noetig kannst du dir auch noch eine Fehlerbeschreibung in ein Logfile schreiben lassen.
Diese Funktion rufst du dann statt die auf.
mfG,
steckl
Hallo,
Ich möchte bei meinen Script, wenn ein bestimmter Fall zutrifft, nichts weiter machen sondern nur einen String ausgeben und aussteigen.
Wenn Du PHP und HTML nicht zusehr vermischt hast, sondern alle grundlegenden PHP-Anweisungen vor der HTML-Ausgabe stehen, kannst Du ja eine komplette Fehlerseite ausgeben:
<?php
define('ERROR','<!DOCTYPE ...><html><body><p>Fehlermeldung...</p></body></html>');
// php...
// wenn fehler:
die(ERROR);
// HTML:
?><!DOCTYPE ...>
<html>
<body>
<?php echo $ausgabe; ?>
</body>
</html>
Alex
Hallo,
Gibt es eine bessere Lösung, oder muss ich meine end-tags als string in die()-Funtion schreiben?
Ich stand selber mal vor so einem Problem und habe dann ganz einfach einen Text als String-Variable gespeichert ($ende = "Es trat ein Fehler auf!</div></body></html>"; die($ende)
) und das Ergebnis funktioniert.
Grüße,
Willi
Ich grüsse den Cosmos,
Ich stand selber mal vor so einem Problem und habe dann ganz einfach einen Text als String-Variable gespeichert (
$ende = "Es trat ein Fehler auf!</div></body></html>"; die($ende)
) und das Ergebnis funktioniert.
Das diese Lösung Lichtjahre von einer anständigen Fehlerbehandlung ist, sollte dabei aber erwähnt werden.
Möge das "Self" mit euch sein
Hallo,
Ich stand selber mal vor so einem Problem und habe dann ganz einfach einen Text als String-Variable gespeichert (
$ende = "Es trat ein Fehler auf!</div></body></html>"; die($ende)
) und das Ergebnis funktioniert.Das diese Lösung Lichtjahre von einer anständigen Fehlerbehandlung ist, sollte dabei aber erwähnt werden.
Ja, ist mir auch klar, vielleicht ändere ich das noch. Abger ich habe es nur dazu benutzt bei einem Logout das Script abzubrechen und einen Link auf die Homepage zu setzen.
Grüße,
Willi