I'm making a basic user registration for a mailing list form for a website i'm working on. I've made the form and implemented basic error checking functionality, however i want this to be amended. At the moment when an error occurs, through a user failing to complete a field, it is added to an array of errors called errorList, when this has any content these errrors are echoed bqack to the user. It would be preferable however if any errors on behalf of the user mirror back the form they have submitted with correct values retained and incorrect form fields highlighted by adding a red outline to the input boxes and the label for the input box to also be highlighed. When these inputs are checked, rather than just checking if they are completed i would like to perform checks related to the particular inputs, e.g. checking if the email address is of a valid construct, and checking if the postcode (UK equivalent to ZIP code) is valid and contains only letters and numbers.
I'm using css to style my site and i know that the best way to add color to the error input boxes would be by adding an error class, i just dont know how i would implement this.
I'm using a functions page for my site as a template for the design, this is called functions.php and is called at the top of the script, pagetop() and pagebottom() are the functions that display the top and bottom half of the page. db.php is used to call my database connection to my mysql database where the correct data will be inputted.
This is what i've got so far:
<?php
require 'functions.php';
include 'db.php';
$pagename = "SUBSCRIBE";
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$house_number = $_POST['house_number'];
$street = $_POST['street'];
$town = $_POST['town'];
$postcode = $_POST['postcode'];
$county = $_POST['county'];
$submit = $_POST['submit'];
pagetop($pagename);
if (!$submit)
{
echo '
If you are interested in further details please complete this form</a>
';
?>
<br><br>
<form method="post" action="<? echo $PHP_SELF; ?>">
<table width="75%" cellpadding="4">
<tr>
<td>Name:</td>
<td><input type="text" name="name" id="name"></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="email" id="email"></td>
</tr>
<tr>
<td>Telephone Number:</td>
<td><input type="text" name="phone" id="phone"></td>
</tr>
<tr>
<td>House Name/Number:</td>
<td><input type="text" name="house_number" id="house_number"></td>
</tr>
<tr>
<td>Street:</td>
<td><input type="text" name="street" id="street"></td>
</tr>
<tr>
<td>Town:</td>
<td><input type="text" name="town" id="town"></td>
</tr>
<tr>
<td>Postocde:</td>
<td><input type="text" name="postcode" id="postcode"></td>
</tr>
<tr>
<td>County:</td>
<td><input type="text" name="county" id="county"></td>
</tr>
<tr>
<td> </td>
<td><input type="Submit" name="submit" value="Add"></td>
</tr>
</table>
</form>
<?
}
else
{
// set up error list array
$errorList = array();
$count = 0;
// validate text input fields
if (!$name) {
$errorList[$count] = "Invalid entry: Name"; $count++;
}
if (!$email) {
$errorList[$count] = "Invalid entry: Email"; $count++;
}
if (!$phone)
{
$errorList[$count] = "Invalid entry: phone"; $count++;
}
if (!$house_number)
{
$errorList[$count] = "Invalid entry: House Number"; $count++;
}
if (!$street)
{
$errorList[$count] = "Invalid entry: Street"; $count++;
}
if (!$town)
{
$errorList[$count] = "Invalid entry: Town"; $count++;
}
if (!$postcode)
{
$errorList[$count] = "Invalid entry: postcode"; $count++;
}
if (!$county)
{
$errorList[$count] = "Invalid entry: county"; $count++;
}
// check for errors
// if none found...
if (sizeof($errorList) == 0)
{
// generate and execute query
$query = "INSERT INTO subscription(name, email, phone, house_number, street, town, postcode, county) VALUES('$name', '$email', '$phone', '$house_number', '$street', '$town', '$postcode', '$county' )";
$result = mysql_query($query) or die ("Error in query: $query. " . mysql_error());
// print result
echo "<font size=-1>Insert Successful. <a href=index.php>Go back to the main menu</a>.</font>";
}
else
{
// errors found
// print as list
echo "<font size=-1>The following errors were encountered: <br>";
echo "<ul>";
for ($x=0; $x<sizeof($errorList); $x++)
{
echo "<li>$errorList[$x]";
}
echo "</ul></font>";
echo '<a href="javascript:history.b
ack()">Ret
urn to subscription page</a>';
}
}
?>
<?
pagebottom()
?>
Thanks a lot.