RE: [PHP] preg question
| From: | Jake McHenry | Date: | Thu, 13 Nov 2003 20:17:14 +0000 |
| Subject: | RE: [PHP] preg question | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-169559@lists.php.net to get a copy of this message | ||
What else would I need to check for? I'm tired.. Running on 2 pots of
coffee.. All I can think of is the @ and at least one . After the @,
then at least 2 characters after the last .
I haven't had much experience with regular expresssions, all of the
stuff I've done has been for my intranet, and I didn't really need to
validate.. Now I'm on a project where it's public........
Thanks for the help
Thanks,
Jake McHenry
Nittany Travel MIS Coordinator
http://www.nittanytravel.com
> -----Original Message-----
> From: John Nichel [mailto:jnichel@by-tor.com]
> Sent: Thursday, November 13, 2003 3:09 PM
> To: Jake McHenry
> Cc: php-general@lists.php.net
> Subject: Re: [PHP] preg question
>
>
> Jake McHenry wrote:
>
> >>-----Original Message-----
> >>From: Jake McHenry [mailto:linux@nittanytravel.com]
> >>Sent: Thursday, November 13, 2003 2:50 PM
> >>To: php-general@lists.php.net
> >>Subject: [PHP] preg question
> >>
> >>
> >>Hi all,
> >>
> >>I am trying to do a simple validation of an email address
> >>being submitted. I have the @ sign being validated, but I
> >>can't get the period to work.. Can someone help me out?
> >>
> >>Here's my code..
> >>
> >> if ($_POST['Travel_Request_Email_Address'] != "")
> >> {
> >> if (preg_match_all("/(@)/",
> >>$_POST['Travel_Request_Email_Address'], $match) != 1)
> >> {
> >> $errorcount++;
> >> $error = $error . " " .
> >>$errorcount .") <font color=\"red\">Email Address</font>
> >>field does not contain @<br> \n";
> >> }
> >> else if (preg_match_all("/(.)/",
> >>$_POST['Travel_Request_Email_Address'], $match) < 1)
> >> {
> >> $errorcount++;
> >> $error = $error . " " .
> >>$errorcount .") <font color=\"red\">Email Address</font>
> >>field does not contain .<br> \n";
> >> }
> >> else
> >> {
> >> $_SESSION['Travel_Request_Email_Address'] =
> >>$_POST['Travel_Request_Email_Address'];
> >> }
> >> }
> >> else
> >> {
> >> $errorcount++;
> >> $error = $error . " " .
> >>$errorcount .") <font color=\"red\">Email Address</font>
> >>field is empty<br>\n";
> >> }
> >>
> >>Thanks,
> >>
> >>Jake McHenry
> >>Nittany Travel MIS Coordinator
> >>http://www.nittanytravel.com
> >>
> >>--
> >>PHP General Mailing List (http://www.php.net/)
> >>To unsubscribe, visit: http://www.php.net/unsub.php
> >>
> >>
> >
> >
> >
> > I think I got it, I was just messing with the code, and
> added a slash
> > before the ., and it seems to work. Is this the correct way
> to handle
> > this?
>
> Yes, you have to escape the period. If you're just checking
> to see if
> there's an at symbol and a period, you don't really need
> preg_match_all
>
> if ( ! preg_match ( "/@/", $email ) ) {
> // No @ symbol
> }
> if ( ! preg_match ( "/\./", $email ) ) {
> // No period
> }
>
> --
> By-Tor.com
> It's all about the Rush
> http://www.by-tor.com
>