kostenloser Webspace werbefrei: lima-city


Daten alle X Minuten im Hintergrund senden

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. matthias-detsch

    Kostenloser Webspace von matthias-detsch

    matthias-detsch hat kostenlosen Webspace.

    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
  4. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    Tjaa da habe ich mal komplett umständlich gedacht. Ich sage mal DANKE!! Für den „Thanksbutton“ reicht es leider noch nicht. :thumb:

    Hab noch nen
    setInterval
    drum gebastelt und es macht genau das was ich wollte.

    Danke Dir und nen schönen Restsonntag noch


  5. 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.
  6. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    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
  7. 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
  8. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    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ß :)
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!