Session-Variable richtig entfernen...

CHaos13327

Grünschnabel
Hy,

ich habe ein merkwürdiges Problem mit einem Projekt von mir. Und zwar habe ich eine Sessionvariable in der bestimmte Benutzerdaten abgelegt sind. An einer bestimmten Stelle müssen diese Daten möglichweise geändert werden. Da ich mich nicht lange damit aufhalten möchte, zu prüfen ob die richtigen Daten in der Session stehen, möchte ich die Sessionvariable entfernen und neu anlegen. Ich rufe also
PHP:
unset($_Session['blubbdiblubb_userdaten']);
auf. Die Variable ist auch wunderbar entfernt, wenn ich diese Variable aber neu füllen will...
PHP:
$_SESSION['blubbdiblubb_userdaten'][$i] = 0;
das ganze wie zu erkennen in einer schleife, passiert nix. Die Variable bleibt leer...var_dump sei mein Zeuge.

Was mach ich verkehrt? Wenn ich das unset rausnehme geht alles, nur dasss die Daten halt immer hintenan gehängt werden und das ist schlecht.

Greetz und thx
 
PHP:
<?php
	session_start();
	if (!function_exists(checklevel)) { header('Location: index.php?task=epicfail'); }
	unset($_SESSION['startplanets']);
	for ($i = 1;(isset($_POST[$i]));$i++) {
		$daten = explode(':',$_POST[$i]);
		if ($_POST['chk'.$i] == 'on') { 
			$chk = 1; 
			$_SESSION['startplanets'][$i] = $daten;
		} else { $chk = 0; }
	}
?>

Die Variable chk wird für eine SQL Abfrage benötigt. Als Post kommen bestimmte durch Doppelpunkt getrennte Daten aus einem Formular.
Wie gesagt, sobald ich das unset auskommentiere funktioniert das einfügen, aber halt nur das erste mal richtig, danach sind alle alten Daten enthalten.

Ich hoffe das reicht an Code...
 
Danke Zodiac für diesen "hilfreichen" Tip... -.-

Gut dass ich den Bewertungsknopf grad nicht finde. Hättest du dich wenigstens bequemt, den Quelltext zu lesen, dann wäre dir auch aufgefallen, dass die Variable groß geschrieben wird und wenn du schon klugscheissen willst, dann mach es richtig:

Wenn ich die Variable $_Session anlege, dann gibt es die.

@Gumbo: Many THX, das t...aber erklären warum es mit unset nicht geht kann mir trotzdem keine oder?
Das würde mich nämlich noch richtig interessieren...
 
Bewertung ist das halb gefüllte Gesicht mittig unter dem jeweiligen Nick.
Das du die Variable $_Session mit Referenz auf die eigentliche Variable $_SESSION angelegt hast oder irgendwie Case-Sensitive ausgeschaltet hast stand hier leider nirgendwo.
Es wäre nämlich der Fehler ganz oben bei dem Quelltext mit dem unset() gewesen, den ich auch zitiert hab ;)
 
Also nochmal: Ich habe den Text oben per Hand geschrieben und später noch meinen Quelltext per Copy&Paste eingefügt. Hättest du alles gelesen, hättest du auch feststellen können, dass die Variable in beiden Fällen richtig und groß geschrieben wurde...ich habe auch geschrieben, dass mein Problem nicht ist, dass die Variable sich nicht leeren lässt, sondern dass sie danach nicht mehr zu befüllen geht. Also kann das Problem auch gar kein Tippfehler sein...
Leider zeugt auch dein nächster Beitrag nicht davon, dass du verstanden hast, was ich dir sagen wollte. Vielleicht hab ich ja jetzt mehr Glück.

@forencop nchristoph: melde meinen beitrag doch wenns dir nicht passt. fakt ist, dass zodiac meine beträge nicht richtig durchgelesen hat und dann auch noch etwas falsches erzählt hat...da werd ich wohl doch mal die fakten nennen dürfen.

in diesem sinne, mir wurde geholfen...habe auch einen beitrag gefunden, der was zu dem thema sagt. anscheinend wird durch das unset auf die session das registrieren von superglobals abgeschaltet. zumindest ist das so wenn man unset($_SESSION); macht, also denke ich mal, das ist hier auch so...
 
Zurück