我如何设置;从「;PHP联系人表单中的地址?

我如何设置;从「;PHP联系人表单中的地址?,php,email,forms,Php,Email,Forms,我创建的PHP联系人表单有问题。当我在表单中输入信息并单击“提交”时,信息将发送到电子邮件地址,但电子邮件中没有附加发件人地址 我如何创建一个seneders地址,这样当用户单击sumbit时,它将以他们的电子邮件地址作为发件人发送电子邮件 我的表格代码如下所示: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Em

我创建的PHP联系人表单有问题。当我在表单中输入信息并单击“提交”时,信息将发送到电子邮件地址,但电子邮件中没有附加发件人地址

我如何创建一个seneders地址,这样当用户单击sumbit时,它将以他们的电子邮件地址作为发件人发送电子邮件

我的表格代码如下所示:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Email Form </title>
</head>
<body>

<form method="post" action="sendeail.php">

<?php
$ipi = getenv("REMOTE_ADDR");
$httprefi = getenv ("HTTP_REFERER");
$httpagenti = getenv ("HTTP_USER_AGENT");
?>

<input type="hidden" name="ip" value="<?php echo $ipi ?>" />
<input type="hidden" name="httpref" value="<?php echo $httprefi ?>" />
<input type="hidden" name="httpagent" value="<?php echo $httpagenti ?>" />


---------------(Sending Scripit below)-----------------------------

Name: <br />
<input type="text" name="visitor" size="35" />
<br />
Address:<br />
<input type="text" name="visitoradd" size="35" />
<br />

City<br />
<input type="text" name="visitorcity" size="35" />
<br />

Postcode<br />
<input type="text" name="visitorpost" size="35" />
<br />

Email:<br />
<input type="text" name="visitormail" size="35" />
<br />

Telephone Number:<br />
<input type="text" name="visitortel" size="35" />
<br />
Bookkeeping / Payroll :<br />
<select name="bp" size="1">
<option value=" Bookkeeping">Bookkeeping </option>
<option value=" Payroll ">Payroll</option>
</select>
<br />
<br />
Number of transactions : <br />
<input type="text" name="transcations" size="35" />
<br />
Number of employees <br />
<input type="text" name="employees" size="35" />
<br />
<br />
Payroll weekly / monthly:<br />
<select name="pmw" size="1">
<option value=" Weekly">Weekly</option>
<option value=" Monthly">Monthly</option>
</select>
<br />
<br />
<input type="submit" value="Submit" />
<br />
</form>
</body>
</html>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sendemail Script</title>
</head>
<body>
<?php

$visitor = $_POST['visitor'];
$visitoradd = $_POST['visitoradd'];
$visitorcity= $_POST['visitorcity'];
$visitorpost= $_POST['visitorpost'];
$visitormail = $_POST['visitormail'];
$visitortel = $_POST['visitortel'];
$bp = $_POST['bp'];
$transcations = $_POST['transcations'];
$employees = $_POST['employees'];
$pmw = $_POST['pmw'];


if(!$visitormail == "" && (!strstr($visitormail,"@") || !strstr($visitormail,".")))
{
echo "<h2>Use Back - Enter valid e-mail</h2>\n";
$badinput = "<h2>Information was NOT submitted</h2>\n";
echo $badinput;
die ("Go back! ! ");
}

if(empty($visitor) || empty($visitormail)  || empty($visitorcity) || empty($visitorpost) || empty($visitoradd)   || empty($visitortel) || empty($bp) || empty($transcations)  || empty($employees) || empty($pmw) || empty($pmw)) 
{
echo "<h2>Use Back - fill in all fields</h2>\n";
die ("Use back! ! ");
}

$message = "
Name: $visitor\n
Address: $visitoradd\n
City: $visitorcity\n
Post Code: $visitorpost\n
Email: $visitormail\n
Phone Number: $visitortel\n
Bookkeeping/Payroll: $bp\n
Number of Transactions: $transcations\n
Number Of Employees: $employees\n
Payroll Weekly/Monthly: $pmw\n"
;

$subject = "Payment Details";

mail("sd07sb@leeds.ac.uk",$subject,$message,$visitormail);

?>

<p align="center">
<br />
Thank You : <?php echo $visitor ?> ( <?php echo $visitormail ?> )
<br />

<br />
<a href="contact3.php">Click here to Finish</a>
</p> 

</body>
</html>

电子邮件表格


谢谢你:()

我对PHP还很陌生,非常感谢您对我的帮助


提前感谢

邮件(“sd07sb@leeds.ac.uk“,$subject,$message,'From:'。$visitormail)

您可以在mail()调用中添加多个额外的头作为第四个参数(目前您只添加$visitoremail.headers需要用“\r\n”分隔)。以下是PHP.net/manual中有关如何添加额外头的摘录:

// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);
//附加头
$headers.=“收件人:Mary,Kelly”。“\r\n”;
$headers.=“发件人:生日提醒”。“\r\n”;
$headers.='Cc:birthdayarchive@example.com“。”\r\n”;
$headers.='密件抄送:birthdaycheck@example.com“。”\r\n”;
//邮寄
邮件($to、$subject、$message、$headers);
您可以在调用
mail()时添加“发件人:”标题以设置发件人地址

$headers = "From: ".$visitor."<".$visitormail.">\r\n";    
mail("sd07sb@leeds.ac.uk", $subject, $message, $headers);

有更多信息。

您应该这样做:

$sanitizedEmail = filter_var($visitormail, FILTER_SANITIZE_EMAIL);
mail('recipient@email.com', $subject, $message, 'From: ' . $sanitizedEmail);

$sanitizedEmail
开头的一行确保用户不能从您的表单发送垃圾邮件。

其他答案解释了如何添加from标题。如果您不仔细检查脚本输入,则可能存在一个重要的安全漏洞。您的表单可能会变成垃圾邮件机器,从而导致您受到各种各样的攻击伊夫

阅读电子邮件标题注入:


验证电子邮件地址是否为电子邮件地址,并清理所有输入。

查看PHPMailer

您可以使用PHPMailer执行几乎所有操作。单击此处可访问该网站并获取副本

PHPMailer为您完成所有逻辑


例如,$mailer->addAddress('sd07sb@leeds.ac.uk“);

阅读有关邮件功能的附加标题的文档
ini_set(sendmail_from, "your_from@address_here.com"); 
$sanitizedEmail = filter_var($visitormail, FILTER_SANITIZE_EMAIL);
mail('recipient@email.com', $subject, $message, 'From: ' . $sanitizedEmail);