我是php新手,所以我需要一些帮助,在其他任何地方都没有运气
我试图让提交电子邮件的人作为发件人,例如当电子邮件通过它显示为(未知发件人)或它通过服务器作为"测试服务器"。我希望他们的电子邮件地址,而不是当未打开的收件箱。这样客户端就可以点击回复,而不必选择电子邮件地址。
设置抄送和密件抄送字段也有问题。
如有任何意见,不胜感激。
html
<form method="post" id="myform" name="myform">
<table width="250" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Name:</td>
<td> <input type="text" name="name" id="name"></td>
</tr>
<tr>
<td>Number:</td>
<td><input type="text" name="number" id="number"></td>
</tr>
<tr>
<td><label for="email">Email:</label></td>
<td><input type="text" name="email" id="email"></td>
</tr>
<tr>
<td><label for="subject">Subject:</label></td>
<td><input type="text" name="subject" id="subject" required></td>
</tr>
<tr>
<td><label for="comment">Comment:</label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><textarea name="comment" id="comment" cols="45" rows="5"></textarea></td>
</tr>
<tr>
<td colspan="2">Please answer the question below</td>
</tr>
<tr>
<td> <?
if (isset($_POST['qcChosenOne']))
{
$captchaEquations = array(
0=>array('1 + 6',7),
1=>array('8 - 3',5),
2=>array('15 + 2',17),
3=>array('8 + 2',10),
4=>array('10 - 5',5),
);
$qcChosen = $_POST['qcChosenOne'];
$qcGivenAnswer = (int) trim($_POST['qcQuestion']);
$qcAnswer = (int) $captchaEquations[$qcChosen][1];
unset($_POST['qcChosenOne'],$_POST['qcQuestion']);
if ($qcGivenAnswer == $qcAnswer)
include('contact.php');
else
print "<meta http-equiv="refresh" content="0;URL=error.php">";
}
?>
10 - 5 =  </td>
<td><input name="qcQuestion" type="text" class="form_fields" id="Captcha" />
<input type="hidden" name="qcChosenOne" value="4" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" id="submit" value="Submit"></td>
</tr>
</table>
</form>
<script language="JavaScript" type="text/javascript">
var frmvalidator = new Validator("myform");
frmvalidator.addValidation("Name","req","Please enter your name");
frmvalidator.addValidation("Tel","req","Please enter your telephone number");
frmvalidator.addValidation("Email","req","Please enter email");
frmvalidator.addValidation("Email","email","Please provide a valid email address");
frmvalidator.addValidation("City","req","Please enter your City");
frmvalidator.addValidation("Make","req","Please enter the Make");
frmvalidator.addValidation("Model","req","Please enter your Model");
frmvalidator.addValidation("Enquiry","req","Please enter your enquiry/comments");
frmvalidator.addValidation("Captcha","req","Please enter the answer to the simple calculation. This is to ensure you are not a SPAM crawler.");
</script>
这里是php
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$EmailFrom = Trim(stripslashes($_POST['email']));
$EmailTo = "dalevanm@gmail.com";
$Subject = "Name, Website Enquiry Form";
$name = Trim(stripslashes($_POST['name']));
$number = Trim(stripslashes($_POST['number']));
$email = Trim(stripslashes($_POST['email']));
$subject = Trim(stripslashes($_POST['subject']));
$comment = Trim(stripslashes($_POST['comment']));
// validation
$validationOK=true;
if (!$validationOK) {
print "<meta http-equiv="refresh" content="0;URL=error.htm">";
exit;
}
// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $name;
$Body .= "n";
$Body .= "Number: ";
$Body .= $number;
$Body .= "n";
$Body .= "Email: ";
$Body .= $email;
$Body .= "n";
$Body .= "Subject: ";
$Body .= $subject;
$Body .= "n";
$Body .= "Comment: ";
$Body .= $comment;
$Body .= "n";
$headers .= "rn".'Cc: dalevanm@gmail.com' . "rn";
// send email
$success = mail($EmailTo, $Subject, $Body, $EmailFrom, $header);
// redirect to success page
if ($success){
print "<meta http-equiv="refresh" content="0;URL=_confirmation_enquiry.php">";
}
else{
print "<meta http-equiv="refresh" content="0;URL=error.htm">";
}
}
?>
发送邮件时:
$success = mail($EmailTo, $Subject, $Body, $EmailFrom, $header);
您从未定义一个名为$header
的变量。你几乎定义了这里的$headers
:
$headers .= "rn".'Cc: dalevanm@gmail.com' . "rn";
但我怀疑.=
操作符也可能失败,因为变量不存在。直接赋值:
$headers = "rn".'Cc: dalevanm@gmail.com' . "rn";
并使用该变量:
$success = mail($EmailTo, $Subject, $Body, $EmailFrom, $headers);