Hulp nodig met $_SESSION
Ik wil een formulier maken, die lang is, dus ik wil met meerdere pagina's gaan werken.
Ik vul een formulier, via get in het formulier ga ik naar een andere pagina en ik neem zo de informatie mee: $_SESSION['naam'] = $_POST['naam'];
Echter, wanneer ik dit doe, neemt de sessie niks mee. Wanneer ik $_SESSION['naam'] = 'hoi'; doe, werkt het wel.
Weet iemand wat het probleem kan zijn?
Ik heb ff geen voorbeeld zo, want die heb ik weg geklikt, omdat ik de balen had dat het niet werkte, zonder op te slaan.
Groet,
Roel
Ben je niet vergeten om session_start(); bovenaan te plaatsen?
Dat heb ik allemaal netjes gedaan. Alleen een sessie meegeven via een $_POST werkt niet...
Dan zal er niks in de $_POST zitten.
Of dezelfde pagina of bijvoorbeeld pagina2.php?
Zal die dan de sessie niet vullen?
Roel H op 18/12/2013 20:11:13:
Ik vul een formulier, via get in het formulier ga ik naar een andere pagina en ik neem zo de informatie mee: $_SESSION['naam'] = $_POST['naam'];
Als je get gebruikt in het formulier, zal er toch niets in $_POST zitten?!?
Ik zal anders morgen f wat maken en posten, misschien dat het makkelijker is.
Al gebruik je method="POST", dan haal je gegevens op met $_POST['']
Wie kan me helpen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
ob_start();
session_start();
if(isset($_POST['verzenden']) && ($_SERVER['REQUEST_METHOD'] == "POST"))
{
$_SESSION['getal'] = 11;
$_SESSION['naam'] = $_POST['naam'];
}
?>
<form method="post" action="bla2.php">
<table width="100%" border="0">
<tr>
<td width="77%"><input name="naam" type="text" /></td>
</tr>
<tr>
<td><input type="submit" id="verzenden" name="verzenden" value="verzenden" /></td>
</tr>
</table>
</form>
</body>
</html>
ob_start();
session_start();
if(isset($_POST['verzenden']) && ($_SERVER['REQUEST_METHOD'] == "POST"))
{
$_SESSION['getal'] = 11;
$_SESSION['naam'] = $_POST['naam'];
}
?>
<form method="post" action="bla2.php">
<table width="100%" border="0">
<tr>
<td width="77%"><input name="naam" type="text" /></td>
</tr>
<tr>
<td><input type="submit" id="verzenden" name="verzenden" value="verzenden" /></td>
</tr>
</table>
</form>
</body>
</html>
Toevoeging op 19/12/2013 19:22:22:
Roel H op 19/12/2013 19:02:47:
$_SESSION['getal'] doet het wel, session naam niet.
Wie kan me helpen?
Wie kan me helpen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
ob_start();
session_start();
if(isset($_POST['verzenden']) && ($_SERVER['REQUEST_METHOD'] == "POST"))
{
$_SESSION['getal'] = 11;
$_SESSION['naam'] = $_POST['naam'];
}
?>
<form method="post" action="bla2.php">
<table width="100%" border="0">
<tr>
<td width="77%"><input name="naam" type="text" /></td>
</tr>
<tr>
<td><input type="submit" id="verzenden" name="verzenden" value="verzenden" /></td>
</tr>
</table>
</form>
</body>
</html>
ob_start();
session_start();
if(isset($_POST['verzenden']) && ($_SERVER['REQUEST_METHOD'] == "POST"))
{
$_SESSION['getal'] = 11;
$_SESSION['naam'] = $_POST['naam'];
}
?>
<form method="post" action="bla2.php">
<table width="100%" border="0">
<tr>
<td width="77%"><input name="naam" type="text" /></td>
</tr>
<tr>
<td><input type="submit" id="verzenden" name="verzenden" value="verzenden" /></td>
</tr>
</table>
</form>
</body>
</html>
Nu heb ik wel wat gevonden, $_SESSION[''] = $_POST[''] op bla2.php zetten.
Echter deze is weg wanneer je de pagina opnieuw aanroept, hij onthoudt niks.
Wie o wie ken me helpen? :)
Toevoeging op 19/12/2013 21:23:17:
Oke,
De sessie mag pas op de volgende pagina gemaakt worden, zo ver ben ik nu, top!
De sessie neemt die ook mee naar de volgende pagina's, ook dat werkt.
Echter, het is een inschrijf formulier, dus wanneer iemand terug wilt, iets verkeerd ingevuld bijvoorbeeld, krijg ik dit: Notice: Undefined index: naam in F:\***\inschrijven\jan\bla2.php on line 4
Hij komt weer op de site waar de sessie aangemaakt is, dat is wsslijk de reden. Hoe dit op te lossen?
Wat je hiervoor zou kunnen doen is kijken of de variabele wel bestaat alvorens deze op het scherm te gooien.
Thanks, maar je zet er neer $var. Deze moet ik zelf veranderen in iets. is bijvoorbeeld $_POST['naam'] dan genoeg? Want allemaal erin zetten is overbodig. Wat is het handigst? Zeker gezien ik meerdere pagina's heb...
Toevoeging op 20/12/2013 14:39:28:
Ik ben een stap verder, dacht ik... :)
Ik weet dat ik de session op de volgende pagina moet opslaan, om verder te kunnen, zover snap ik het.
Echter ik wil controleren of alle velden ingevuld zijn van pagina 1, zo niet, dan eerst die invullen, alvorens je naar pagina 2 gaat. Moet die ook via pagina 2 dan? Want bij action"" komt pagina2.php te staan, maar dan gebruikt hij niks van pagina1 meer. Lastig dit eerlijk gezegd. Weet niet goed hoe ik dit moet oplossen.