PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP: SID per URL übertragen



dead_orc
11.12.2004, 13:07
Wie kann ich die Session-ID anstatt in Cookies per URL übertragen?
Und geschieht dies dann automatisch, oder muss ich an jeden Link noch etwas anhängen???

Chocwise
11.12.2004, 13:49
Wie kann ich die Session-ID anstatt in Cookies per URL übertragen?
Und geschieht dies dann automatisch, oder muss ich an jeden Link noch etwas anhängen???Info's:
http://www.usegroup.de/software/phptutorial/sessions.html

Google-Suche nach "_session", 1. Ergebnis.

dead_orc
11.12.2004, 14:07
Danke für den Link. So wie es aussieht muss ich an jeden internen Link ein "?SID" anhängen oder gucken, wie ich ein Skript bastle, das das für mich übernimmt!

pogo
11.12.2004, 14:27
Ich machs so:



echo "<a href=\"index.php?section=admin&amp;action=logout&amp;".SID."\">Ausloggen</a>\n";


btw: das ist ein link aus meinem admin bereich

dead_orc
11.12.2004, 17:59
Ich hab das jetzt mal so gemacht und festgestellt, dass der Link den Zusatz nu dann enthält, wenn die SID nicht in einem Cookie gespeichert wurde (hab einfach mal Cookies deaktiviert).
Wie kann ich nun verhindern, dass die SID in einem Cookie gespeichert wird???

Chocwise
11.12.2004, 18:00
Ich machs so:



echo "<a href=\"index.php?section=admin&amp;action=logout&amp;".SID."\">Ausloggen</a>\n";


btw: das ist ein link aus meinem admin bereich
Oder man machts Ressourcenschohnender und simpler wie auf der Seite hinter dem Link beschrieben:


<a href="test2.php?<?=SID?>">next</a>

Ressourcenschohnender weil PHP nicht ganz so viel per echo ausspucken muss was man ebensogut ungeparsed ausgeben lassen kann da der Rest eh nicht dynamisch ist sondern statisch.

-CC-
13.12.2004, 16:01
http://de.php.net/manual/de/ref.session.php#ini.session.use-trans-sid
Damit wird das automatisch an alle internen Links angehangen.

Schau mal via phpinfo() nach, ob session.use_trans_sid in der php.ini ein- oder ausgeschaltet ist. Sollte es aus sein, kannst du es mit folgendem Code am Anfang deines Scripts einschalten:


ini_set('session.use_trans_sid', true);

Achtung: Die Funktion ini_set ist bei einigen Hostern deaktiviert!


Grüße,
CC

dead_orc
13.12.2004, 16:06
Achtung: Die Funktion ini_set ist bei einigen Hostern deaktiviert!
Eben das ist ja mein Problem: Funpic erlaubt diese Funktion nicht, wodurch ich es manuell machen muss. Ich will aber (ohne ini_set) verhindern, dass die SID im Cookie gespeichert wird!

Außerdem ist session.use_trans_sid leider fürchterlich unnvalide!!!

-CC-
13.12.2004, 16:27
Eben das ist ja mein Problem: Funpic erlaubt diese Funktion nicht, wodurch ich es manuell machen muss. Ich will aber (ohne ini_set) verhindern, dass die SID im Cookie gespeichert wird! Ganz verhindern kannst du das wohl nicht, aber wie wär's, wenn du nach session_start() ein leeres Cookie mit dem Namen des Session-Cookies (meißt PHPSESSID) sendest?


session_start();
setcookie (session_name(), false, time()+3600);
Keine Ahnung, ob das funktioniert. Nur ein Denkanstoß ;)



Außerdem ist session.use_trans_sid leider fürchterlich unnvalide!!! Öööh, in wie fern?


Grüße,
CC

dead_orc
13.12.2004, 16:36
Das könnte evtl. eine Möglichkeit sein, werds bei Gelegenheit ausprobieren.
Dat is unvalide in so fern als dass diese dumme Einstellung ein & statt eines &amp; anhängt, wodurch das W3C natürlich gleich losheult!

-CC-
13.12.2004, 16:38
Das könnte evtl. eine Möglichkeit sein, werds bei Gelegenheit ausprobieren.
Dat is unvalide in so fern als dass diese dumme Einstellung ein & statt eines &amp; anhängt, wodurch das W3C natürlich gleich losheult! http://www.multimediaxis.de/images/smilies/old/3/fressehalten.gif
Aus der php.ini:


; The separator used in PHP generated URLs to separate arguments.
; Default is "&".
arg_separator.output = "&amp;"

dead_orc
13.12.2004, 17:06
Den Smiley kann ich nur erwidern, da bei Funpic keine Änderungen der php.ini möglich sind!
Daher kann ich auch nicht einstellen, dass ein &amp; statt eines & verwendet wird (allgemein hast du Recht, in diesem Fall für mich aber nicht)

-CC-
13.12.2004, 17:10
Den Smiley kann ich nur erwidern, da bei Funpic keine Änderungen der php.ini möglich sind!
Daher kann ich auch nicht einstellen, dass ein &amp; statt eines & verwendet wird (allgemein hast du Recht, in diesem Fall für mich aber nicht)
Ist ja nicht meine Sache, bei welchem Provider du bist und was du da darfst und was nicht.
Musst aber nicht gleich über die PHP-Funktion meckern und sie als "unvalide" bezeichnen...

Kannst sie ja mal anschreiben, dass sie das umstellen sollen....


Grüße,
CC