[PHP] problemen met 'meenemen' van $_SESSION strings

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • enveekaa
  • Registratie: September 2003
  • Laatst online: 06:09
Hoi bennik weer :)

Ik loop ook tegen het volgende probleem aan.

Er wordt door een gebruiker een controleurs code ingevoerd, deze wordt meegenomen via POST, gaat goed, maar als ik dan de invoer wil laten zien aan de gebruiker als volgt:
code:
1
2
$_SESSION['controleur'] = "$invoer";
message("De controleurs code is gevonden.<br>Je bent nu ingelogd als nummer: $controleur","laadlosnummer.php");


De string invoer is nummeriek, is al eerder gebruikt om te controleren dus heeft een waarde. Ik registreer de string met $_SESSION en gebruik de GLOBAL $controleur dan als string, deze geeft echter niks op de volgende pagina... het rare, na een refresh werkt het dus wel.. zit er een soort vertraging in de registratie van die GLOBAL?

:P

Acties:
  • 0 Henk 'm!

Verwijderd

Wordt de sessie niet gezet nadat het 'zichtbare' gedeelte van de pagina al op het scherm staat. Want dan zou je na een refresh dus $controleur idd wel zien....
Maar dat zal wel te simpel gedacht zijn...

offtopic:
Tis ook nog vroeg he na een avondje stappen :Z

Acties:
  • 0 Henk 'm!

Verwijderd

enveekaa schreef op 29 oktober 2004 @ 12:19:
Hoi bennik weer :)

Ik loop ook tegen het volgende probleem aan.

Er wordt door een gebruiker een controleurs code ingevoerd, deze wordt meegenomen via POST, gaat goed, maar als ik dan de invoer wil laten zien aan de gebruiker als volgt:
code:
1
2
3
$_SESSION['controleur'] = "$invoer";
message("De controleurs code is gevonden.<br>Je bent nu ingelogd als nummer: 
$controleur","laadlosnummer.php");
En als je het zo doet?
code:
1
2
3
$_SESSION['controleur'] = $invoer;
message("De controleurs code is gevonden.<br>Je bent nu ingelogd als nummer:".
$_SESSION['controleur'],"laadlosnummer.php");


(Meteen wat onnodige " verwijderd. :P

[ Voor 9% gewijzigd door Verwijderd op 29-10-2004 13:15 ]


Acties:
  • 0 Henk 'm!

  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 05-09 14:30

DizzyWeb

Ondertiteld

Dit is echt te weinig info hoor.

Je weet dat een session variabele pas in de volgende pageview beschikbaar is?

[ Voor 1% gewijzigd door DizzyWeb op 29-10-2004 13:21 . Reden: Typo ;) ]


Acties:
  • 0 Henk 'm!

  • enveekaa
  • Registratie: September 2003
  • Laatst online: 06:09
Hmm nee maakt geen verschil, ik heb het volgens mij eruit, ik gebruikte de sessie onnodig, als ik de eerste keer dan ik de funtie message aanroep gewoon $invoer als string gebruik is de volgende pagina wel kloppend, en de globals zijn ook goed geregistreerd..

... ben effe eten! :)

Acties:
  • 0 Henk 'm!

  • erkje
  • Registratie: Oktober 2001
  • Laatst online: 12-06-2024
DizzyWeb schreef op 29 oktober 2004 @ 13:20:
Dit is echt te weinig info hoor.

Je weet dat een session variabele pas in de volgende pageview beschikbaar is?
Onzin, als ik een sessievariabele maak kan ik hem de volgende regel nog gebruiken (en dat doe ik heel vaak)!

Enveekaa, je gebruikt $_SESSION['controleur'] als global: $controleur. Dit kan alleen als register_globals aanstaat in de php.ini. Als dit niet zo is zul je altijd met $_SESSION['controleur'] moeten werken (of je moet $controleur = $_SESSION['controleur']; doen).
Doe het op de manier zoals JimmyShelter doet, die werkt.

taste and see that the Lord is good


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
erkje schreef op 29 oktober 2004 @ 16:21:
Enveekaa, je gebruikt $_SESSION['controleur'] als global: $controleur. Dit kan alleen als register_globals aanstaat in de php.ini.
En zelfs dan niet zomaar. Alleen als de variabele uit een scope (get/post/cookie/session/server) komt die al bij het starten van de pagina aanwezig was.

Dit gaat dus nooit werken:
PHP:
1
2
$_SESSION['test'] = 'waarde';
echo $test;


Tenzij je dus register_globals gebruikt én je de pagina al een keer eerder geladen hebt om die sessie-waarde op te laten nemen. Maar ook dan is $test niet rechtstreeks gekoppeld aan de $_SESSION['test']-waarde.

Maar dit werkt inderdaad wel:
PHP:
1
2
$_SESSION['test'] = 'waarde';
echo $_SESSION['test'];

[ Voor 15% gewijzigd door ACM op 29-10-2004 16:29 ]


Acties:
  • 0 Henk 'm!

  • enveekaa
  • Registratie: September 2003
  • Laatst online: 06:09
Hmm ok het is me duidelijk, register_globals staat uit.. omdat het veiliger is. Ik doe het nu anders, ik hoef die global dus niet gelijk te gebruiken maar pas in de daar op volgende scripts en daar werken ze gewoon wel..

:P

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Je kan toch ook gewoon met de $_SESSION-array werken, ipv hardnekkig volhouden met de global variabele :?

Acties:
  • 0 Henk 'm!

  • enveekaa
  • Registratie: September 2003
  • Laatst online: 06:09
Doe ik toch...
Pagina: 1