neue session_id vermeiden
Tobi
- javascript
Hallo.
Ich möchte via location.href aus dem Javascript ein php File aufrufen. Wenn ich nun session_start() aufrufe wird eine Neue Session gestartet, ich würde aber gerne die "alte" Session ID behalten.
Meine JAVASCRIPT Function :
function submitting(){
params="";
<?
for ($k=1;$k<=50;$k++) {?>
if (document.getElementById("tor_trikot<? echo $k; ?>")) params = params + "tor[<? echo $k;?>]=" + document.getElementById("tor_posis<? echo $k; ?>").innerHTML + "&" + "tor_num[<? echo $k;?>]="+ document.getElementById("tor_num<? echo $k; ?>").innerHTML + "&" + "tor_pl[<? echo $k;?>]="+ document.getElementById("tor_pl<? echo $k; ?>").innerHTML + "&";
if (document.getElementById("feld_trikot<? echo $k; ?>")) params = params + "feld[<? echo $k;?>]=" + document.getElementById("feld_posis<? echo $k; ?>").innerHTML + "&"+ "feld_num[<? echo $k;?>]="+ document.getElementById("feld_num<? echo $k; ?>").innerHTML + "&" + "feld_pl[<? echo $k;?>]="+ document.getElementById("feld_pl<? echo $k; ?>").innerHTML + "&";
<?}?>
text = "index.php?pos=aufstellung&"+params.substring(0,params.length-1);
text = text + "&checked=42";
alert (text);
self.location.href=text;
}
Wenn ich nun wieder meine index.php aufrufe, dann bekomme ich eine neue Session id. Rufe ich via A HREF oder via submit die index.php auf bleibt die session id gleich.
Vielen Dank für eure Hilfe.
Schönen Gruß
Tobi
abend,
du kannst dir mittels "session_id()" die session-ID der
aktuellen session zurückgeben lassen. und mit der arbeitest
du dann einfach weiter...
(siehe:http://us3.php.net/manual/de/function.session-id.php)
HIH
mfg,
(tanz das)
Z.N.S.
Moin!
Wenn ich nun wieder meine index.php aufrufe, dann bekomme ich eine neue Session id. Rufe ich via A HREF oder via submit die index.php auf bleibt die session id gleich.
Offenbar setzt dein PHP kein Cookie zum Speichern der Session-ID - sei es, weil dein Browser das nicht annimmt, oder weil PHP so konfiguriert ist.
Das bedeutet, dass die Session-ID in der URL weitergegeben werden muß (oder als verstecktes Formularfeld). PHP bietet hierfür an, alle HTML-Links nach der Erstellung nochmal zu scannen und im Bedarfsfall (bei der Anforderung der Seite wurde kein Cookie geschickt) überall die Session-ID hinten anzuhängen (trans_sid).
Dieses Verfahren scheitert (bzw. wird, wenn es ausgeschaltet ist, gar nicht angewandt), wenn du per Javascript erst eine URL zusammenbastelst, um die dann per location.href aufzurufen. PHP kann solche Konstrukte nicht erkennen. Deshalb mußt du die Session-ID mit PHP in den Javascript-Code reingenerieren und dann als Teil der URL an location.href übergeben.
Am sinnvollsten hat sich für solche Fälle die Konstante SID erwiesen, die im Bedarfsfall den String "sessionname=sessionid" enthält, oder leer ist, wenn ein Cookie gefunden wurde.
Also an passender Stelle "echo SID;" machen.
- Sven Rautenberg