如何在不离开实际页面的情况下使用PHP邮件功能&x27;他是从哪里打来的
我正在为我正在建设的网站使用html注册表单。表单接受名字、姓氏、电子邮件地址、生日(月、日、年)和性别。它调用一个php文件来处理结果,并通过电子邮件发送给我,如下所示:如何在不离开实际页面的情况下使用PHP邮件功能&x27;他是从哪里打来的,php,html,email,forms,dynamic,Php,Html,Email,Forms,Dynamic,我正在为我正在建设的网站使用html注册表单。表单接受名字、姓氏、电子邮件地址、生日(月、日、年)和性别。它调用一个php文件来处理结果,并通过电子邮件发送给我,如下所示: <form method="post" action="sendMail.php" > 名字:* 姓氏:* 电邮地址:* 生日: 月 一月 二月 前进 四月 也许 六月 七月 八月 九月 十月 十一月 十二月 白天 年 功能更改日期(一){ var e=document.getElementById
<form method="post" action="sendMail.php" >
名字:*
姓氏:*
电邮地址:*
生日: 月 一月 二月 前进 四月 也许 六月 七月 八月 九月 十月 十一月 十二月 白天 年 功能更改日期(一){ var e=document.getElementById('day'); 而(e.长度>0) e、 移除(e.长度-1); var j=-1; 如果(i==“na”) k=0; else如果(i==2) k=28; else如果(i==4 | | i==6 | | i==9 | | i==11) k=30; 其他的 k=31; while(j++1909){ var s=document.createElement('option'); var e=document.getElementById('年'); s、 text=y; s、 值=y; 试一试{ e、 添加(s,null);} 捕获(ex){ e、 添加(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>";
}
?>
使用ajax发送邮件而不离开页面。使用ajax发送邮件而不离开页面。您基本上有两种选择:
- 只需更改
标题(“位置:…”)中的url;
即可返回到原始页面
- 或者在后台使用Ajax提交表单。有很多基于JQuery的有用插件
提交表单后向用户提供一些反馈绝对是个好主意。因此,感谢页面可能是最方便用户的解决方案,甚至是技术上最简单的解决方案
希望这有帮助!您基本上有两种选择:
- 只需更改
标题(“位置:…”)中的url;
即可返回到原始页面
- 或者在后台使用Ajax提交表单。有很多基于JQuery的有用插件
提交表单后向用户提供一些反馈绝对是个好主意。因此,感谢页面可能是最方便用户的解决方案,甚至是技术上最简单的解决方案
希望这有帮助!您可以定义一个空白操作,表单将提交到它承载的相同URL,如下所示:
<form action="" method="POST">
您可以定义一个空白操作,表单将提交到承载它的相同URL,如下所示:
<form action="" method="POST">
根据表单页面的编码方式,您可以将问题中列出的确切PHP放在表单页面的顶部,并将其包装在“如果”语句中,以确定表单是否正在提交。例如:
if (isset($_REQUEST['EmailAddress'])) { /** your code here **/}
然后,您需要按照前面的回答提交表格
<form action="" method="POST">
通过这种方式,您可以使用相同的if语句来显示反馈或某种感谢。更进一步地说,这种方法允许您在提交的数据未通过验证过程的情况下轻松提供错误。根据表单页面的编码方式,您可以将问题a中列出的确切PHP放入t打开表单页面的顶部,并将其包装在“如果”语句中,以确定表单是否正在提交。例如:
if (isset($_REQUEST['EmailAddress'])) { /** your code here **/}
然后,您需要按照前面的回答提交表格
<form action="" method="POST">
通过这种方式,您可以使用相同的if语句来显示反馈或某种感谢。更进一步地说,这种方法允许您在提交的数据未通过验证过程时轻松提供错误。注意:我非常清楚,我没有添加必要的保护,以防php电子邮件注入或even错误检查以确保在将值存储在变量$message中并通过电子邮件发送之前存在这些值。我将在最后一步中添加错误检查。为什么您需要标题?如果您只是在文件顶部调用mail
,它不会正常加载页面的其余部分吗?您是否尝试重定向以保护post刷新,但您想为可变页数执行此操作?@sdleihsirhc您是对的,我实际上不需要标题,最后将其取出。我最初将其留在了中,因为我在某个地方读到php mail()将返回一个错误,但不返回。@sdleihsirch不,我没有试图通过重定向来保护帖子不被刷新。我最初试图调用php邮件(以单独的方式)文件,并保留在包含注册表单的页面上。我认为最好的方法是通过页眉重定向回该页面,但找到了更合适的方法通过ajax使访问者保留在该页面上。因为表单位于多个页面上(7)使用此代码效果更好:注意:我非常清楚,我没有添加必要的php电子邮件注入保护,甚至没有添加错误检查,以确保值在存储在变量$message和email中之前存在。我将添加错误检查作为最后一步。为什么需要标头?如果您只是在文件顶部调用mail
,它不会正常加载页面的其余部分吗?您是否试图重定向,以防止文章刷新,但您希望对可变编号执行此操作