Page 1 of 1

session and form arrays

Posted: Fri Aug 26, 2005 3:26 pm
by mushi
Hi,

I just learned PHP and really need some help. I have a form for entering information about persons, but don't know in advance how many persons the users are going to entered. I used form arrays to populate the values for each person and now I need to use session variable to validate the input. My question is how do you incorporate session variable with form array. Below is my code. Thanks in advance for your help!

Form 1: entering persons' info

Code: Select all

<?php

session_start();
error_reporting(E_ALL);
 //show errors if any
function fieldError($fieldName, $errors)
{
	if (isset($errors[$fieldName]))
	 echo "<font color=\"red\">".$errors[$fieldName]."</font><br>";
}


$number = $_GET['number'];
echo "number: $number<br>";

$name = array();
$gender = array();

echo "<form method = 'POST' action = 'friday3.php'>";
if ($number >=1)
	
for ($i=0; $i<$number; $i++)
{
	echo "<input type = 'hidden' name = 'number' value = '$number'>";
	<?echo fieldError('fname[$i]', $errors); 
	echo "name please:<br>";
	?>
	<input type = 'text' name = 'fname[]'><br>
	
	gender:<br>
	<input type = 'text' name = 'fgender[]'><br><br>
<?
}
echo "<input type='submit' name='submit' value='submit'>";
echo "</form>";
?>

Form 2 : session variable to check for error message

Code: Select all

<?php

$number = $_POST["number"];
echo "number: $number<br>";

//initialize a session
session_start();

//Register an error array
if (!session_is_registered("errors"))
session_register("errors");

//clear errors found previously
$errors = array();

for ($i=0; $i<$number; $i++)
{
	$name[$i] = $_POST['fname'][$i];
	echo "name: $name[$i]<br>";
	$_SESSION['name'] = $name[$i];

	$gender[$i] = $_POST['fgender'][$i];
	echo "gender: $fgender[$i]<br><br>";

	//check error
	if (empty($fname[$i]))
		$errors['fname'][$i] = 'required field';
	if (count($errors))
	{
		header("Location:friday2.php?number=$number");
		exit;
	}
}

?>