Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

PHP Script starten wenn ein User Browser schliesst

Frage Entwicklung PHP

Mitglied: adis22

adis22 (Level 1) - Jetzt verbinden

06.06.2008, aktualisiert 21:36 Uhr, 6718 Aufrufe, 7 Kommentare

Also in Javascript kann man mit <body onbeforeunload="ende();"> ein Script starten wenn der User den Browser schliesst, wird die Funktion ende() ausgeführt.

Meine Frage wäre, gibts so eine Funktion auch bei PHP die das gleiche machen kann.

Danke im voraus für eure Hilfe.
Mitglied: 16568
06.06.2008 um 13:35 Uhr
Noe.

JavaScript wird vom Browser interpretiert, PHP vom Server.

Heißt also, DU mußt JavaScript in Dein PHP-Script einbauen.


Lonesome Walker
Bitte warten ..
Mitglied: Arano
06.06.2008 um 14:37 Uhr
Hehe...

wen Javascript Client- und PHP Serverseitig ist,
wie will man die dann zusammen kriegen
(könnte für Anfänger etwas verwirrend sein, nech)

Aber mit einem AJAX-Request könnte man das evtl. machen.

Hm... "onbeforeunload" das ist ein Microsoft eigener Eventhandler oder ? Was mit den anderen Browsern ?

Ich kenne sonst noch das Event "onunload" , aber das greift schon beim verlassen der Seite, also auch beim Seitenwechsel und nicht nur beim schließen des Browsers.
Sehe gerade, "ondeforeunload" hat laut MSDN ein sehr ähnliches verhalten: http://msdn.microsoft.com/en-us/library/ms536907(VS.85).aspx
Also wirst du wohl selbst mit diesem Eventhandler nicht glücklich werden.

Wozu brauchst du das denn, vielleicht gibt es ja eine andere Möglichkeit zu erreichen was du gern hättest !?

Gruß Arano
Bitte warten ..
Mitglied: adis22
06.06.2008 um 17:39 Uhr
Danke für eure schnelle Hilfe.
Also ich bastelle zur übungs und lernzwecken an einer Singlebörse. Nun das ein User online gegangen ist, kann ich feststellen aber wann er weg ist, da liegt das Problem.

Nu habe ich die Begriffe Sessions und Cookie auf den weg bekommen.

Habe nun ein Cookie bei jedem User der sich einloggt gesetzt, nun kommt das problem, ich schaffe es nur rauszufinnden das ich selber Online bin, aber der andere User wird als Offlin angezeigt. nun kann ich nur daraus schließen das der Server weiß das der andere User oline ist nur kann ich nicht sein Cookie auslesen. Naja jeder Anfang ist bitter, und wenn ich Sessions benutze kann ich nicht mehr durch die Seiten navigieren mit der History Buttons, warum auch immer.

Also erlich gesagt blicke ich bei dem ganzen nicht richtig durch.
Vielleicht könnt ihr ja ein PHP Anfänger mal auf den Weg helfen. Meine Größte Frage ist echt warum kann ich nur meinen Cookie lesen und von dem anderem User nicht.

MFG Adis
Bitte warten ..
Mitglied: Arano
06.06.2008 um 18:17 Uhr
Meine Größte Frage ist echt warum kann ich nur meinen Cookie lesen und von dem anderem User nicht.
das ist ganz einfach, könntest du nämlich die Cookies von anderen lesen, könnt ich auch deine Lesen und würde so, möglicherweise an deine Tauschbörsenbenutzerdaten, Administrator Login-Daten, Homebanking, ect. kommen.
Sicher nicht gut !
Zusätzlich ist es glaube ich so, das der Browser den Cookie bei einem Seitenaufruf mit an den Server sendet. Was bedeutet, nicht der Server holt sich die Daten, sondern Du schickst sie ihm.
Schließlich bearbeitet der Server nur deine anfragen, also wen du nach Seite index.html fragst, schickt er Sie dir und das wars.


Mir fällt nur ein, das du beim einloggen bzw. wiedereinloggen beim Seitenwechsel einen Timstamp als "letzte_aktion" des Benutzers in seinem Profil in der Datenbank speicherst.

Wenn du nun wissen möchtest, ob ein Benutzer online ist, musst du nur prüfen, ob der Timestamp aus der Datenbank größer als ein ("aktueller Timestamp" - "5Min") ist.

Klar gibt das dabei Löcher in denen da nicht ganz stimmt, aber da musst du dann testen. Wenn ein Benutzerstatus z.B. ständig zwischen on- und offline wechselt, ist der Zeitwert der ein Benutzer als online gilt zu gering und muss (oder sollte/kann) erhöht werden.


Vielleicht hifts ja oder bring dich sonst wie weiter

Schönes WE
~Arano
Bitte warten ..
Mitglied: adis22
06.06.2008 um 19:34 Uhr
Vielen dank, aber wie machen die anderen es, auch auf die weise wid du es beschreibst.
Bitte warten ..
Mitglied: Arano
06.06.2008 um 20:24 Uhr
Ja, ich denke schon !
Irgendwie muss sich der Server ja merken welcher User Eingeloggt ist und da er selbst keine "Fragen" stellen kann bleibt ihm nichts weiter übrig.

Vielleicht ist es auch ganz sinnvoll das in einer extra Tabelle zu machen "User_id | last_action". Das kann man dann auch weiter verwenden z.B. für eine Anzeige über wie viele registrierte Benutzer online sind, dann muss man nicht die Tabelle mit den Userdaten (z.B. 10000 Datensätze) benutzen, sondern die Zweite die nur ein Teil der Benutzer enthält (z.B. 2000 Datensätze) was natürlich schneller geht.
Die müsste man dann nur mit einem Cronjob vielleicht ein oder zweimal pro Tag leeren (alles raus schmeißen wo "last_action" älter als 10 Minuten ist. Oder man macht es nur einmal (um 24 Uhr) und kann dann zusätzlich ausgeben, das Heute bereits X (=Tabelleninhalt) Mitglieder online waren.

Hm... hört sich eigentlich auch ganz praktisch an ^^

Wie gesagt, etwas anderes fällt mir nicht ein, aber ich bin jetzt auch kein Profi, eher ein anfänglicher Fortgeschrittener

Schönen Tag noch
~Tobias
Bitte warten ..
Mitglied: adis22
06.06.2008 um 21:36 Uhr
Danke noch für die Hilfe, habe es nun so gemacht wie du es vorgeschlagen hast, habe in jede aktion des users ein Zeitstämpel gesetzt.

Nach 20 min unaktivitet wird der User offline angezeigt.

Liebe Grüße aus Berlin.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Python
gelöst PHP Skript via Python starten mit JSON Objekt als Parameter (3)

Frage von nullacht15 zum Thema Python ...

LAN, WAN, Wireless
Script bei starten einer VPN Verbindung mit Checkpoint-VPN Client (2)

Frage von maddig zum Thema LAN, WAN, Wireless ...

Windows Server
gelöst Rechner neu starten per Script via Aufgabenplanung klappt nicht (4)

Frage von MaxKlaus13 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...