Sure.
Here it is.
There are three scripts.
session_1.php: the original form script.
session_1a.php: a revised script with a conditional else.
session_2.php: the receiving script for the session array variable.
Running script 1a and 2 works fine.
However the original script 1 and 2 gives me a error when returning to the
contents page the first time - it then fills the contents starting with the
number 2 on subsequent page loads.
as in:
1.
2. Hal 2000
3. Sonic Screwdriver
Try it and see and let me know.
Thank you.
TR
.............................
// this is the original script
// script session_1.php
<?php
session_start();
?>
<html>
<head>
<title>Storing an array with a session</title>
</head>
<body>
<h1>Product Choice Page</h1>
<?php
if (isset($_POST[form_products])) {
if (!empty($_SESSION[products])) {
$products = array_unique(
array_merge(unserialize($_SESSION[products]),
$_POST[form_products]));
}
$_SESSION[products] = serialize($products);
print "<p>Your products have been registered!</p>";
}
?>
<form method="POST" action="<?php $_SERVER[PHP_SELF] ?>">
<P>Select some products:<br>
<select name="form_products[]" multiple size=3>
<option>Sonic Screwdriver</option>
<option>Hal 2000</option>
<option>Tardis</option>
<option>ORAC</option>
<option>Transporter bracelet</option>
</select>
<br><br>
<input type="submit" value="choose">
</form>
<br><br>
<a href="session_2.php">content page</a>
</body>
</html>
...............
//this is a revised script with a conditional else
//script session_1a.php
<?php
session_start();
?>
<html>
<head>
<title>Storing an array with a session</title>
</head>
<body>
<h1>Product Choice Page</h1>
<?php
if (isset($_POST['form_products'])) {
if (!empty($_SESSION['products'])) {
$products = array_unique(
array_merge(unserialize($_SESSION['products']),
$_POST['form_products']));
}else{ //this conditional has been added
$products = $_POST['form_products'] ;
}
$_SESSION['products'] = serialize($products);
print "<p>Your products have been registered!</p>";
}
?>
<form method="POST" action="<?php $_SERVER[PHP_SELF] ?>">
<P>Select some products:<br>
<select name="form_products[]" multiple size=3>
<option>Sonic Screwdriver</option>
<option>Hal 2000</option>
<option>Tardis</option>
<option>ORAC</option>
<option>Transporter bracelet</option>
</select>
<br><br>
<input type="submit" value="choose">
</form>
<br><br>
<a href="session_2.php">content page</a>
</body>
</html>
..............
//this is session_2.php
<?php
session_start();
?>
<html>
<head>
<title>Listing 16.5 Accessing session variables</title>
</head>
<body>
<h1> Content Page</h1>
<?php
if (isset($_SESSION[products])) {
print "<b>Your cart:</b><ol>\n";
foreach (unserialize($_SESSION[products]) as $p) {
print "<li>$p";
}
print "</ol>";
}
?>
<a href="session_1.php">Back to product choice page</a>
</body>
</html>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php