如何向php电子邮件脚本添加自定义字段
我正在尝试制作一个简单的php表单邮件。如何向php电子邮件脚本添加自定义字段,php,formmail,Php,Formmail,我正在尝试制作一个简单的php表单邮件。 我所追求的是 具有外观的电子邮件 Name: joe blogs Email: joe@blogs.co.uk Message: anything. Answer 1: Red Answer 2: green Answer 3: Blue 在下面的示例中,我已删除我的电子邮件地址。。。 问题是我填写了这些字段并点击了提交按钮,我收到了一条消息,说消息已发送,但从未收到过电子邮件。 在我添加$questX字段之前,一切正常,然后它停止工作。但我看不出$n
我所追求的是 具有外观的电子邮件
Name: joe blogs
Email: joe@blogs.co.uk
Message: anything.
Answer 1: Red
Answer 2: green
Answer 3: Blue
在下面的示例中,我已删除我的电子邮件地址。。。
问题是我填写了这些字段并点击了提交按钮,我收到了一条消息,说消息已发送,但从未收到过电子邮件。
在我添加$questX字段之前,一切正常,然后它停止工作。但我看不出$name文件有什么不同。所以我很困惑
<?php
if (isset($_REQUEST['email']))
//if "email" is filled out, send email
{
//send email
$email = $_REQUEST['email'] ;
$name = $_REQUEST['name'] ;
$quest = $_REQUEST['quest'] ;
$questb = $_REQUEST['questb'] ;
$questc = $_REQUEST['questc'] ;
$subject = "Competition Entry" ;
$message = $_REQUEST['message'] ;
mail("MYEMAIL@HOME.com", $subject, "Name:" . $name, "From:" . $email, "Answer 1:" .
$quest, "Answer 2:" . $questb, "Answer 3:" . $questc, $message );
echo "Thank you for using our mail form";
}
else
//if "email" is not filled out, display the form
{
echo "<form method='post' action='win-a-deck2.php'>
<label for='name'>Name:</label><input name='name' type='text' placeholder='Enter your fullname'><br>
<label for='email'>Email:</label><input name='email' type='text'><br>
<label for='message'>Message:</label><br>
<input name='message' type='text'><br>
<label for='quest'>Question 1:</label><input name='quest' type='text' placeholder='Answer to Question 1'><br>
<label for='questb'>Question 2:</label><input name='questb' type='text' placeholder='Answer to Question 2'><br>
<label for='questc'>Question 3:</label><input name='questc' type='text' placeholder='Answer to Question 3'><br>
<input type='submit'>
</form>";
}
?>
简单的php电子邮件表单:
<form action="process.php" method="post">
<ul style="list-style-type: none;">
<li>Name: <input type="text" name="name" size="30" maxlength="40"></li>
<li> </li>
<li>Email: <input type="text" name="email" size="30" maxlength="40"></li>
<li> </li>
<li><input type="submit" name="submit" value="Send"></li>
</ul>
</form>
- 姓名:
- 电邮:
process.php页面的代码如下所示:-
Thanks, <?php
@extract($_POST);
$sub="Form feedback";
$name = stripslashes($name);
$email = stripslashes($email);
mail('admin@your-domain.com',$sub,"$name $email","From: $name <admin@your-domain.com>");
echo stripslashes($name);
?> , we will drop you a line shortly.
谢谢,邮件功能:
bool mail (
1. string $to ,
2. string $subject ,
3. string $message
4. [, string $additional_headers
5. [, string $additional_parameters ]] )
您是这样使用它的:
mail(
1. "MYEMAIL@HOME.com",
2. $subject,
3. "Name:" . $name,
4. "From:" . $email,
5. "Answer 1:" .
$quest, "Answer 2:" . $questb, "Answer 3:" . $questc
6. , $message );
当然,您向函数传递的参数不正确,这就是它不起作用的原因。试试这个:
mail(
"MYEMAIL@HOME.com",
$subject,
"Name:" . $name . "Answer 1:" . $quest, "Answer 2:" . $questb
. "Answer 3:" . $quest . $message,
"From:" . $email );
首先,您应该编辑表单,使问题名称为数组。这样,您就可以使用$_POST['questions']作为数组,并在其上使用foreach循环,而不是将每个问题输入到它自己的变量中
第二,打开错误报告,看看你得到了什么错误
第三,mail()中的参数太多
您有$to,$subject,然后还有一堆字符串,它们都应该在一个$message字符串中 您有$questc,$message。你需要它是$questc$按原样给邮件函数4个参数,只需3个,加上第四个参数,就可以设置邮件标题