Nobby06: Problem bei Javascript

problematische Seite

Hallo, ich bin Neu hier und bin auf eure Seite gestoßen.

Ich habe ein WBB2 Forum mit eingebaute Spielhalle mit Arcade Games

Die neue Spiele sind jetzt alle HTML5 Spiele und habe dort ein problem mit ein Ajax Javascript.

Bei jedem Spiel ist eine index.html dabei und dort ist folgendes Script eingefügt.

script" src="http://cdn.gameplayer.io/api/js/developer.js"></script>
			 					<script type="text/javascript">
			function DOTscore(a, b, c, d)
			{
				ajax2('',"&gscore="+a+"&gname="+b,function(data){});
			}
			function ajax2(task,post,callback){var xhttp=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");xhttp.onreadystatechange=function(){if(xhttp.readyState==4&&xhttp.status==200){callback(xhttp.responseText);}}
xhttp.open("POST","index.php?act=Arcade&do=newscore",true);xhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhttp.send('task='+task+post);}
			var addEvent = function(elem, type, eventHandle) {
			    if (elem == null || typeof(elem) == 'undefined') return;
			    if ( elem.addEventListener ) {
			        elem.addEventListener( type, eventHandle, false );
			    } else if ( elem.attachEvent ) {
			        elem.attachEvent( "on" + type, eventHandle );
			    } else {
			        elem["on"+type]=eventHandle;
			    }
			};
						
					</script>  

Dieses Script dient dazu das die Scores abgespeichert werden in meiner Datenbank.

An sich funktioniert es ja, aber er sucht immer die index.php in ein falsches Verzeichnis weil er dieses über den xhttp Request zugewiesen bekommt. Er nimmt immer das Verzeichnis vom jeweiligen Spiel.

Jetzt meine frage, kann ich irgendwie diesen xhttp Request fest zuweisen ? zb xhttp= www.zockerbande.de/wbb2

Mittels php oder Script?

Sorry bin ein absolute Laie

mfg Nobby

  1. problematische Seite

    Hallo,

    Ich habe ein WBB2 Forum mit eingebaute Spielhalle mit Arcade Games

    Jetzt meine frage, kann ich irgendwie diesen xhttp Request fest zuweisen ? zb xhttp= www.zockerbande.de/wbb2

    irgendwie passt das nicht zusammen.

    Jetzt meine frage, kann ich irgendwie diesen xhttp Request fest zuweisen ? zb xhttp= www.zockerbande.de/wbb2

    ja, in dieser Zeile:

    xhttp.open("POST","index.php?act=Arcade&do=newscore",true);xhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhttp.send('task='+task+post);}

    index.php?… wird relativ zum Pfad der aufrufenden Seite genommen. Hier kannst du vor den Dateinamen einen Pfad setzen, z.B. /wbb2/index.php?…

    Gruß
    Jürgen

    1. problematische Seite

      Hallo Jürgen

      Schon mal danke für deine Antwort. Auf die Idee bin ich auch schon gekommen.

      Die sache ist die das bei viele Spiele diese Zeile verschlüsselt ist und ich dann auch nichts ändern kann.

      Deshalb suche ich nach eine andere Lösung.

      Ich dachte zb an einen php wo ich Zb sagen könnte.

      If xhttp request then URL ....

      1. problematische Seite

        Hallo,

        Die sache ist die das bei viele Spiele diese Zeile verschlüsselt ist und ich dann auch nichts ändern kann.

        mehrere Ideen (die Serverexperten mögen hier helfend eingreifen):

        1. Du legst überall, wo es die Spiele erwarten, deine index.php ab. Allerdings musst du dann eventuelle Wartungen an vielen Stellen durchführen.

        2. Du „dupplizierst“ die Datei mit symbolischen Links.

        3. Du richtest in der .htaccess Weiterleitungen ein.

        Gruß
        Jürgen

        1. problematische Seite

          Hallo JürgenB,

          das hatte ich auch schon im Sinn, es aber nicht vorgeschlagen. Grund: Wenn ich das Script /myweb/foo/index.php aufrufe, dann ist /myweb/foo das Current Directory und damit der Bezugsordner für Includes. Wenn ich /myweb/foo/bar/index.php aufrufe, ist /myweb/foo/bar das Current Directory.

          Folge: Wenn man einfach das index.php kopiert, und das Script mit relativen Verzeichnispfaden auf irgendwas zugreift, greift die kopierte Version ins Leere. Für einen SymLink sollte das gleiche Problem gelten.

          Eine .htaccess-Weiterleitung, ja, da war ich dann unsicher. Führt sowas zu einem HTTP Statuscode 30x, der dann vom Browser beachtet werden muss? Und gelingt das dann auch in jedem Browser? Oder kann man das serverseitig so steuern, dass das /myweb/foo/index.php zweifelsfrei daran glaubt, direkt aufgerufen worden zu sein?

          Alles Unwägbarkeiten, die ich derzeit nicht ausprobieren kann, darum hab ich die Klappe gehalten (bin ja auch nur ein Server-Dilettant). Aber wenn jemand genau weiß, was dann passiert, bin ich sehr interessiert :)

          Eine Lösung mit Brachialgewalt könnte dies sein: eine index.php in die Spiele-Ordner legen, die die Einträge in $_SERVER & Co patcht, die Verzeichnisbezüge enthalten, dann mit chdir() ins Hauptverzeichnis wechselt und dort das index.php includet. Ich hab's nicht ausprobiert und weiß nicht ob das so geht. Eine konfigurative Lösung im Apache wäre sicherlich vorzuziehen.

          Rolf

          --
          sumpsi - posui - clusi
          1. problematische Seite

            Hallo Rolf,

            ich finde, das Beste wäre, die http-Requests anzupassen. Meine Ideen sind wohl alle mit Nebenwirkungen verbunden, die @Nobby06 überprüfen muss.

            Gruß
            Jürgen

  2. problematische Seite

    Hallo Nobby06,

    der Link hilft übrigens nicht sooo viel, weil man sich erstmal registrieren muss um ranzukommen. Nö, sorrry, mag ich jetzt nicht. Gibt's einen Experimentierzugang?

    Rolf

    --
    sumpsi - posui - clusi
    1. problematische Seite

      Hallo

      Habe mal ein Gastzugang angelegt

      Benutzername: gast Passwort : gast

      1. problematische Seite

        Habe das problem über htaccess gelöst.

        Dank an allen für die Tips

        1. problematische Seite

          Hat einmal funktioniert jetzt wieder nicht.

          Ist mein eintrag in die htaccess richtig so?

          <IfModule mod_rewrite.c>
          RewriteEngine On
          RewriteBase /wbb2/
          RewriteCond %{QUERY_STRING} do=newscore
          RewriteRule .* index.php [L,QSA]
          </IfModule>
          
      2. problematische Seite

        Hallo Nobby06,

        nach ein paar Blicken auf die Seite fallen mir ein paar Quirks auf…

        • eine index.html sehe ich nirgends, finde auch keine Funktion ajax2 auf den von mir besuchten Spieleseiten. Wo müsste ich hin?
        • die Schriften sind auf meinem Monitor (24" 1920x1200) zu klein. Ich weiß, das ist bei vielen Foren so, aber 11px und 13px Schrifthöhe finde ich nicht gut.
        • Die Wortspiele sind HTML-seitig kaputt, da ist der größte Teil des HTML, das in den <head> gehört, im <body> gelandet, und die overlib wird mehrfach includet.
        • für meinen Geschmack geht zu oft ein neuer Tab auf…
        • Schiffe versenken führt auf ein neues Tab, das mir eine rote 20 anzeigt und mich zum Drücken von "Zurück" auffordert - was auf einem neuen Tab natürlich nicht funktioniert…
        • dass die verwendeten Tools antik sind, brauche ich Dir sicher nicht zu sagen :D. Ohne einen kompletten Rebuild könnt ihr das aber auch nicht ändern.

        Rolf

        --
        sumpsi - posui - clusi
        1. problematische Seite

          Naja ich habe hier nach Hilfe gesucht und nicht nach Kritik wie fehlerhaft und alt mein wbb2 Form ist. Habe mein Problem selber gelöst.

          Thema kann gelöscht werden und meine Mitgliedschaft auch. Danke

          1. problematische Seite

            Hallo Nobby06,

            Naja ich habe hier nach Hilfe gesucht

            Du musst jedem zugestehen, dein Problem von mehreren Seiten zu beleuchten.

            und nicht nach Kritik wie fehlerhaft und alt mein wbb2 Form ist.

            Auch das ist eine Hilfe.

            Bis demnächst
            Matthias

            --
            Rosen sind rot.
          2. problematische Seite

            Hallo Nobby06,

            Der entscheidende Punkt war der erste: wo muss ich hinschauen. Der Rest waren Tipps, die du nutzen kannst wie du willst. Sorry wenn ich dir damit auf denn Schlips getreten habe.

            Rolf

            --
            sumpsi - posui - clusi