fatal error met session array
SCRIPTS:
select
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?
<select size="1" height="1" name="size" style=" background-color:#ff0000;">
<option value="-">Standard(for non cloth items)</option>
<option value="S">S</option>
<option value="M">M</option>
<option value="L">L</option>
<option value="XL">XL</option>
<option value="XXL">XXL</option>
</select>
?>
<select size="1" height="1" name="size" style=" background-color:#ff0000;">
<option value="-">Standard(for non cloth items)</option>
<option value="S">S</option>
<option value="M">M</option>
<option value="L">L</option>
<option value="XL">XL</option>
<option value="XXL">XXL</option>
</select>
?>
make session array
deze error krijg ik
Fatal error: [] operator not supported for strings in C:\www\fred\Show.php on line 6
Gewijzigd op 01/01/1970 01:00:00 door Jeroen
$_SESSION['size'] = $_POST['size'];
$_SESSION is zelf al een array..
jah ok maar wil zeg maar de producte van me webshop in maat aantal en product id in een array opslaaen en dit naar een session sturen
Ik snap ook niet wat er fout gaat, als ik onderstaand scriptje draai, heb ik helemaal geen problemen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$_SESSION['size'][] = $_POST['size'];
echo '<pre>'.print_r($_SESSION, true).'</pre>';
}
?>
<form action="#" method="post">
<select size="1" height="1" name="size" style=" background-color:#ff0000;">
<option value="-">Standard(for non cloth items)</option>
<option value="S">S</option>
<option value="M">M</option>
<option value="L">L</option>
<option value="XL">XL</option>
<option value="XXL">XXL</option>
</select>
<input type="submit">
</form>
ini_set('display_errors', 1);
error_reporting(E_ALL);
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$_SESSION['size'][] = $_POST['size'];
echo '<pre>'.print_r($_SESSION, true).'</pre>';
}
?>
<form action="#" method="post">
<select size="1" height="1" name="size" style=" background-color:#ff0000;">
<option value="-">Standard(for non cloth items)</option>
<option value="S">S</option>
<option value="M">M</option>
<option value="L">L</option>
<option value="XL">XL</option>
<option value="XXL">XXL</option>
</select>
<input type="submit">
</form>
dat productnummer moet je uiteraard wel vervangen
Daarna:
Code (php)
1
2
3
4
2
3
4
<?
$_SESSION['size'][] = 'waarde0oppositie0';
$_SESSION['size'][] = 'waarde1oppositie1';
?>
$_SESSION['size'][] = 'waarde0oppositie0';
$_SESSION['size'][] = 'waarde1oppositie1';
?>
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
@Terence: dat is niet echt slim omdat je dan in de problemen komt met je verdere verwerking. Het productnummer is immers iedere keer anders. Maar uit dit formulier rolt elke keer maar 1 combinatie die ik bijvoorbeeld in een sessievariabele met de naam 'product' zou opslaan. Deze variabele is natuurlijk een array:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
// Input uit formulier...
$_SESSION['product']['id'] = $_POST['id'];
$_SESSION['product']['size'] = $_POST['size'];
?>
// Input uit formulier...
$_SESSION['product']['id'] = $_POST['id'];
$_SESSION['product']['size'] = $_POST['size'];
?>
Of als je de $_POST array met een foreach uit wilt lezen:
Maar de foreach komt al snel weer om de hoek kijken als je een selectie wilt maken tussen gegevens die je wel en niet in een sessie wilt plaatsen...
Over deze notatie:
Ik krijg er geen error op, maar onthoud wel dat je op deze keer iedere keer een nieuw array-element aanmaakt. Als je dus de pagina ververst, ook.
Ik heb deze testcode:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
error_reporting (E_ALL);
session_start ();
$_SESSION['size'][] = 'test';
echo '<pre>';
print_r ($_SESSION);
echo '</pre>';
?>
error_reporting (E_ALL);
session_start ();
$_SESSION['size'][] = 'test';
echo '<pre>';
print_r ($_SESSION);
echo '</pre>';
?>
Na een paar keer F5 heb je dan deze output:
ok maar hij doet dit alleen maar als je op add to card klikt