inhalt einer session-variablen nach unset() plötzlich wieder da
Roger
- php
moin!
ich lösche per unset() verschiedene variablen aus einer angelegten session.
bsp: session mit kundenid + bestellten waren -> bestellte waren soll aus der session entfernt werden und kundenid soll erhalten bleiben
auf zig servern hat das auch geklappt. allerdings klappts mal wieder bei einem server nicht. hier wird augenscheinlich der inhalt gelöscht (ich lasse mir die komplette session per print_r($_SESSION); ausgeben), allerdings ist alles wieder vorhanden, wenn ich auf eine andere seite gehe, als wenn nix gelöscht worden wäre.
auf diesem server hab ich allerdings die kontrolle über die php.ini, kann also einstellungen selber machen.
muss da nur was eingestellt werden, oder gibt es eine andere möglichkeit, mein problem zu behebn?
gru.
roger.
Hello,
Welche PHP-Version?
Werden auch die Variablen $HTTP_SESSION_VARS benutzt?
Werde die antiken Sessionfunktionen noch benutzt?
Liebe Grüße aus http://www.braunschweig.de
Tom
moin!
nee nee, schon ne neuere version: 4.2.3
gruß.
roger.
moin!
weiß denn keiner weiter rat? :(
gruß.
roger.
Hello Roger,
manchmal ist das schon verrückt. Da gibts hier sooo viele Profis und trotzdem hat keiner eine Idee. Geht mit doch mit meinem Rechteproblem bei PERL-Scripten genauso.
Ich könnte mir nur vorstellen, dass Du ein session_start() oder sonstige Sessionbefehle NACH dem unset() benutzt. Sonst sollte die Variable eigentlich gelöscht sein und bleiben.
Liebe Grüße aus http://www.braunschweig.de
Tom
moin!
Ich könnte mir nur vorstellen, dass Du ein session_start() oder sonstige Sessionbefehle NACH dem unset() benutzt. Sonst sollte die Variable eigentlich gelöscht sein und bleiben.
öhm.. nö :S
unset() steht am ende des scriptes. am anfang session_start(). nix kompliziertes.
am ende steht auch der link, mit dem ich eine andere seite (anfangs beschrieben aufrufe), die auch weider session_start() ganz oben stehen hat. nirgend sonst wo. un in dieser sehe ich plötzlich wieder die gelsöchten inhalte.
kann es vielleicht sein, dass ich mit unset() keine schreibberechtigung auf die session-datei habe?
gruß.
roger.
Hello,
kann es vielleicht sein, dass ich mit unset() keine schreibberechtigung auf die session-datei habe?
Ungewöhnliche Idee, aber dann müsstest Du IMMER dieselben Sessionvariablen sehen. Das bedeutet, dass die Datei irgendwann einmal angelegt wurde und nachträglich die Schreibberechtigung für den Webserver entzogen wurde. Hast Du schon einmal getestet, welche Session-ID Du bekommst? Ändert die sich denn von Session zu Session?
Da hilft nut ein minimalistisches Testscpript, das wirklich nicht mehr enthält, als
<?php ### session_test.php ###
session_start();
if ($_GET['neu'] =='ja')
{
$_SESSION['test893'] = 'asdf0815';
}
else
{
unset($_SESSION['test893']);
}
echo "<pre>";
print_r($_SESSION);
echo "</pre>";
echo "<p>Session-ID: ".session_id()."</p>";
echo "<p><a href="".$_SERVER['PHP_SELF']."?neu=ja">neu</a></p>";
echo "<p><a href="".$_SERVER['PHP_SELF']."">löschen</a></p>";
?>
Bei mir funktioniert das.
Allersdings ahtte ich beim Vergleich ($_GET) erst ein "=" statt "==" stehen. Wie sieht es bei Dir aus?
Liebe Grüße aus http://www.braunschweig.de
Tom
moin!
danke für deine mühe!
mir mir klappt das allerdings auch...
session.nr bleibt gleich und zu löschen gehts auch...
liegt wohl doch an meinem script...
gruß.
roger.