Hej med jer,
Jeg har et problem med et script der tjekker mine form felter for fejl og skriver en fejlmeddelelse over det felt der er fejl ved. Problemmet er at den røde tekst hele tiden står der efterfølgende.
Det er selvfølgelig ikke noget en bruger som sådan vil opdage, men jeg som sidder med det hele tiden og tester det synes ikke det er hensigtsmæssigt at når først jeg har genereret fejlmeddelelsen, så står den der permanent.
Jeg har vedlagt min kode herunder:
Funktionen
<?php
function fieldError($fieldName, $errors)
{
if (isset($errors[$fieldName]))
echo "<font color=\"red\">" .
$errors[$fieldName] .
"</font><br>";
}
session_start();
$errors = $_SESSION['errors'];
?>
Formen:
<form action="thanks.php" method="GET">
<table border="0" class="style4">
<tr>
<td></td>
<td></td>
<td><i>Felter med * SKAL ydfyldes.</i></td>
</tr>
<tr>
<td width="85">Fornavn</td>
<td>*</td>
<td><?php echo fieldError("firstname", $errors); ?>
<input type="text" name="firstname" size="40" maxlength="25" /></td>
</tr>
<tr>
<td width="85">Efternavn</td>
<td>*</td>
<td><?php echo fieldError("lastname", $errors); ?>
<input type="text" name="lastname" size="40" maxlength="25" /></td>
</tr>
</table>
<br />
<table border="0" class="style4">
<tr>
<td width="85">Adresse linie 1</td>
<td>*</td>
<td><?php echo fieldError("adress1", $errors); ?>
<input type="text" name="adress1" size="40" maxlength="25" /></td>
</tr>
<tr>
<td width="85">Adresse linie 2</td>
<td></td>
<td><?php echo fieldError("adress2", $errors); ?>
<input type="text" name="adress2" size="40" maxlength="25" /></td>
</tr>
<tr>
<td width="85">Postnr.</td>
<td>*</td>
<td><?php echo fieldError("zipcode", $errors); ?>
<input type="text" name="zipcode" size="6" maxlength="4" /></td>
</tr>
<tr>
<td width="85">By</td>
<td>*</td>
<td><?php echo fieldError("city", $errors); ?>
<input type="text" name="city" size="40" maxlength="25" /></td>
</tr>
</table>
<br />
<table border="0" class="style4">
<tr>
<td width="85">Email</td>
<td>*</td>
<td><?php echo fieldError("email", $errors); ?>
<input type="text" name="email" size="40" maxlength="50" /></td>
</tr>
<tr>
<td width="85">Telefon</td>
<td></td>
<td><?php echo fieldError("phone", $errors); ?>
<input type="text" name="phone" size="16" maxlength="16"/></td>
</tr>
</table>
thanks.php:
$firstname = $_GET['firstname'];
$lastname = $_GET['lastname'];
$adress1 = $_GET['adress1'];
$zipcode = $_GET['zipcode'];
$city = $_GET['city'];
$email = $_GET['email'];
$errors = array();
if (empty($firstname))
$errors["firstname"] =
"Udfyld venligst dit fornavn korrekt.";
if (empty($lastname))
$errors["lastname"] =
"Udfyld venligst dit efternavn korrekt.";
if (empty($adress1))
$errors["adress1"] =
"Udfyld venligst din adresse korrekt.";
if (empty($zipcode))
$errors["zipcode"] =
"Udfyld venligst dit postnummer korrekt.";
if (empty($city))
$errors["city"] =
"Udfyld venligst din by korrekt.";
if (empty($email))
$errors["email"] =
"Udfyld venligst din email korrekt.";
if (count($errors) > 0 )
{
$_SESSION["errors"] = $errors;
header("Location: index.php");
exit;
}
else
{
$out.="
Velkommen";
}