name is supposed to only allow letters/number/comma and period...
subject allows mostly all characters besides <> and a few others...
so is this all correct?
function checkContact(&$_POST, &$errors) {
// Check the contact form and return errors
$errors = new Object;
$msg = "";
// Checks valid name
if (empty($_POST["name"])) {
$errors->name = true;
$msg .= "<li>Enter your name!</li>";
} elseif ($_POST["name"] == "Name") {
$errors->name = true;
$msg .= "<li>That is not your real name!</li>";
} elseif (!preg_match("/^[a-zA-Z0-9,\.]+$/", $_POST["name"])) {
$errors->name = true;
$msg .= "<li>No tricky hacking, thanks!</li>"; }
// Checks valid email
if (empty($_POST["email"])) {
$errors->email = true;
$msg .= "<li>Enter your email!</li>";
} elseif ($_POST["email"] == "Email") {
$errors->email = true;
$msg .= "<li>That is not your real email!</li>";
} elseif (!validEmail($_POST["email"])) {
$errors->email = true;
$msg .= "<li>How can I reply with an invalid email?</li>"; }
// Check Subject
if (!empty($_POST["subject"])) {
if (!preg_match("/^[a-zA-Z0-9\!@#$%&()\-_\=\+\[\];:\'\",\.\?]+$/", $_POST["subject"])) {
$errors->subject = true;
$msg .= "<li>No hacking my subject!</li>"; }
}
// Check Website
if (!empty($_POST["website"])) {
if ($_POST["website"] == "Website") {
$errors->website = true;
$msg .= "<li>Either enter a website or leave it blank!</li>";
} elseif (!eregi("^((http|https|ftp)://)?([[:alnum:]-])+(\.)([[:alnum:]]){2,4}([[:alnum:]/+=%&_.~?-]*)$", stripslashes(trim($_POST["website"])))) {
$errors->website = true;
$msg .= "<li>Enter a valid website for me to view!</li>"; }
}
// Checks valid message
if (empty($_POST["message"])) {
$errors->message = true;
$msg .= "<li>How can we talk if you dont write anything?</li>";
} elseif ($_POST["message"] == "Message") {
$errors->message = true;
$msg .= "<li>Please be more descriptive!</li>";
} elseif (preg_match("/^\<\>$/", $_POST["message"])) {
$errors->message = true;
$msg .= "<li>No html allowed!</li>"; }
return $msg;
}
