[sessions] via FORM sessie updaten lukt niet

Pagina: 1
Acties:

  • supersook
  • Registratie: Januari 2001
  • Laatst online: 06-09 07:52

supersook

Professioneel prutser

Topicstarter
Ik ben eindeijk begonnen met sessions, en moet zeggen dat het verdomd handig werkt. Nu zit ik alleen met het volgende: Ik gebruik dit om de variabelen van een form in een sessie te registreren:
PHP:
1
2
3
4
5
6
7
8
<?
echo "Values submitted via POST method:<br>";
reset ($HTTP_POST_VARS);
while (list ($key, $val) = each ($HTTP_POST_VARS)) {
session_register($key); // LET OP!!! Zonder het $-teken
echo "$key => $val<br>";
}
?>

Dus alle POST vars worden in een sessie gezet. Heel simpel.

Maar als ik dus terrugga naar die form, en ik post opnieuw, dan laat ie de oude waardes staan. Waarom dat zo is snap ik wel: de waardes via POST worden overschreven door die uit de sessie, en die zijn dus nog oud. Hoe kan ik de vars uit de POST toch in de sessie krijgen?

edit:


fok, ik zie nu dat er geen PHP in m'n topictitel staat, misschien een modje die dat er bij wil zetten?


  • supersook
  • Registratie: Januari 2001
  • Laatst online: 06-09 07:52

supersook

Professioneel prutser

Topicstarter
komop, er moet toch wel iemand zijn die hier een simpele oplossing voor heeft?

  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Als je nu eens boven in het script controleerd wat de waarden zijn in de session variabelen en in de post variabelen, zijn die dan verschillend?
PHP:
1
2
3
4
5
<?
print_r($HTTP_POST_VARS);
echo "<BR><BR><BR>";
print_r($HTTP_SESSION_VARS);
?>

  • supersook
  • Registratie: Januari 2001
  • Laatst online: 06-09 07:52

supersook

Professioneel prutser

Topicstarter
Tuurlijk zijn ze verschillend, omdat het om een update gaat van de session vars. De bedoeling is alleen dat de session vars de waardes van POST niet overschrijven, wat nu wel het geval is.

  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Voeg eens 1 regeltje toe:
PHP:
1
2
3
4
5
6
<?
//....
$$key = $val;
session_register($key); // LET OP!!! Zonder het $-teken
//....
?>

  • supersook
  • Registratie: Januari 2001
  • Laatst online: 06-09 07:52

supersook

Professioneel prutser

Topicstarter
dus toch met variabele variabeles names ;)

  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Ja, want de eerste keer dat het script uitgevoerd wordt, worden de variabelenamen geregistreerd met hun waarden. Daarna zou je de variabelenamen telkens opnieuw registreren, maar deze bestaan al, dus wordt er geen nieuwe aangemaakt.

Door aan die variabelen de waarde toe te kennen wordt deze automatisch in de session geupdate ;)

Dus in principe is de tweede keer dat het script uitgevoerd wordt (binnen dezelfde sessie), de session_register niet meer nodig.

  • supersook
  • Registratie: Januari 2001
  • Laatst online: 06-09 07:52

supersook

Professioneel prutser

Topicstarter
k dan, het antwoord waar ik op zat te wachten! thnx m8
Pagina: 1