Sessions ohne Cookies übergeben
Scooter
- php
Hi,
hat jemand eine Idee, wie ich Sessions übergebe, wenn der USer Cookies deaktiviert hat?
1. Wie stelle ich fest (mit PHP natürlich) ob der User Cookies akzeptiert oder nicht.
2. Wenn keine Cookies, wie übergebe ich dann die SessionID ??
3. Ich brauche eine Lösung für session.use_trans_sid = 0, da mein Provider das deaktiviert hat. Sonst wäre das ja einfach.
Gruß
Scooter
Hi,
also ich kenn mich nicht so gut in php aus, aber dafür in Java.
Wenn also dein Client Cookies nicht akzeptiert bleibt dir nur noch eine Lösung, und die ist über die URL.
D.h. du schickst deine Session-ID über die URL auf die Reise.
Wie das genau in PHP geht weiss ich leider nicht.
ini_set ("session.use_trans_sid","1");
Dann sollte die SESSID an die URL mit angehängt werden.
ini_set ("session.use_trans_sid","1");
Dann sollte die SESSID an die URL mit angehängt werden.
Ja das schon. aber ich glaube kaum, das ich berechtigt bin, bei meinem Provider die php.ini zu ändern.
Gruß
Scooter
Probier's mal. Bei meinem geht's. Allerdings nicht mit allen Einstellungen. Bei dieser geht's aber.
Probier's mal. Bei meinem geht's. Allerdings nicht mit allen Einstellungen. Bei dieser geht's aber.
Hab ich gemacht. Geht aber nicht. phpinfo() sagt immer noch das es "off" ist.
Das ist klar.
Mit ini_set änderst Du den Wert nur für das aktuelle Script.
Musst halt ausprobieren, ob bei einer gestarteten Session die ID an die URL angehängt wird.
Hi,
ich habs jetzt rausgefunden:
nach session_start();
steht eine Konstante zur Verfügung: SID
wenn der User Cookies aktiviert hat ist die Konstante leer (""),
andernfalls, steht der sessionname und die sessionId drin.
Man braucht also nur abfragen, ob SID leer ist. Dann hat der User Cookies aktiviert, andernfalls hängt man die session id an die links.
Gruß
Scooter
Hi Scooter,
nach dem ersten session_start() steht in SID immer SID=################ drin. # für Hex-Digit.
Damit kannst Du nur feststellen, ob die Session neu gestartet wurde, oder ob der Request schon einen Cookie enthielt.
Du weißt also nicht, ob der Client auf Cookies reagiert. Dafür müsstest Du ihm beim ersten Request einen Cookie schicken und eine Umleitung header("Location: ...?1") zurück auf die Page oder besser noch auf eine zweite, damit es keine zirkulären Verläufe gibt.
Wenn dieser Cookie dann ankommt, machst Du normal weiter mit "Session-Cookies" sonst arbeitest Du eben mit Trans_SID.
Mal anders gesagt: Wenn Du Arbeit in ein Projekt steckst, und Session sind nicht gerade mehr Spielkram, dann würde ich mir lieber einen Provider suchen, der macht, was ich will. Da kannst Du ganze virtuelle Server mieten schon für 20-30 Euro im Monat mit 20-50G Traffic frei und so...
Ist doch billiger, als nur eine Stunde in Bastelkram zu verschwenden.
Grüße
Tom