login  Naam:   Wachtwoord: 
Registreer je!
 Forum

session niet gedefinieerd

Offline killerwhale6 - 19/06/2007 16:36 (laatste wijziging 19/06/2007 16:36)
Avatar van killerwhale6Nieuw lid hoi,

Ik heb een session die gedefinieerd wordt door een selectievakje in een formulier aan te kruisen en dan op een knop te klikken:

  1. <?php
  2. if ($_POST['showbar']) {
  3. echo "ok";
  4. $_SESSION['500'] = $_POST['500'];
  5. }
  6. ?>


'showbar' is de naam van die knop dus bovenstaande code wordt enkel uitgevoerd op het moment dat ik op de knop klik.

Als ik op de knop heb geklikt, dan herlaadt de pagina uiteraard, en dan is de sessie gedefinieerd en wordt ook "ok" uitgeprint. Als ik nu nar de volgende pagina ga, dan is de sessie plots niet langer gedefinieerd. "ok" wordt niet afgeprint, dus bovenstaande code wordt niet meer herhaald en de sessie wordt dus zeker niet met een lege $_POST overschreven.

Wie helpt?

Thanks!

Matt

16 antwoorden

Gesponsorde links
Offline Rik - 19/06/2007 16:39
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Bedoel je het zo?
  1. <?php
  2. if (isset($_POST['showbar']) || isset($_SESSION['500'])) {
  3. echo "ok";
  4. $_SESSION['500'] = $_POST['500'];
  5. }
  6. ?>
Offline Ultimatum - 19/06/2007 16:55
Avatar van Ultimatum PHP expert Heb je wel overal session_start() om de sessie wel in leven te houden...
Offline killerwhale6 - 19/06/2007 16:56 (laatste wijziging 19/06/2007 17:02)
Avatar van killerwhale6 Nieuw lid @ boukefalos: neen die sessie moet niet gedefinieerd zijn, want die wordt pas in die code gedefinieerd.

@ ultimatum: ja want een totaal andere sessie wordt wel bewaard.

Wat ik dus eigenlijk wil bereiken, is dat het aankruisvakje geselecteerd is wanneer die sessie bestaat. Dus iemand kruist het vakje aan, klikt op de knop, en vanaf dan zal bij elke pagina het vakje reeds aangekruisd zijn. Maar het vakje blijft dus enkel aangekruist op de eerste pagina, net na het klikken op de knop, en verder niet meer. Hier de code voor het aankruisvakje:
  1. <?php
  2. <input name="500" type="checkbox" <?php if ($_SESSION['500'] == 'on') { echo "checked";}?>> <small>Herpa 1:500</small>
  3. ?>
Offline Ultimatum - 19/06/2007 17:00
Avatar van Ultimatum PHP expert En hij staat er ook niet bij als je print_r($_SESSION) doet?
Offline killerwhale6 - 19/06/2007 17:05
Avatar van killerwhale6 Nieuw lid vlak na het klikken op de knop wel, bij de volgende pagina niet meer.
Offline Wim - 19/06/2007 17:31
Avatar van Wim Crew algemeen mag er voor je een sessie defineerd wel output zijn... die echo?

prolly is dat debugging dus dan maakt het offcourse niet uit. Probeer mss $_POST['500'] eens te echoën?
Offline killerwhale6 - 19/06/2007 17:39
Avatar van killerwhale6 Nieuw lid is inderdaad debuggen. Die $_POST['500'] wordt uiteraard enkel net na de knopklik geechood en dat werkt perfect.
$_SESSION['500'] echooen werkt ook net na de knopklik, daarna niet meer.
Offline Koen - 19/06/2007 17:42 (laatste wijziging 19/06/2007 17:42)
Avatar van Koen PHP expert
  1. <input name="500" type="checkbox" <?php if ( == 'on') { echo "checked";}?>> <small>Herpa 1:500</small>

doe je..
Hoe kan $_SESSION['500'] gelijk zijn aan 'on'??
Je definieert alleen maar of $_SESSION['500'] true of false is in
  1. <?php
  2. if ($_POST['showbar']) {
  3. echo "ok";
  4. $_SESSION['500'] = $_POST['500'];
  5. }
  6. ?>

Doe anders gewoon
  1. <input name="500" type="checkbox" <?php if (isset($_SESSION['500'])) { echo "checked";}?>> <small>Herpa 1:500</small>

edit: php tags bij html :/
Offline Rens - 19/06/2007 17:49
Avatar van Rens Gouden medaille

Crew algemeen
Geef je checkbox ook eens een waarde mee.
value="1" bijvoorbeeld...
Offline Wim - 19/06/2007 18:05
Avatar van Wim Crew algemeen Dat POST-data enkel de volgende pagina werkt is trouwens de bedoeling.

if($_POST['500'] === true)
$_SESSION['500'] = ' checked';

<input name="500" type="checkbox"<?=$_SESSION['500']; ?>> <small>Herpa 1:500</small>


session_start(); niet vergeten boven ELKE pagina!
Offline Koen - 19/06/2007 18:26
Avatar van Koen PHP expert @ Wimmarien:
$_SESSION['500'] wordt gedefinieerd als $_POST['500'], dan heb je de volgende pagina die $_POST toch helemaal niet meer nodig? Het gaat over de sessie..
Citaat:
Dat POST-data enkel de volgende pagina werkt is trouwens de bedoeling.

en idd, zoals iedereen zegt:
session_start(); niet vergeten!! (HELEMAAL bovenaan)
Offline killerwhale6 - 19/06/2007 18:31 (laatste wijziging 19/06/2007 18:43)
Avatar van killerwhale6 Nieuw lid
Citaat:
Hoe kan $_SESSION['500'] gelijk zijn aan 'on'??


$_POST['500'] is 'on' wanneer de checkbox aan staat, en dus is de sessie ook 'on'.

Citaat:
Doe anders gewoon
[..code..]


het probleem is juist dat de sessie niet meer gedefinieerd is vanaf de tweede pagina


Citaat:
Geef je checkbox ook eens een waarde mee.

gedaan, maar helpt niet.


Citaat:
Dat POST-data enkel de volgende pagina werkt is trouwens de bedoeling.

uiteraard, vandaar dat ik het ook in een sessie probeer te steken.:D

Citaat:
[..code..]

doet niets, zelfs niet op de eerste pagina, de sessie wordt immers niet geechood.
Offline Wim - 19/06/2007 19:01
Avatar van Wim Crew algemeen <?=$var; ?>
==
<?php echo $var; ?>

en aangezien die sessie als waarde " checked" heeft...

geef de sessie anders een een waarde die bestaat uit de letters van het alfabet...

In php mag een variabele niet met een cijfer beginne, maar ik weet niet of dit ook bij een sessie is...
Offline Rik - 19/06/2007 19:09
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
@wimmarien
Dat mag gewoon inderdaad niet!
Je krijgt een error:
Citaat:
Notice: Unknown: Skipping numeric key 500. in Unknown on line 0
En vervolgens onthoudt hij de waarde dan ook niet. In een normale array zou dit trouwens wel mogen, dan is gewoon een associatieve array.
Offline killerwhale6 - 19/06/2007 19:48
Avatar van killerwhale6 Nieuw lid dit werkt inderdaad. Nu ligt een andere sessie wel overhoop, maar das voor morgen.

Bedankt.
Offline Koen - 19/06/2007 19:49 (laatste wijziging 19/06/2007 19:50)
Avatar van Koen PHP expert doe dan
  1. <?
  2. if(isset($_POST['a500'])) {
  3. $_SESSION['a500'] == TRUE;
  4. }
  5. ?>
  6. <input name="a500" type="checkbox"<? if($_SESSION['a500']) { echo 'checked';} ?>> <small>Herpa 1:500</small>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.292s