1.7k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von timoxy Mitglied (133 Punkte)
Liebe Forumsgemeinde,

ich habe komische Probleme mit Sessions. Und zwar wenn ich auf meiner Homepage ein Variable hab, die gleich heißt wie meine Session verändert sich meine Session. An was kann das liegen?

Quelltext:

if($_SESSION['page']=='all') {
if($_GET['page']) $page = $_GET['page'];
else $page='all';
}
else $page = $_SESSION['page'];


wenn ich jetzt eine Seite mit ?page=test aufrufe bekommt meine Session den Wert "test"

normalerweise darf die Session doch nur ihren Wert ändern wenn ich ihr einen zuweiße:
$_SESSION['page']='test';


oder?

hab ich da irgendetwas nicht beachtet?

Liebe Grüße und Danke für die Antworten

5 Antworten

0 Punkte
Beantwortet von Experte (6.4k Punkte)
Session-Variablen sind immer (super)global.
0 Punkte
Beantwortet von timoxy Mitglied (133 Punkte)
Ok danke für die Info, jedoch würde ich mir wünschen, wenn du dies noch etwas genauer erläutern könntest. Habe zwar bei Google nach super-global gesucht bin jedoch nicht wirklich auf eine zufriedenstellende Antwort gestoßen.

Mir ist klar, dass wenn ich einmal eine Session festlege, diese dann auf allen anderen Seiten auf diesem Server hinterlegt ist und ich überall darauf zugreifen kann.

Aber wieso ändert sie ihren Wert ohne ausdrückliche Zuweisung.

Das komische ist daran ich arbeite schon seit Jahren mit Sessions und hatte bis vor kurzem eigentlich nie damit Probleme.

Ich danke für weitere Antworten.

LG Timoxy
0 Punkte
Beantwortet von Experte (6.4k Punkte)
Vielleicht hilft Dir das etwas weiter:
de3.php.net/manual/de/reserved.variables.session.php (3. Beitrag von oben; sonstige Infos zu sessions)

Ansonsten benutz' doch einfach unterschiedliche Variablennamen, dann vermeidest Du solche Probleme zb. s_page für sessionvariablen. Aber wenn Du schon länger mit PHP arbeitest, muss ich Dir das sicher nicht sagen. (Ich arbeite nämlich vermutlich kürzer als Du mit php).
Welche PHP-Version nutzt Du eigentlich?
Und welche PHP-Version war es, bei der das schon funktioniert hat?
Hast Du register_globals in der PHP-INI verändert?
0 Punkte
Beantwortet von timoxy Mitglied (133 Punkte)
Hei danke für den Link,

bin aktuell schon am Packen für meinen zweiwöchigen Urlub und hab leider nicht viel Zeit, werde mich nach dem Urlaub nochmals melden.

Liebe Grüße Timoxy
0 Punkte
Beantwortet von Experte (6.4k Punkte)
Na dann mal viel Spass im Urlaub! Und denk dran: Nicht so viel saufen, Studien haben gezeigt, dass viele Menschen "dümmer" aus dem Urlaub wiederkommen ;-)
...