probleme mit session

hallo mal wieder,

ich habe ein problem mit den sessions im php.

wenn ich in php eine session nutze und da werte reinschreibe werden diese geladen, wenn ich aber einen link erstelle, dann wird automatisch die session id angehangen, wenn ich nun werte versuche zu überschreiben, dann werden diese nicht angenommen, sondern die werte aus der session bleiben bestehen.

z.b.

<?php
// file: widget.php
if(!isset($_SESSION['sel_rid'])) {session_register("sel_rid");};
if(isset($_GET['sel_rid'])) {$_SESSION['selrid'] = $_GET['sel_rid'];};
echo("Session ist: " . $_SESSION['sel_rid'] . " | Session soll: " . $_GET['sel_rid'] . "<br>");
echo("<a href=widget.php?sel_rid=1>Wert 1</a><br>");
echo("<a href=widget.php?sel_rid=2>Wert 2</a><br>");
echo("<a href=widget.php?sel_rid=3>Wert 3</a><br>");

Wenn ich die Seite aufrufe mit z.B. widget.php?sel_rid=5 - dan wird mit angezeigt, das 5 übergeben wurde und alles scheint ok zu sein, wenn ich aber nun den einen der links klicke, da ja eigentlich nichts anderes macht ausser die seite mit dem parameter aufzurufen dann wird zwar in session soll der richtige wert angezeigt, aber in session ist, bleibt immer noch der wert von vorher. ich vermute, das die werte aus der session nicht überschrieben werden. wenn ich mit der maus auch über den link gehe, dann sehe ich auch das an dem link die daten der bestehenden session angehangen werden - der link sieht dann so aus:

http://localhost/ipsh2007/widget/widget.php?sel_rid=2&pt=0322995cc9204daa6e55971e133c6f1c

könnt ihr sehen was ich falsch mache?!? oder habt ihr eine idee, wie man das umgehen kann?

Die Sessions lassen sich auch über cookies übergeben. Dann erscheinen sie nicht in der URL. Nur: Nicht jeder akzeptiert Kekse.

Das Variablen-Problem wird wohl ein Schreibfehler sein: einmal mit und einmal ohne Unterstrich:

if(!isset($_SESSION[‚sel__rid‘])) {session_register(„selrid“);};
if(isset($_GET[‚sel_rid‘])) {$_SESSION[‚selrid‘] = $_GET[‚sel_rid‘];};

Tommi

das mit den cookies alzeptieren dürfte kein großes problem sein, das wird für eine steuerung der eigenen komponente sein.

hast du mal ein beispiel dafür?

das mit dem schreibfehler werde ich nochmal prüfen, wäre zu schön wenn es das wäre, dann komme ich endlich weiter.

dank dir auf jeden fall für deine hilfe :).

Das sind lediglich Einträge in der PHP.INI (siehe DOKU)

session.cookie_lifetime „0“ PHP_INI_ALL
session.cookie_path „/“ PHP_INI_ALL
session.cookie_domain „“ PHP_INI_ALL
session.cookie_secure „“ PHP_INI_ALL Seit PHP 4.0.4 verfügbar.
session.cookie_httponly „“ PHP_INI_ALL Seit PHP 5.2.0 verfügbar.
session.use_cookies „1“ PHP_INI_ALL
session.use_only_cookies „1“ PHP_INI_ALL Seit PHP 4.3.0 verfügbar.

Tommi

cool, klingt interessant. werde ich mal ausprobieren - zumindest ertmal für das widget.