-1

アドレスにメールを送信することになっているこのコードがあります。問題は、ヘッダーでたとえば「Bob Marley」のような名前を取得することになっているのですが、名前が 1 単語より大きい場合は「(不明な送信者)」と表示されます。名前が 1 語だけの場合は機能します。$_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);                                      
    }
  ?>
4

2 に答える 2

2

「宛先」アドレスはRFC 2822に準拠する必要があります。おそらく、送信元アドレスも準拠しています。

From: Birthday Reminder <birthday@example.com>

PHP メールの例を参照してください。

PHP のドキュメントにも\n有効であると記載されており、問題がある場合に推奨されます。\r\nしたがって、これが問題である可能性は低いと思いますが、それを試しても害はありません。

于 2012-08-16T11:21:43.563 に答える
0

あなたが注意することは非常に重要だと思うので、これを答えとして置きます。

mail()ユーザー定義Fromヘッダーをそのまま使用すると、脆弱性が発生します。こちらの質問を参照してください: PHP でのメール インジェクションの適切な防止

ただし、実際の問題を解決するには:

  • \r\n も使用してみてください(@Sudhirが言ったように)(\r\nは一部のメールクライアントにより準拠していることがわかります)
  • @Sohneeが言うように、あまりにも電子メールを入れてください
于 2012-08-16T11:24:27.027 に答える