Я использую html форму регистрации для веб-сайта, который я создаю.Форма принимает имя, фамилию, адрес электронной почты, дату рождения (месяц, день, год) и пол.Он вызывает php-файл для обработки результатов и отправляет их мне по электронной почте следующим образом:
<form method="post" action="sendMail.php" >
php-файл выглядит так:
<?php
$firstName = $_REQUEST['FirstName'] ;
$lastName = $_REQUEST['LastName'] ;
$email = $_REQUEST['EmailAddress'] ;
$birthdate = $_REQUEST['month'] ;
$sex = $_REQUEST['sex'] ;
$message .= "First Name: \t";
$message = $firstName;
$message .= "\n";
$message .= "Last Name: \t";
$message .= $lastName;
$message .= "\n";
$message .= "Email: \t";
$message .= $email;
$message .= "\n";
$message .= "Birthdate: \t";
$message .= $birthdate;
$message .= "\n";
$message .= "Sex: \t";
$message .= $sex;
mail( "ty@ollielifestyle.com", "Sign-Up Form Results", $message, "From: $email" );
/*?> header( "Location: http://www.example.com/thankyou.html" );
<?php */
?>
Скрипт отлично работает для обработки и отправки электронной почтырезультаты, но я не знаю, как заставить функцию 'php mail ()' вернуться на ту же самую страницу вызова.Я знаю, что обычно людям нравится показывать страницу с благодарностями, но я не хочу, чтобы посетители просто переходили на страницу с благодарностями.Есть ли способ изменить функцию php mail (), чтобы она перенаправляла на ту же самую страницу, которая вызывала ее, или вызывала ее, не покидая страницу в первую очередь?Спасибо за любые подсказки заранее!
Обновление Я включил php на той же странице с формой регистрации.Он не возвращает никаких ошибок, но, похоже, я не получаю никаких писем, отправленных на учетную запись Gmail, которую я для него настроил.Я не знал, будет ли работать лучше, чтобы поместить форму в html-файл, как обычно (вне функции php) или внутри оператора else, поэтому я попробовал оба способа, не давая ни электронной почты.Была ли логическая ошибка в приведенном ниже коде?
Версия 1:
$message .= "First Name: \t";
$message = $firstName;
$message .= "\n";
$message .= "Last Name: \t";
$message .= $lastName;
$message .= "\n";
$message .= "Email: \t";
$message .= $email;
$message .= "\n";
$message .= "Birthdate: \t";
$message .= $birthdate;
$message .= "\n";
$message .= "Sex: \t";
$message .= $sex;
mail( "ymaxwell86@gmail.com", "Sign-Up Form Results", $message, "From: $email" );
echo "Thank you for using our mail form";
}
?>
Имя: *Фамилия:*Адрес электронной почты:*День рождения: месяц январь февраль март апрель май июнь июль август сентябрь октябрь ноябрь декабрь день год функция changeDate (i) {var e = document.getElementById ('day');while (e.length> 0) e.remove (e.length-1);var j = -1;if (i == "na") k = 0;иначе, если (i == 2) k = 28;иначе если (i == 4 || i == 6 || i == 9 || i == 11) k = 30;иначе к = 31;while (j ++ 1909) {var s = document.createElement ('option');var e = document.getElementById ('year');s.text = у;s.value = у;try {e.add (s, null);} catch (ex) {e.add (s);}}
Пол: Мужской Женский* обязательные поля
Версия 2:
<?php
if (isset($_REQUEST['email']))
//if "email" is filled out, send email
{
//send email
$firstName = $_REQUEST['FirstName'] ;
$lastName = $_REQUEST['LastName'] ;
$email = $_REQUEST['EmailAddress'] ;
$birthdate = $_REQUEST['month'] ;
$sex = $_REQUEST['sex'] ;
$message .= "First Name: \t";
$message = $firstName;
$message .= "\n";
$message .= "Last Name: \t";
$message .= $lastName;
$message .= "\n";
$message .= "Email: \t";
$message .= $email;
$message .= "\n";
$message .= "Birthdate: \t";
$message .= $birthdate;
$message .= "\n";
$message .= "Sex: \t";
$message .= $sex;
mail( "ymaxwell86@gmail.com", "Sign-Up Form Results", $message, "From: $email" );
echo "Thank you for using our mail form";
}
else
//if "email" is not filled out, display the form
{
echo "<form action='' method='post'>
<p>First Name:*
<input name='FirstName' type='text' id='FirstName' size='25' /> <br />
Last Name:*
<input name='LastName' type='text' id='LastName' size='25'/><br />
<br />
Email Address:*
<input name='EmailAddress' type='text' id='EmailAddress' size='25' onblur='valid_email=validateEmail(email_field,mandatory,messages);' />
<br />
<br />
Birthday:
<select name='month' onChange='changeDate(this.options[selectedIndex].value);'>
<option value='na'>Month</option>
<option value='1'>January</option>
<option value='2'>February</option>
<option value='3'>March</option>
<option value='4'>April</option>
<option value='5'>May</option>
<option value='6'>June</option>
<option value='7'>July</option>
<option value='8'>August</option>
<option value='9'>September</option>
<option value='10'>October</option>
<option value='11'>November</option>
<option value='12'>December</option>
</select>
<select name='day' id='day'>
<option value='na'>Day</option>
</select>
<select name='year' id='year'>
<option value='na'>Year</option>
</select>
<script language='JavaScript' type='text/javascript'>
function changeDate(i){
var e = document.getElementById('day');
while(e.length>0)
e.remove(e.length-1);
var j=-1;
if(i=='na')
k=0;
else if(i==2)
k=28;
else if(i==4||i==6||i==9||i==11)
k=30;
else
k=31;
while(j++<k){
var s=document.createElement('option');
var e=document.getElementById('day');
if(j==0){
s.text='Day';
s.value='na';
try{
e.add(s,null);}
catch(ex){
e.add(s);}}
else{
s.text=j;
s.value=j;
try{
e.add(s,null);}
catch(ex){
e.add(s);}}}}
y = 2010;
while (y-->1909){
var s = document.createElement('option');
var e = document.getElementById('year');
s.text=y;
s.value=y;
try{
e.add(s,null);}
catch(ex){
e.add(s);}}
</script>
<br />
</p>
<p>Gender:
<input type='radio' name='sex' value='male' /> Male
<input type='radio' name='sex' value='female' /> Female
<br />
<div id='mailListNote'>
*required fields
</div>
<br />
<br />
<br />
<input type='submit' name='submit' value='Submit' onclick='valid_email =validateEmail(email_field,mandatory,messages); '/>
<INPUT TYPE=RESET onClick='return confirm('Are you sure you want to reset the form?')'>
</p>
</form>";
}
?>