Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Countervariable aus Session auslesen...





Frage

Welchen Fehler mach ich bloss? Ich mochte auf einer Antwortseite eines Formulars eine Counterzahl ausgeben, die aus einer Session ausgelesen wird. Problem: Er gibt die Variable „counter“ in „dankefuerteilnahme.php“ nicht aus. (Formulare, Session und Counter funktioneren sonst einwandfrei.) Aber anscheinend lese ich die Variable nicht richtig oder an der verkehrten Stelle aus oder? [b]Ich habe [/b] -formular.php -dankefuerteilnahme.php -counter.php [b]formular.php :[/b] uebliches formular und [code]<?php include("counter.php"); ?>[/code] [b]counter.php:[/b] [code]<? session_name(´test´); session_start(); $datei = fopen("zaehler.txt","r+"); $counterstand = fgets($datei, 10); if($counterstand == "") { $counterstand = 0; } $counterstand++; $_SESSION[´counter´] = $_REQUEST[´counterstand´]; //fuer Session einlesen rewind($datei); // fwrite($datei, $counterstand); fclose($datei); ?> [/code] [b]dankefuerteilnahme.php:[/b] ueblicher Antworttext und [code]<?php echo $_SESSION[´counter´]; ?>[/code] Mit grosser Hoffnung auf Eure Hilfe Gruss Mel

Antwort 1 von grt

counter.php:
versteh ich nicht. wieso liest du den wert aus, wenn du ihn danach einfach wieder reinschreibst? fehlt da nicht irgendwo die zuweisung zu der session-variable?

$_SESSION[´counter´] = $_REQUEST[´counterstand´] + $counterstand;


wird in "dankefuerteilnahme.php" die session auch gestartet?

schreibt mal "error_reporting(E_ALL);" an den anfang von jedem script.

was sagt "var_dump($_SESSION);" ?

Antwort 2 von Mel

Hallo grt,

also endlich komme ich dazu zu antworten.
Entschuldige.

grt:
Zitat:
versteh ich nicht. wieso liest du den wert aus, wenn du ihn danach einfach wieder reinschreibst?


Ich wollte die countervariable als Sessionvariable vorliegen haben.

grt:
Zitat:
wird in "dankefuerteilnahme.php" die session auch gestartet?

schreibt mal "error_reporting(E_ALL);" an den anfang von jedem script.

was sagt "var_dump($_SESSION);" ?


ja, session wurde gestartet und mit error_reporting war auch nichts zu sehen und var_dump hat die Variable nicht gefunden.

Ja, und da ist mir gerade die Idee gekommen, daß eine Sessionvariable ja auch eingelesen werden muss (wie Du schon angedeutet hattest, oder?)

Ich hatte nun die Idee, die countervariable in nen hidden-field auszugeben und dann das hidden-field als Sessionvariable einzulesen. Und das hat funktioniert.

Hmh,
anscheinend habe ich vergessen, daß eine Variable immer innerhalb eines Formulares definiert werden und mit Hilfe eines "post" oder "get" an den Server übertragen werden muss, bevor sie als Sessionvariabel wieder abrufbar ist.

Könnt ihr das so bestätigen oder bin ich da auf dem Holzweg? Es klappt zumindest momentan....

Vielen Dank für euer Feedback

Gruss mel

Antwort 3 von Supermax

Hast du auch auf allen Seiten session_name(´test´); vor session_start() aufgerufen?

Ansonsten wird versucht, zum Bestimmen der Session-ID das falsche Cookie bzw. den falschen Parameter heranzuziehen.

Ohne trifttigen Grund sollte man session_name ohnehin nicht ändern, es sei denn es gibt echte Konflikte mit dem standardmäßigen PHPSESSID

Antwort 4 von Mel

Supermax:
Zitat:

Hast du auch auf allen Seiten session_name(´test´); vor session_start() aufgerufen?


Ja, hab ich und klappt auch alles einwandfrei jetzt. Danke Dir.

Mir bleibt noch die Frage, ob
eine Variable immer innerhalb eines Formulares definiert werden und mit Hilfe eines "post" oder "get" an den Server übertragen werden muss, bevor sie als Sessionvariabel wieder abrufbar ist.

Das ist so oder?

Gruss
Mel

Antwort 5 von rabies

Eigentlich sollte es reichen, jeweils die Session-ID zu übergeben. Die bekommst Du jeweils mit der Funktion session_id()

Man muss das ganze auch nicht zwangsweise mit einem Formular übergeben. Die Übergabe kann problemlos auch mit Links passieren...

Antwort 6 von Mel

Rabies:
Zitat:
Eigentlich sollte es reichen, jeweils die Session-ID zu übergeben. Die bekommst Du jeweils mit der Funktion session_id()

Man muss das ganze auch nicht zwangsweise mit einem Formular übergeben. Die Übergabe kann problemlos auch mit Links passieren...


ah, danke Dir vielmals.
Jetzt ist es klar. Super !

Einen sonnigen Tag noch
Gruß
Mel

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: