PHP-Funktion auslösen bevor man die Seite verlässt?

4 Antworten

Du kannst mit document.write() keinen PHP Code schreiben. PHP wird auf dem Server ausgeführt, nicht beim Client im Browser. PHP wird daher nur beim Seitenaufruf ausgeführt.

Um mit JavaScript PHP-Code auszuführen, musst du schon eine Anfrage an den Webserver schicken, beispielsweise mit AJAX oder Fetch. Sprich, du hast irgendwo auf dem Webserver eine PHP-Datei liegen, die bspw. per POST- oder GET-Parameter bestimmte Werte entgegennimmt, und diese PHP-Datei rufst du dann mittels AJAX oder Fetch in JavaScript auf.

Ich weiß allerdings nicht, ob das schnell genug passiert, damit das während dem document.unload Event klappt. Verlassen würde ich mich darauf nicht. MDN sagt übrigens auch, dass man das unload-Event nicht nutzen sollte, da es eben nicht verlässlich ist, insb. auf Mobilgeräten: https://developer.mozilla.org/en-US/docs/Web/API/Window/unload_event#usage_notes

Wenn schon sollte man nur auf das "visibilitychange" Event zurückgreifen.

Woher ich das weiß:Berufserfahrung – Inhaber einer App-Agentur & 15+ Jahre Programmiererfahrung

Ich kenne mich da wenig aus, aber wie wäre es mit einem Listener, der schaut, ob der User noch da ist, und wenn er nicht mehr da ist wird eine Funktion aufgerufen

Ich würde das ganz anders machen. Wenn der Client das unload Event auslöst, kannst du einen Ajax Request an ein PHP Script senden, welches die notwendigen Daten in die Datenbank schreibt.

Woher ich das weiß:Berufserfahrung – Web Developer bei einem mittelständischen Portalbetreiber
Wie füge ich Daten zu einer MySQL-Datenbank hinzu, genau dann, wenn der User die Seite verlässt

Gar nicht. Da http ein zustandsloses Protokoll ist, gibt es kein „Verlassen der Seite“.

Alex

Eliox 
Fragesteller
 19.02.2023, 15:27

Aber Google Analystics schafft es doch auch? Oder Tidio

0