SessionID mittels Javascript und PHP ermitteln

xewat

Grünschnabel
Hallo,
ich muss ein Pokerspiel im Rahmen eines Schulprojekts programmieren. Damit jeder USer (Ohne Anmeldung oder Registrierung) eindeutig identifizierbar ist, wollte ich die Session ID nutzen. Das ganze läuft wirklich Online ab. Ich habe im Forum mitbekommen, dass man nur mit Javascript nicht die Möglichkeit hat, auf die SessionID zuzugreifen. Ich habe auch mit bekommen, dass SessionIDs nur im Bezug mit Cookies oder der Verweisung innnerhalb des Links funktionieren.

Meine Frage:

-Hat Javascript irgendeine Funktion, der WIRKLICH eindeutige IDs liefert (die Zeit, als ID zu nehmen tuhe ich eher ungern)?

-Wie lese ich von Javascript aus die SessionID aus, die ich in einer PHP-Datei ermittle?
 
Hi

JS und Eindeutigkeit:
JS allein hat keine Möglichkeit, bei den anderen Clients reinzuschauen.
Es geht also maximal auf ein- und demselben Computer eindeutig,
der Sitznachbar oder sonst wer könnte wieder die gleiche Nummer haben.

Zum PHP-Teil:
Wo liegt das Problem?
An der passenden Stelle im Javascript gibst du mit echo die ID aus.
 
Hallo,
ich bedanke mich für deine schnelle Antwort. Also ich habe bereits mit AJAX Variablen an PHP übergeben und über den Callback auch eine Antwort erhalten. Jedoch muss ich in diesem Fall nichts über geben und ich weiß nicht wie das funktionieren soll. Sowas hier funktioniert shcon mal garnicht :
<script ......>

....
var sid = '<?php echo session_id();?>';

oder das:


var sid = '<?php echo SID;?>';

....
</script>
 
Vom Prinzip her gehts aber so.
Was kommt denn auf der Clientseite, im Browser, dann an (welcher Browser zum Testen)?

Ist der gezeigte Teil in einer .js-Datei oder in .php (oder eine andere Endung? html...)?
 
Also es kommt nichts raus oder gar folgender Fehlermeldung:


SyntaxError: unterminated string literal
[Bei diesem Fehler anhalten]

var sid = "

test2.php (Zeile 106, Spalte 14)


Das was ich gepostet habe ist in einer HTML-Datei im Javascript bereich codiert. (Jetzt habe ich es in eine PHP-Datei umgeändert aber es hat nichts gebracht.


Hier kann man sich das ganze angucken, habs auf mein Server hochgeladen:

http://www.mazlum-eroglu.de/test2.php
 
Zuletzt bearbeitet:
Was die ID angeht, schaut doch in Ordnung aus.
(Nur was Anderes: session_start muss vor allen Ausgaben erfolgen.)
 
Ich weiß nicht, wie deine PHP-Dateien ausschauen,
aber auch ein Leerzeichen zählt schon als Ausgabe.

Eine einfache Lösung wäre Bufferung mit ob_start etc.
 
Mit folgenden Code:

<div>
'<?php
session_start();
print $SID;
?>'
</div>

bekomme ich folgenden Fehlermeldung:

' Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /customers/4/3/8/mazlum-eroglu.de/httpd.www/test2.php:16) in /customers/4/3/8/mazlum-eroglu.de/httpd.www/test2.php on line 129 '
 
Genau das mein ich ja, der Fehler war auf der Beispielseite auch schon.
Das <div> am Anfang ist eine Ausgabe.
Und Befehle wie session_start, header usw. müssen vor jeder Ausgabe sein.

Code:
<?php ob_start(); ?>

<div>
'<?php
session_start();
print $SID;
?>'
</div>

<?php ob_end_flush(); ?>
 
Zurück