![]() |
[PHP] Session_destroy() beim Browser schließen
Hallo,
wie kann ich in PHP programmieren, dass beim schließen des Browsers der Session_destroy(); Befehl ausgeführt wird. In JavaScript werde ich das wohl schlecht einbauen können, oder? Gibt es in PHP sowas wie den Befehl OnClose()? Gruß Thomas |
Re: [PHP] Session_destroy() beim Browser schließen
Hi Plague,
über einige Umwege kannst du das machen:
Code:
Sollte so funktionieren, ist aber nicht getestet. WICHTIG: HTTP_REFERER in der unload_session.php testen, nicht dass irgendjemand Sessions löschen kann ;)
<html>
<head> <script> function UnLoad() { (new Image()).src="unload_session.php?id=<DeineID>"; } </script> </head> <body onUnload="UnLoad()"> </body> </html> Greetz alcaeus |
Re: [PHP] Session_destroy() beim Browser schließen
Hallo,
Zitat:
@Plague: was du machen kannst ist eigene Handler Funktionen für die Session Verarbeitung schreiben, welches dann beim löschen veralteter Einträge etwas macht. Mehr dazu im PHP Manual. |
Re: [PHP] Session_destroy() beim Browser schließen
Zitat:
Funktioniert der 1. Code nicht? |
Re: [PHP] Session_destroy() beim Browser schließen
Nö, im Allgemeinen nicht.
|
Re: [PHP] Session_destroy() beim Browser schließen
Uns wie könnte ich das dann trotzdem verwirklichen?
|
Re: [PHP] Session_destroy() beim Browser schließen
Zitat:
Greetz alcaeus |
Re: [PHP] Session_destroy() beim Browser schließen
Nagut, wenn dieser Code ein Sicherheiterisiko darstellt, lasse ich den mal außen vor. Was kann ich denn machen, wo es keine Sicherheitsprobleme gibt. Gibt es vielleicht irgendwo ein Tutorial zu dem Thema? In Google habe ich auch nichts dazu gefunden.
Gruß Thomas |
Re: [PHP] Session_destroy() beim Browser schließen
Ein abschliessende Lösung wirst du dafür nicht finden. Du kannst einfach auf dem Webserver nicht auf das Schliessen eines Fensters reagieren. Wurde im Webbrowser zum Beispiel JavaScript deaktiviert, dann wirst du nie erfahren, dass der Browser geschlossen wurde.
Vielleicht solltest du einfach nochmal besser beschreiben, was du vorhast. Dann können wir dir vielleicht auch besser helfen :cheers: |
Re: [PHP] Session_destroy() beim Browser schließen
Hi Christian,
Zitat:
@Thomas: Ich kenn mich mit den Sessions nicht ganz so gut aus, aber ich weiß dass in phpBB eine maximale Sessionlänge definiert ist, und bei jedem Seitenaufruf jede Session, die älter als diese Zeit ist rausgeworfen wird. Vielleicht kannst du sowas ähnliches implementieren. Greetz alcaeus |
Re: [PHP] Session_destroy() beim Browser schließen
Ähm die Session wird doch "zerstört" wenn man den Browser schließt, was will man mehr?
Oder versteh ich was falsch :roll: :gruebel: mfG |
Re: [PHP] Session_destroy() beim Browser schließen
wenn du die SID *zufällig* in der zwischenablage hast, kannst du (theoretisch) den Browser neustarten, und mit der alten SID weiterarbeiten ...
|
Re: [PHP] Session_destroy() beim Browser schließen
Man könnte auch 'nen Cookie, mit der Dauer 0 setzen, angeblich existiert der dann nur solange, bis der Browser geschlossen wird - vermutlich verschwindet dieser Keks auch schon, wenn zu 'ner anderen Seite gewechselt wird.
also bräuchte man dann nur beim laden von Seiten abrufen und wenn der vorhanden ist, dann ist es OK. z.B. so ähnlich, wie dieses:
Code:
if ($_COOKIE["Test"] == "OK") {
setcookie("Test", "OK", 0); $LogIn = true; } else if (passwort u.s.w. vergleichen) { setcookie("Test", "OK", 0); $LogIn = true; } else { $LogIn = false; } |
Re: [PHP] Session_destroy() beim Browser schließen
Zitat:
|
Re: [PHP] Session_destroy() beim Browser schließen
Na ja, ist doch genau das, was gewünscht wird :zwinker:
Zitat:
|
Re: [PHP] Session_destroy() beim Browser schließen
Da ist aber immer noch ein Problem.
Denn die Session soll/muss bestehen bleiben, wenn man ein Link klickt und auf eine andere Seite (die zu meiner Webseite gehört) geht... Gruß Thomas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz