dave: PHP-Fehlermeldungen unterdrücken (auch bei Fehlern)?

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

  1. 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

  2. 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

  3. 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

  4. 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

  5. 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