Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在mail()函数中,';发件人:';仅显示第一个世界_Php_Email - Fatal编程技术网

Php 在mail()函数中,';发件人:';仅显示第一个世界

Php 在mail()函数中,';发件人:';仅显示第一个世界,php,email,Php,Email,我有这个密码,应该是发送邮件到某个地址。问题是:在标题中,我应该得到像“Bob Marley”这样的名称,但是如果名称大于一个单词,它会显示“(未知发件人)”。如果名称正好是一个单词,它就起作用了。如果我将$u POST['nume']值连接到$message,它就在那里。由于某些原因,在标题中,它不能正常工作 <form name="contact" method="post" class="clearfix" id="formular"> <input class="

我有这个密码,应该是发送邮件到某个地址。问题是:在标题中,我应该得到像“Bob Marley”这样的名称,但是如果名称大于一个单词,它会显示“(未知发件人)”。如果名称正好是一个单词,它就起作用了。如果我将$u POST['nume']值连接到$message,它就在那里。由于某些原因,在标题中,它不能正常工作

<form name="contact" method="post" class="clearfix" id="formular">
   <input class="inputC" type="text" placeholder="Full Name" id="numeCo" onClick="clearValue(this.id)" onBlur="testValue(this.id)" name="nume"/>

   <input class="inputC" type="text" placeholder="E-mail Address" id="adresaCo" onClick="clearValue(this.id)" onBlur="testValue(this.id)" name="adrMail"/>

   <input class="inputC" type="text" placeholder="What services do you need?" id="serviciiCo" onClick="clearValue(this.id)" onBlur="testValue(this.id)" name="servicii"/>

   <div class="sumarise">
   <textarea class="textAreaC" placeholder="Please summarize your project..." id="textArCo" onClick="clearValue(this.id)" onBlur="testValue(this.id)" name="descriere"></textarea>
   </div>
   <div class="sB clearfix">
   <input class="submitC" type="submit" value="Send Message" />
   </div>                              
   </form>
   <?php
   if(isset($_POST['nume'], $_POST['adrMail'], $_POST['descriere']))
    {
     /*echo "<script> return checkForm();</script>";*/
     $to = "radu.mircea.andrei@gmail.com";                                                                              
     $subject = $_POST['servicii'];
     $message = $_POST['descriere'];                                        
     $name = $_POST['nume'];
     $headers= "From: ".$name."\n".'Reply-To: '.$_POST['adrMail'];
     mail($to,$subject,$message,$headers);                                      
    }
  ?>

收件人地址需要符合以下要求-也许发件人地址也需要:

From: Birthday Reminder <birthday@example.com>
发件人:生日提醒


PHP文档还指出,
\n
应该是有效的,如果您在
\r\n
方面遇到问题,建议您使用它-因此我认为这不太可能是问题所在,尽管尝试这样做也没有害处。

我将把这作为答案,因为我认为您需要注意这一点非常重要

使用
mail()
函数时存在漏洞,就像使用用户定义的
From
标题一样。请看这里的问题:

但是,要解决您的实际问题:

  • 同时尝试使用\r\n(如@Sudhir所说)(我发现\r\n更符合某些邮件客户端)
  • 也像@Sohnee所说的那样发一封电子邮件

尝试使用\r\n而不仅仅是在标题中。尝试使用PHPMailer,它更易于使用和配置。此表单可能会受到黑客攻击vulnerabilities@MihaiIorga,更不用说swiftmailer.org了,我已经用了很多次了。有一个RFC是有原因的。如果你到处乱扔未定义的数据,为什么你希望它能工作?这是一个迟来的答复,但感谢你的链接。知道这一点确实很重要。我知道这是一个迟来的答复,但谢谢你的回答。