Daten alle X Minuten im Hintergrund senden
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
angreifer
ansatz
auswerten
code
dank
datum
erzeugen
gleichen verzeichnis
header
instanz
minute
parameter
regeln
richtige richtung
rufen
sekunde
session
speichern
testen
url
-
Hallo und einen schönen Sonntag
Ich stehe mal wieder auf dem Schlauch und brauche etwas Hilfe, ich habe schon einen Ansatz, weiß aber nicht ob der in die richtige Richtung geht und hänge dabei jetzt auch fest.
Es geht um folgendes:
Ich benötige eine Useronlineanzeige, das An sich ist natürlich nicht das Problem. Ich Speicher bei jedem Seitenaufruf einen Usernamen, timestamp ectr. Und prüfe dann für eine Ausgabe wer in den letzten 5 Minuten online war. Soweit läuft es bestens, nun möchte ich das im Hintergrund alle 5 Minuten selbständig die Information gesendet wird das der User noch online ist.
Es sollen also die User aktuell gehalten werden, die die Seite in einem Tab offen haben und die Seite nicht neu laden. Das Ganze ist für eine Spielfunktion bei der Spieler, die online sind, angegriffen werden können.
Mein Ansatz ist nun folgender, wobei ich betone das JavaScript nicht wirklich mein Liebling ist.
Im Header rufe ich folgendes JavaScript auf
$(document).ready(function() { $("#useronline").load("inc_user_online_jqerry.php"); var useronline_reloadId = setInterval(function() { $("#useronline").load('inc_user_online_jqerry.php?n=<? echo $name ?>'); }, 2000); });
Am Ende der Seite rufe ich dann noch die ID über ein DIV auf.
<div id="useronline_reload" style="text-align:center;"></div>
Damit versuche ich alle 4 Minuten ( zum testen auf 2 Sekunden) eine Seite anzusprechen die den mysql und PHP Teil enthält und speichern soll. Die angesprochene Seite liegt im gleichen Verzeichnis und wenn ich Sie über die URL aufrufe und einen Namen zum Testen mitgebe klappt das Speichern auch.
Leider wird die Seite nicht angesprochen, vielleicht hat ja jemand einen Ansatz für mich wie ich das angehen sollte. So scheint es ja auf jeden Fall der falsche Weg zu sein.
Gruß Marco
Beitrag zuletzt geändert: 10.8.2014 15:35:09 von aff3m1tw4ff3 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
warum machst du das nicht gleich über ajax (ich weiß, was du da hast ist im prinzip auch ajax ...):
var useronline_reloadId = window.setInterval("check_online()", 2000); function check_online(){ request = new XMLHttpRequest(); if (!request) { alert("Kann keine XMLHTTP-Instanz erzeugen"); return false; } else { var url = "inc_user_online_jqerry.php?n=<?php echo($name); ?> "; //relativer pfad zur seite - in deinem Fall nur der name der datei + get parameter n request.open('get', url, true); request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); request.onreadystatechange = success; //functionsname, der zum auswerten benutzt wird request.send(); } } function success(){ if(request.readyState == 4 && request.status == 200){ //hier wird dann ausgewertet, wird nur hierrein gegangen, wenn es fertig ist, underfolgreich war , also kein 404 oder 500 oder so var rt = request.responseText; //string, der text, der zurück gegeben wurde document.getElementById('#useronline_reload').HTML() = rt; } }
==Nicht getestet!==
Beitrag zuletzt geändert: 10.8.2014 16:32:21 von matthias-detsch -
Tjaa da habe ich mal komplett umständlich gedacht. Ich sage mal DANKE!! Für den „Thanksbutton“ reicht es leider noch nicht.
Hab noch nen
drum gebastelt und es macht genau das was ich wollte.setInterval
Danke Dir und nen schönen Restsonntag noch
-
Moin,
noch ein kleiner Denkanstoß, da ich sowas ähnliches auch schon gemacht habe.
Sichere durch "Sessioncodes" oder ähnliches die ajax anfragen ab. Ansonsten könnte der Angreifer selber die Ajaxseite des angegriffen Users aufrufen und der Server denk der User wäre online, obwohl dies nur der Angreifer selber war. -
Danke für den Hinweis, das hatte ich tatsächlich noch nicht bedacht. Die Idee mit Session Codes abzusichern gefällt mir, da werde ich mich mal noch dran machen bevor ich das online stelle.
Gruß Marco
-
Kurzer Hinweis: Ich würde hier auch die Userid auch direkt über die Session abfragen, nicht über einen URL-Parameter.
Die SessionID wird ja trotzdem per Cookie übertragen.
Edit: Also komplett ohne ID drin. Nur über die Session.
Beitrag zuletzt geändert: 12.8.2014 0:06:14 von muellerlukas -
Hi,
Das habe ich sogar schon umgesetzt. Viel dann zwischendurch auch auf, wenn ich die Daten eh schon per Session habe kann ich auch gleich alles darüber regeln.
Danke Dir trotzdem für den Denkanstoß :)
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage