PHP-Fehlermeldungen unterdrücken (auch bei Fehlern)?
dave
- php
0 André Laugks0 Axel Napolitano0 Kai Lahmann0 Linksetzer0 lulu
Hallo,
ich habe ein Kundenlogin mit Sessions, ich möchte nun aber, dass bei jedem Aufruf des Login-Formulars noch einmal der Befehl
session_destroy();
ausgeführt wird... zur Sicherheit, falls der Benutzer sich nicht ausgeloggt hat (ich habe keine Zeitbeschränkung eingebaut).
Meine Frage ist allerdings auch mal ganz Allgemein gerichtet: Kann man die PHP-Fehlermeldungen, welche auftreten können, auch unterdrücken?
In meinem Beispiel kommt z. B. eine Fehlermeldung, wenn er versucht diesen Befehl auszuführen, die Session jedoch längst beendet ist.
Lässt sich das unterdrücken?
Grüsse
dave
Hallo!
ausgeführt wird... zur Sicherheit, falls der Benutzer sich nicht ausgeloggt hat (ich habe keine Zeitbeschränkung eingebaut).
Solltest Du aber! Du solltest Dich nicht auf die eingestellte Lebensdauer (php.ini) verlassen. IMHO ist PHP diesbezüglich ein wenig bugi!
Meine Frage ist allerdings auch mal ganz Allgemein gerichtet: Kann man die PHP-Fehlermeldungen, welche auftreten können, auch unterdrücken?
Lässt sich das unterdrücken?
Du kannst Fehlermeldungen die von einer Funktion geliefert wird, mit einem @ vor der Funktion unterdrücken.
@session_destroy();
Ansonsten möchte ich Dir mal die folgende PHP-FAQ ans Herz legen:
->http://www.dclp-faq.de/
MfG, André Laugks
Hallo
ich habe ein Kundenlogin mit Sessions, ich möchte nun aber, dass bei jedem Aufruf des Login-Formulars noch einmal der Befehl
session_destroy();
ausgeführt wird... zur Sicherheit, falls der Benutzer sich nicht ausgeloggt hat (ich habe keine Zeitbeschränkung eingebaut).
Eiwei...Hast wohl satten WebSpace? Also ich persönlich würde Sessions generell mit einem Time-Out versehen. Damit erledigt sich Dein Problem schon fast. Zweite Strategie kann das Prüfen auf eine aktive Session sein und erst dann den Destroy auszulösen, wenn eine Session aktiv ist.
Hab's nicht getestet - sollte aber annähernd funktionieren:
if(session_is_registered(<sessionvariable>)) { session_destroy(); }
Meine Frage ist allerdings auch mal ganz Allgemein gerichtet: Kann man die PHP-Fehlermeldungen, welche auftreten können, auch unterdrücken?
Der Theorie (Handbuch) nach sollte es mit "error_reporting(0);" gehen. Sollte die erste Zeile nach "<?php" sein.
In meinem Beispiel kommt z. B. eine Fehlermeldung, wenn er versucht diesen Befehl auszuführen, die Session jedoch längst beendet ist.
Klar. Wo nix ist, kann nix beendet werden.
Gruß
Axel
hi
ausgeführt wird... zur Sicherheit, falls der Benutzer sich nicht ausgeloggt hat (ich habe keine Zeitbeschränkung eingebaut).
und solange kann man sich aber mit der alten Session (die möglicherweise ewig lebt) weiter durchwursteln? Ungut..
Grüße aus Bleckede
Kai
Meine Frage ist allerdings auch mal ganz Allgemein gerichtet: Kann man die PHP-Fehlermeldungen, welche auftreten können, auch unterdrücken?
http://www.php.net/manual/de/configuration.php -> display_errors, error_log, error_reporting, log_errors
Huhu dave
man kann auch einen eigene Funktion als error-handler definieren.
http://www.php.net/manual/en/function.set-error-handler.php
das funktioniert auch prima. Ich habe das z.B. mal so gebaut, dass ich schwerwiegende Fehler per eMail geschickt bekomme.
Allerdings ist da Vorsicht geboten, je nachdem wie buggy das Script ist und/ oder wie oft es geladen wird hast Du schnell einige hundert
Mails zusammen ;-).
Vorteilhaft ist auf jeden Fall, dass man einen "hübschen" EsIstEinFehlerAufgetreten-Screen ausgeben kann. Die "normalen" PHP-error-Meldungen sehen ja meist gefährlicher aus als sie sind.
Da denken manche gleich das ein bösartiger_destruktiver_pickliger_teenager
das System gekapert hat.
Viele Grüße
lulu