Jump to content

Help adding confirmation of email '@' symbol to php script


leet8845

Recommended Posts

Hi,

 

I need some code to validate an email address sent on my form.

 

Does anyone know if its possible to add anything to exsiting code below to do this.

 

I'm mainly bothered that the email has a '@' symbol, nothing more complex really.

 

Here's my code which works fine at the mo:

 

<?php 

// Getformdataandcreateemail 
$Email2="[email protected]"; 
$email=$_POST['Email']; 
$name=stripslashes($_POST['Name']); 
$subject=stripslashes($_POST['Subject']); 
$messagecont=stripslashes($_POST['Message']); 
$message= 
<<<EOD 
-------------------------------- 
Enquiry from your website 
-------------------------------- 

Name: $name 
Subject: $subject 
EmailAddress: $email 
Message: $messagecont 

-------------------------------- 
End of Message 
-------------------------------- 
EOD; 

//Sendemail 
@mail($Email2,$subject,$message, "From:$Email2"); 
header("Location:thankyou.html"); 


?> 

 

 

 

Many thanks for looking

$email = "[email protected]";
if (preg_match('/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $email))
{
echo "email valid";
}

 

 

 

Better one (RFC 2822 standard)

$email = "[email protected]";
if(preg_match('/\A(?:^[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$)\Z/i', $email ))
{
echo "email valid";
}

replace

$email=$_POST['Email']; 

 

with

 

$email = $_POST['Email'];
if(preg_match('/\A(?:^[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$)\Z/i', $email ))
{



echo "email valid";
}

Hi thanks for that but its still not working, have I made a mistake?

 

<?php

// Getformdataandcreateemail
$Email2="[email protected]";
$email = $_POST['Email'];
if(preg_match('/\A(?:^[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$)\Z/i', $email ))
{
echo "email valid";
}
$name=stripslashes($_POST['Name']);
$subject=stripslashes($_POST['Subject']);
$messagecont=stripslashes($_POST['Message']);
$message=
<<<EOD
--------------------------------
Enquiry from your website
--------------------------------

Name: $name
Subject: $subject
EmailAddress: $email
Message: $messagecont

--------------------------------
End of Message
--------------------------------
EOD;

//Sendemail
@mail($Email2,$subject,$message, "From:$Email2");
header("Location:thankyou.html");


?>

Try this.

 

<?php

// Getformdataandcreateemail
$FromEMail =  "[email protected]";
$ToEMail=$_POST['Email'];

if(!preg_match('/\A(?:^[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$)\Z/i', $ToEMail))
{
die ("$ToEMail in an invalid email");
}
$name=stripslashes($_POST['Name']);
$subject=stripslashes($_POST['Subject']);
$messagecont=stripslashes($_POST['Message']);
$message=
<<<EOD
--------------------------------
Enquiry from your website
--------------------------------

Name: $name
Subject: $subject
EmailAddress: $email
Message: $messagecont

--------------------------------
End of Message
--------------------------------
EOD;

//Sendemail
@mail($ToEMail,$subject,$message, "From:$FromEMail");
header("Location:thankyou.html");


?>

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.