Session id leer

TheGreenDragon

Erfahrenes Mitglied
Hallo,
ich rufe eine Seite (.php) auf die einen Button hat. Sobald der gedrückt wird, wird über javascript von einer anderen Seite (.php) auf dem selben Server Daten angefordert. Auf Seite eins kann ich mir über session_id() die aktuelle ID anzeigen lassen. Doch leider hat das Skript das per javascript aufgerufen wird überhaupt keine session_id(). Wie komm ich nun in Skript Nr.2 an die Session und die Daten von Skript Nr.1? Ich dachte PHP verwaltet die Session selbstständig zwischen einer Client-Server-Kommunikation.

Edit: hat sich erledigt. Ein einfaches session_start(); auf Seite 2 sorgt automatisch dafür dass die Session von Seite 1 genommen wird. Ich dachte eher ich müsste die session_id() irgendwie übergeben die ich von Seite 1 habe, ist wohl nicht der Fall. Irgendwie komisch...
 
Zuletzt bearbeitet:
Hallo,
Ein einfaches session_start(); auf Seite 2 sorgt automatisch dafür dass die Session von Seite 1 genommen wird. Ich dachte eher ich müsste die session_id() irgendwie übergeben die ich von Seite 1 habe, ist wohl nicht der Fall. Irgendwie komisch...

Garnicht komisch, denn sobald du auf eine andere Seite wechseln willst brauchst du immer eine Session_Start().
Und somit wird die Session auch auf der zweiten Seite aktiv
 
Da es hier gerade passt, würde ich gern noch fragen, warum die session_id immer gleich ist, und wie man sie dynamisch machen kann?
lg
 
Hi,

die Session ID ist für einen Benutzer gleich, solange die Session gültig ist. Läuft die Session ab und der Nutzer startet eine neue Session, hat er auch eine neue Session ID.

Best regards
 
Aso, dann weiß ich bescheid. Aber was ist den dann das, was man ab und an auf Webseiten sieht? Also da steht im query-string sesid=...... und die ändert sich immer beim neuladen und beim Seitenaufruf.
lg
 
das muss nicht umbedingt die session_id sein, im query_string kannst du reinschreiben was auch immer du willst, wenn jetzt ein webseitenbetreiber die Variable sesid bennennt, dann kann er das so machen. Es würde nämlich keinen Sinn machen diese per URL zu übergeben, weil wie du ja weißt die Session auch so rübergezogen wird.
 
Ein Sache interessiert mich noch. Seite 1 ruft über AJAX Daten von Seite 2 (.php) auf dort mache ich dann session_start(); muss ich wenn ich fertig bin auf Seite 2 auch die Session wieder beenden? Oder wird das von PHP dann geregelt? Ich meine nicht das irgendwie noch irgendwelche Reste durch die Datenabfrage im PHP Cache entstehen? Oder sollte man einfach nur session_destroy() aufrufen wenn man z.B. ein Logout von einer Webseite tätigt?
 
[phpf]session_destroy[/phpf] musst du nicht nutzen.

Um eine Session ganz zu "vernichten" musst du im Normalfall das Cookie löschen oder oft auch einen Eintrag in der Datenbank.

Allerdings wenn du über eine bestimmte Variable in der Session prüfst, ob der Nutzer eingeloggt ist, kannst du diese auch löschen:
PHP:
function loggedIn()
{
  return (isset($_SESSION['loggedIn']) && $_SESSION['loggedIn']===true);
}

function logout()
{
  $_SESSION['loggedIn'] = false;
  unset($_SESSION['loggedIn']);
}
 
Zurück