Ik heb de search gebruik (search woorden 'php session function') maar ben mijn probleem niet tegengekomen.
Dit is mijn probleem:
Ik heb een tweetal sessievariabelen die ingesteld worden via een loginscript, namelijk $status en $emailadres. In mijn login.php staat:
Dit gaat allemaal goed, met andere woorden: de sessievariabele $status komt goed door (immers, opnieuw geredirect naar login.php en we komen aan bij klant_home()).
Ik heb alle gedeelten die de klant op zijn scherm te zien kan krijgen om structurele redenen verwerkt in functies_klant.php. Daar staat een functie klant_home in:
De sessievariabelen $status en $emailadres zijn NIET terug te vinden hier (gecheckt door 'print_r($HTTP_SESSION_VARS);' en door simpelweg 'echo $status;' en 'echo $emailadres;') ... derhalve is de query dus niet geldig (WHERE emailadres = ''). Als ik $emailadres vervang door een geldig emailadres uit de database dan is het wel goed, dus aan de code zelf ligt het niet.
Ik hoop dat ik het een beetje duidelijk heb uitgelegd...
Mijn vraag: waarom zijn de sessie variabelen bij login.php nog wel aanwezig, maar zijn ze verdwenen als ik een functie uit een ander bestand aanroep (daar staat ook session_start)?
Dit is mijn probleem:
Ik heb een tweetal sessievariabelen die ingesteld worden via een loginscript, namelijk $status en $emailadres. In mijn login.php staat:
PHP:
1
| <? session_start ();....if ($status == "") { ... hier het login gebeuren, en bij succesvol login wordt $status op "klant" gezet, ... $emailadres ingesteld en wordt opnieuw geredirect naar login.php }elseif ($status == "klant") { include("functies_klant.php"); if ($action == "" ) { klant_home(); } elseif .... } ...?> |
Dit gaat allemaal goed, met andere woorden: de sessievariabele $status komt goed door (immers, opnieuw geredirect naar login.php en we komen aan bij klant_home()).
Ik heb alle gedeelten die de klant op zijn scherm te zien kan krijgen om structurele redenen verwerkt in functies_klant.php. Daar staat een functie klant_home in:
PHP:
1
| <? session_start ();function klant_home() { include("db_connect.php"); $query = "SELECT * FROM klanten WHERE emailadres = '$emailadres'"; $resultaat = mysql_query($query); ... etc?> |
De sessievariabelen $status en $emailadres zijn NIET terug te vinden hier (gecheckt door 'print_r($HTTP_SESSION_VARS);' en door simpelweg 'echo $status;' en 'echo $emailadres;') ... derhalve is de query dus niet geldig (WHERE emailadres = ''). Als ik $emailadres vervang door een geldig emailadres uit de database dan is het wel goed, dus aan de code zelf ligt het niet.
Ik hoop dat ik het een beetje duidelijk heb uitgelegd...
Mijn vraag: waarom zijn de sessie variabelen bij login.php nog wel aanwezig, maar zijn ze verdwenen als ik een functie uit een ander bestand aanroep (daar staat ook session_start)?
Geef mij maar een Warsteiner.