Re: validating fields
| From: | Simon Garner | Date: | Fri, 02 Mar 2001 00:16:34 +0000 |
| Subject: | Re: validating fields | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-42250@lists.php.net to get a copy of this message | ||
From: "W.D." <suedeuno@yahoo.com>
> I dont know how to do this, but Ive tried several things with no success.
I
> need to validate several form fields and here is the script I'm working
> with...
>
> <?php if($HTTP_SERVER_VARS["REQUEST_METHOD"] == "POST")
> {
> (eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,3}$", $Email))?
> header("Location: http://www.site.com/thanks.php"):
> header("Location: http://www.site.com/error.php");
> }
> ;?>
>
> I need to check at least two more fields, possibly 3 but I keep getting
> errors when trying to loop through a bunch of if statements. The above
works
> fine but I need to check eregi() against more strings from fields which
then
> redirects as shown above. Anyone?
>
<?php
if (getenv("REQUEST_METHOD") == "POST")
{
if (
eregi("pattern1", $field1)
&& eregi("pattern2", $field2)
&& eregi("pattern3", $field3)
)
{
echo "thanks";
}
else
{
echo "error!";
}
}
?>
Or if you want better error reporting:
<?php
if (getenv("REQUEST_METHOD") == "POST")
{
$errors = array();
if (!eregi("pattern1", $field1))
{
$errors[] = "field1 is not right";
}
if (!eregi("pattern2", $field2))
{
$errors[] = "field2 is not right";
}
if (!eregi("pattern3", $field3))
{
$errors[] = "field3 is not right";
}
if (count($errors) > 0)
{
echo "Sorry, " . count($errors) . " errors occurred, please try
again.\n<ul>";
foreach ($errors as $err)
{
echo "<li>$err\n";
}
echo "</ul>";
}
}
?>