CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
19.07.2004, 12:46:09
|
Junior Member
|
|
Registriert seit: Jun 2004
Ort: Weiden i.d.Opf.
Alter: 46
Beiträge: 315
|
|
Seite verlassen, Funktion ausführen
Servus.
Hab da echt ein Problem, bei dem ich nicht weiter weiß: Beim Verlassen der Seite soll noch eine PHP-Funktion ausgeführt werden. Wie kann ich das bewerkstelligen? Mit dem JavaScript-Event "onUnload" gehts nicht. Außer ich mach da noch ein PopUp auf, indem ich schnell die Funktion ausfüren lasse und dann gleich schließe. Aber find ich nicht gerade sauber. Was kann ich machen?
Gruß
|
19.07.2004, 12:58:36
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Du kannst PHP nur aufrufen, in dem Du eine Seite lädst.
onUnload funktioniert zum Glück nur bei Frames, Du wirst Dir also was anderes ausdenken müssen.
Was hast Du denn vor?
|
19.07.2004, 12:59:46
|
Junior Member
|
|
Registriert seit: Aug 2002
Beiträge: 395
|
|
Re: Seite verlassen, Funktion ausführen
Zitat:
Original geschrieben von Zudecke
Was kann ich machen?
|
Kurze Antwort: Gar nichts! :(
PHP ist Serverseitig und wird nur beim Aufruf einer Seite ausgeführt, du weißt also gar nicht wann die Seite geschlossen wird. Die einzigste Möglichkeit ist, wie du schon sagtest, über PopUps o.ä. eine Seite aufzurufen die sich dann wieder selber schliesst.
Normalerweise arbeitet man mit Timeouts, das heißt z.B. hier im Forum: Wer ist online: Dort werden dann beispielsweise alle User angezeigt die in den letzten 5 Minuten eine Seite aufgerufen haben.
Gruss, Michael
|
19.07.2004, 13:28:52
|
Junior Member
|
|
Registriert seit: Jun 2004
Ort: Weiden i.d.Opf.
Alter: 46
Beiträge: 315
|
|
Die aktuellen Benutzer bei mir werden ausgegeben. Wenn sie die Seite verlassen, sollen sie aus der DB gelöscht werden bzw. da soll vermerkt werden, dass sie nicht mehr online sind. Und das sollte passieren, sobald sie wirklich nicht mehr da sind.
|
19.07.2004, 13:31:26
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Wie mad-boy schon sagte: Das geht nicht!
Du musst bei jedem Seitenaufruf alle Daten, die älter als n Sekunden/Minuten sind löschen.
|
19.07.2004, 13:33:03
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
EDIT: Da war ich ein bisschen langsam...
Das wirst du so nicht hinkriegen. Aber wie oben schon weiter beschrieben könntest du es ähnlich machen, wie hier im Forum:
In der Tabelle zwei Felder:
name //Name des Benutzers
zeit //Zeit der letzten Aktion des Benutzers (sollte bei jeder Aktion aktualisiert werden)
Und dann kannst du immer, wenn jemand die Seite aufruft, alle User aus der Tabelle löschen, die beispielsweise länger als 5 Minuten inaktiv waren:
PHP-Code:
<?php
mysql_query("DELETE FROM tabelle WHERE zeit<'" . (time()-300) . "'");
?>
|
19.07.2004, 14:46:28
|
Junior Member
|
|
Registriert seit: Jun 2004
Ort: Weiden i.d.Opf.
Alter: 46
Beiträge: 315
|
|
Ok, das mit dem Timeout zieh ich mal in Betracht ;-) .
Ich hättes jetzt trotzdem mal mit so nem PopUp versucht. Eigentlich ganz schmuck das Teil, "Verbindung wird beendet." und so.
Aber wie kann ich jetzt wieder unterscheiden, ob die Seite aktaulisert wird, oder ob er wirklich geht. Das PopUp sollte ja dann nur im letzteren Fall geöffnet werden.
Weiß da auch noch jemand Rat?
|
19.07.2004, 14:48:32
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Zitat:
Aber wie kann ich jetzt wieder unterscheiden, ob die Seite aktaulisert wird, oder ob er wirklich geht.
|
Gar nicht. Entweder Du nutzt Frames oder Du lässt es mit dem PopUp.
Außerdem: Was machst Du denn bei Leuten, die einen PopUpBlocker nutzen??
|
19.07.2004, 14:54:10
|
Junior Member
|
|
Registriert seit: Jun 2004
Ort: Weiden i.d.Opf.
Alter: 46
Beiträge: 315
|
|
Das versteh ich noch nicht so ganz. Wie können mir Frames dabei helfen? die werden doch genauso geschlossen bzw. aktualisiert.
|
19.07.2004, 14:58:09
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Es gibt diese Unart von blinden Frames: Zwei Stück, eins 100% groß und das andere 0%. Der Nutzer sieht also nur eins. Alles, was passiert, passiert in den 100%.
Um mal kurz abzuschweifen: Auch 0% sind 100% 0%... ;)
Gut, zurück zum Thema: Das onunload packt man in das 0%-Ding. Da es nie geändert wird, sondern höchstens geschlossen, wäre das eine Lösung für Dein Problem. Aber auch Quelle für viele neue Suchmaschinenprobleme.
Entscheide Dich lieber dagegen!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 08:07:12 Uhr.
|