Problem bei Javascript
Nobby06
- javascript
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
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
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 ....
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):
Du legst überall, wo es die Spiele erwarten, deine index.php ab. Allerdings musst du dann eventuelle Wartungen an vielen Stellen durchführen.
Du „dupplizierst“ die Datei mit symbolischen Links.
Du richtest in der .htaccess Weiterleitungen ein.
Gruß
Jürgen
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
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
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
Hallo
Habe mal ein Gastzugang angelegt
Benutzername: gast Passwort : gast
Habe das problem über htaccess gelöst.
Dank an allen für die Tips
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>
Hallo Nobby06,
nach ein paar Blicken auf die Seite fallen mir ein paar Quirks auf…
Rolf
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
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
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