Reputation: 2060
I have a form that will email the info to the email entered in the email field, but I want the user to be able to type in multipple emails in the one field and for the info to go to all of them. Can anyone help edit my code to allow this....
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<title>Contact Form</title>
<meta name="author" content="" />
<meta name="copyright" content="" />
<meta name="website" content="http://web-kreation.com" />
<!-- the cascading style sheet-->
<link href="stylecontact.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="contentForm">
<!-- The contact form starts from here-->
<?php
$error = ''; // error message
$name = ''; // sender's name
$email = ''; // sender's email address
$subject = ''; // subject
$message = ''; // the message itself
$spamcheck = ''; // Spam check
if(isset($_POST['send']))
{
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$spamcheck = $_POST['spamcheck'];
if(trim($name) == '')
{
$error = '<div class="errormsg">Please enter your name!</div>';
}
else if(trim($email) == '')
{
$error = '<div class="errormsg">Please enter your email address!</div>';
}
else if(!isEmail($email))
{
$error = '<div class="errormsg">You have enter an invalid e-mail address. Please, try again!</div>';
}
if(trim($subject) == '')
{
$error = '<div class="errormsg">Please enter a subject!</div>';
}
else if(trim($message) == '')
{
$error = '<div class="errormsg">Please enter your message!</div>';
}
else if(trim($spamcheck) == '')
{
$error = '<div class="errormsg">Please enter the number for Spam Check!</div>';
}
else if(trim($spamcheck) != '5')
{
$error = '<div class="errormsg">Spam Check: The number you entered is not correct! 2 + 3 = ???</div>';
}
if($error == '')
{
if(get_magic_quotes_gpc())
{
$message = stripslashes($message);
}
// the email will be sent here
// make sure to change this to be your e-mail
$to = "[email protected]";
// the email subject
// '[Contact Form] :' will appear automatically in the subject.
// You can change it as you want
$subject = '[Contact Form] : ' . $subject;
// the mail message ( add any additional information if you want )
$msg = "From : $name \r\ne-Mail : $email \r\nSubject : $subject \r\n\n" . "Message : \r\n$message";
mail($to, $subject, $msg, "From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n");
?>
<!-- Message sent! (change the text below as you wish)-->
<div style="text-align:center;">
<h1>Thank You</h1>
<p>Thanks, <b><?=$name;?></b>. Your input is important to us.</p>
</div>
<!--End Message Sent-->
<?php
}
}
if(!isset($_POST['send']) || $error != '')
{
?>
<center><h1>Contact Us</h1></center>
<!--Error Message-->
<?=$error;?>
<form method="post" name="contFrm" id="contFrm" action="">
<label><span class="required">*</span> Name:</label>
<input name="name" type="text" class="box" id="name" size="30" value="<?=$name;?>" />
<label><span class="required">*</span> Email: </label>
<input name="email" type="text" class="box" id="email" size="30" value="<?=$email;?>" />
<label><span class="required">*</span> Subject: </label>
<input name="subject" type="text" class="box" id="subject" size="30" value="<?=$subject;?>" />
<label><span class="required">*</span> Message: </label>
<textarea name="message" cols="35" rows="3" id="message"><?=$message;?></textarea>
<br>
<label><span class="required">*</span> Spam: <b>2 + 3=</b></label>
<input name="spamcheck" type="text" class="box" id="spamcheck" size="4" value="<?=$spamcheck;?>" /><br /><br />
<!-- Submit Button-->
<center><input name="send" type="submit" class="button" id="send" value="" /></center>
</form>
<!-- E-mail verification. Do not edit -->
<?php
}
function isEmail($email)
{
return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i"
,$email));
}
?>
<!-- END CONTACT FORM -->
</div> <!-- /contentForm -->
</body>
</html>
Upvotes: 0
Views: 368
Reputation: 7019
If it is multiple recipients you are looking for, you can provide them to the mail()
function using delimited $to
parameter as described here: http://www.php.net/manual/en/function.mail.php#108340
Here's the text from the link to prevent rot:
Marc Parillo 18-Apr-2012 01:27 If you follow the suggested format for the $to field, you can list multiple addresses in a comma-delimited string with spaces. The spaces could be an issue if you're experiencing a similar problem. I was unable to send an e-mail to multiple addresses using that format. It started working for me when I removed all of the spaces in the $to string.
Example:
<?php
$to = '[email protected],[email protected],[email protected]'; // no spaces
mail($to, 'the subject', 'the message');
?>
Upvotes: 2