login  Naam:   Wachtwoord: 
Registreer je!
 Forum

session werkt niet (Opgelost)

Offline Yourgamecrew - 15/12/2011 13:05 (laatste wijziging 15/12/2011 16:09)
Avatar van YourgamecrewLid Hi ik probeer sessions een beetje onder de knie te krijgen maar ik heb zeg maar het volgende script met een session alleen deze doet het niet:

test6.php
  1. <?php
  2.  
  3. $antwoord = 7;
  4. $_SESSION['antw'] = $antwoord;
  5. ?>
  6.  
  7. <form action="test7.php" method="post">
  8. <input name="poging" type="text" />
  9.  
  10. <input type="submit" value="Controleer">


test7.php
  1. <?php
  2.  
  3. $poging=$_POST["poging"];
  4. $antwoord = $_SESSION["antw"];
  5.  
  6. print("$poging");
  7. print("$antwoord");
  8. ?>


Hij print alleen maar $poging en niet $antwoord
kan iemand mij vertellen wat/waar de fout is/zit?

11 antwoorden

Gesponsorde links
Offline WouterJ - 15/12/2011 14:58
Avatar van WouterJ HTML gevorderde Er zitten meerdere fouten in je script:
- Waarom op regel 3 PHP sluiten en op regel 5 php weer openen?
- Controleer of er iets gepost is met:
  1. if( $_SERVER['REQUEST_METHOD'] == 'POST' )
  2. { #verzonden
  3. }

- Regel 2 en 3 in test7.php en Regel 6 in test6.php zijn onnodig en kosten alleen maar tijd.
- Variabelen moeten buiten quotes in regel 5 en 6
- Op elke pagina waarin je sessies gebruikt moet op regel 1 session_start() staan
- Met print hoef je geen () te gebruiken
Offline Giant - 15/12/2011 15:39
Avatar van Giant PHP beginner
Citaat:
- Regel 2 en 3 in test7.php en Regel 6 in test6.php zijn onnodig en kosten alleen maar tijd.

Regel 2 is zeker niet onnodig, er zijn genoeg php installaties die NIET standaard een session starten

Citaat:
- Variabelen moeten buiten quotes in regel 5 en 6

Moeten is niet het juiste woord, het is netter, niet verplicht. PHP parsed alle variabelen die tussen quotes (") staan, als variabele

Citaat:
- Op elke pagina waarin je sessies gebruikt moet op regel 1 session_start() staan

Ligt er maar net aan, als je in index.php de sessie start, en van daar uit alles include is dat niet nodig.

Citaat:
- Met print hoef je geen () te gebruiken

hoeft niet, wel netter want je roept een functie aan....

@topic starter, waarschijnlijk is de sessie nog niet gestart in test7.php, hierdoor kan php de sessie antw niet vinden.
Offline WouterJ - 15/12/2011 15:56
Avatar van WouterJ HTML gevorderde
Citaat:
Regel 2 is zeker niet onnodig, er zijn genoeg php installaties die NIET standaard een session starten

Lezen is zeker een groot woord... Regel 2 van test7.php is $poging=$_POST["poging"]; en dat is zeker onnodig.
Citaat:
Moeten is niet het juiste woord, het is netter, niet verplicht. PHP parsed alle variabelen die tussen quotes (") staan, als variabele

Dat is alleen omdat PHP zo'n idiote taal is. Waarom zou je variabelen in strings toestaan? Overigens gebeurd dit alleen met dubbele quotes en niet in enkele quotes.
Citaat:
Ligt er maar net aan, als je in index.php de sessie start, en van daar uit alles include is dat niet nodig.

Ik heb het ook over iedere pagina, niet ieder bestand. Maar denk jij na het lezen van de topic post dat test7.php wordt geïncluded in test6.php?
Citaat:
hoeft niet, wel netter want je roept een functie aan....

Juist niet netter. Print en echo is geen functie maar een language construct. Language constructs zijn zonder (). PHP dacht, misschien gaan gebruikers het wel zien als een functie dus laten we maar ook toestaan dat () kunnen. En dat is dus weer zo'n idioot ding van PHP.

Citaat:
@topic starter, waarschijnlijk is de sessie nog niet gestart in test7.php, hierdoor kan php de sessie antw niet vinden.

En zoals je misschien wel door had heb ik dit ook aangegeven in het punt: Op elke pagina waarin je sessies gebruikt moet op regel 1 session_start() staan
Offline Yourgamecrew - 15/12/2011 16:08 (laatste wijziging 15/12/2011 16:43)
Avatar van Yourgamecrew Lid sorry maar ik raak nu een beetje in de war van jullie. Wat moet ik nou veranderen? ik heb het script al een beetje bijgewerkt zie topic.
Offline WouterJ - 15/12/2011 17:27
Avatar van WouterJ HTML gevorderde Als je mijn veranderingen toepast zal het script werken. Het zit hem vooral in dat je session_start() in test7.php bent vergeten.
Offline Yourgamecrew - 15/12/2011 18:18
Avatar van Yourgamecrew Lid ik heb session_start() in test7.php gezet maar hij print nog steeds alleen $poging
Offline WouterJ - 15/12/2011 18:59
Avatar van WouterJ HTML gevorderde Laad je wel eerst test6.php? En heb je de andere punten ook al aangepast?
Offline Yourgamecrew - 15/12/2011 19:17
Avatar van Yourgamecrew Lid Bij mij werkt het als ik voor test6.php neem:
  1. <?php
  2. $antwoord = 10;
  3. $_SESSION['antw'] = $antwoord;
  4. ?>
  5.  
  6. <form action="test7.php" method="post">
  7. <input name="poging" type="text" />
  8.  
  9. <input type="submit" value="Controleer">


en voor test7.php:
  1. <?php
  2.  
  3. $poging=$_POST["poging"];
  4. $antwoord = $_SESSION["antw"];
  5.  
  6. print($poging);
  7. print($antwoord);
  8. ?>


doet hij het bij jullie ook want bij mij doet ie het wel maar bij een vroiend van me niet
link: http://yourperfectgame.com/test6.php
Offline Ibrahim - 15/12/2011 19:56
Avatar van Ibrahim PHP expert Waarom maak je eigenlijk een variabele aan om het vervolgens in de sessie te zetten op de volgende regel?
Offline Yourgamecrew - 15/12/2011 20:58
Avatar van Yourgamecrew Lid daar gaat het niet om blijf aub ontopic
Offline WouterJ - 15/12/2011 22:02
Avatar van WouterJ HTML gevorderde @Yourgamecrew,
1) Hij is zelf een mod, je hoeft hem niet te wijzen op ontopic blijven
2) PHP moet goed zijn en PHP moet doordacht zijn. Gewoon maar wat opschrijven zonder er bij na te denken kan niet. Je moet elke regel, elk woord elk teken in je PHP kunnen onderbouwen. Kun je dat niet dan weet je dat er iets fout zit en je nog meer moet doorleren.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.323s