Sessions - Daten lassen sich nicht ändern

Daxi

Erfahrenes Mitglied
Hallo!

Ich will ein PHP-Script mit Sessions bauen.
Das Programm besteht nur aus einer PHP-Datei!
Ich starte also die Session mit session_start().
Dann setze ich die Variablen der Session mit $_SESSION["irgendwas"] = "irgendwelche daten";
Leider lassen sich die Daten komischerweise nicht mehr ändern.
Nutze WAMMP2 (Release von apachefriends.org) unter Win2k.
Keine AShnung warum das nicht geht.

Könntet ihr mir bitte weiterhelfen?
 
session_register funktioniert auch nicht.

Also nochmal zur Verdeutlichung:
Beim 1. Aufruf funktioniert sowohl $_SESSION als auch session_regsiter.
Doch wenn die Variablen bereits gesetzt sind, lassen sie sich nicht mehr ändern.
Ist dann sozusagen eine Konstante.
Habe auch schon versucht die betreffende Variable vorher mit session_unregister zu löschen. Funktioniert aber leider auch nicht.
Habt ihr Tipps & Tricks für mich?
Ich denke es liegt an der Konfiguration.
Auf meinem Webserver habe ich es noch nicht probiert, da ich grundsätzlich keine unvollständigen Scripts hochlade.
 
Komisch. Auf dem Webserver funktioniert das auch nicht.

Hier der Code:
PHP:
 session_start();
 switch($aktion)
 {
  case "neu":
   session_unset();
   break;
  case "titel":
   $_SESSION["titel"] = $titel;
   break;
  case "beschr":
   $_SESSION["beschr"] = $beschr;
   break;
 }

Müsste doch eigentlich richtig sein, sonst würde er es doch auch beim 1. mal nicht speichern.
 
session_register brauchts nicht.
Steht zumindest so unter PHP.net.
Es geht $_SESSION["bezeichnung"] = "Inhalt";
oder $bezeichnung = "Inhalt";
session_register("bezeichnung");

Wobei $_SESSION eine globale Variable ist. D.h.: Sie muss in Funktionen nicht erst global gemacht werden.

Siehe:
http://de.php.net/manual/de/function.session-register.php

Also geht beides.
Ich habe mich dafür entschieden, da ich gerne mal mit Funktionen arbeite.
 
Ups... Müll gelabert, sorry. Man lernt ja nie aus :-(
Mal ne blöde Frage, was passiert denn, wenn du die Seite aktualisierst?
 
Hast du RegisterGlobals auf On? Wenn das der Fall ist, würde ich die Variable, die aus dem Formular zur Änderung kommt oder wo auch immer her nicht genauso nennen wie die Variable in der Session. Soweit ich mir das denken kann, werden die Session-Variablen beim Aufruf der PHP-Datei nach den Formulardaten geparsed, wodurch die vom Formular kommenden Daten von den Sessionwerten überschrieben werden.

Also mal folgendes Probieren:
PHP:
<?php

session_start ();

$name = (isset ($_REQUEST["name"])) ? $_REQUEST["name"] : "Kurt";

if ((isset ($_SESSION["dername"])) AND ($name != $_SESSION["dername"]))
{
  $_SESSION["dername"] = $name;
}

?>

Aktueller Sessionwert: <?=$_SESSION["dername"]?>
<p />
<form action="" method="get">
Neuer Wert:
<input type="text" name="name" />
<input type="submit" />
</form>

Ich hab das Stück Code jetz nicht getestet. Also keine Gewähr auf Funktionalität. :-)
 
Zurück