簡體   English   中英

如何在PHP聯系表單中添加“發件人姓名”?

[英]How can I add a “sender name” in a PHP contact form?

考慮到我對PHP的經驗非常有限,我定制了一個我發現的聯系表單,它可以按我的意願運行。 唯一困擾我的是我找不到在其中包含“發件人姓名”的方法,這意味着當我收到電子郵件時,發件人字段為空,如下所示。

在此輸入圖像描述

我想將“Contato”設置為發件人姓名。 可能嗎?

任何有關如何實現這一目標的提示將不勝感激。

PHP:

<?php
if($_POST)
{
    //check if its an ajax request, exit if not
    if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
        die();
    } 

    $to_Email       = "giovanna.coppola@yahoo.com"; //Replace with recipient email address
    $subject        = 'Formul&#225;rio de Contato (Site)'; //Subject line for emails

    //check $_POST vars are set, exit if any missing
    if(!isset($_POST["userName"]) || !isset($_POST["userEmail"]) || !isset($_POST["userPhone"]) || !isset($_POST["userMessage"]))
    {
        die();
    }

    //Sanitize input data using PHP filter_var().
    $user_Name        = filter_var($_POST["userName"], FILTER_SANITIZE_STRING);
    $user_Email       = filter_var($_POST["userEmail"], FILTER_SANITIZE_EMAIL);
    $user_Phone       = filter_var($_POST["userPhone"], FILTER_SANITIZE_STRING);
    $user_Message     = filter_var($_POST["userMessage"], FILTER_SANITIZE_STRING);

    //additional php validation
    if(strlen($user_Name)<6) // If length is less than 6 it will throw an HTTP error.
    {
        header('HTTP/1.1 500 Nome muito curto ou campo vazio.');
        exit();
    }
    if(!filter_var($user_Email, FILTER_VALIDATE_EMAIL)) //email validation
    {
        header('HTTP/1.1 500 Insira um e-mail va&#769;lido.');
        exit();
    }
    if(!is_numeric($user_Phone)) //check entered data is numbers
    {
        header('HTTP/1.1 500 Esse campo so&#769; aceita n&#250;meros.');
        exit();
    }
    if(strlen($user_Message)<10) //check emtpy message
    {
        header('HTTP/1.1 500 Mensagem curta demais.');
        exit();
    }

    //proceed with PHP email.
    $headers = 'From: '.$user_Email.'' . "rn" .
    'Reply-To: '.$user_Email.'' . "rn" .
    'X-Mailer: PHP/' . phpversion();

    $message = 'Nome: '.$user_Name."\r\n".
           'E-mail: '.$user_Email."\r\n".
           'Telefone: '.$user_Phone."\r\n".
           'Mensagem: '.$user_Message;

$sentMail = mail($to_Email, $subject, $message, $headers);

    if(!$sentMail)
    {
        header('HTTP/1.1 500 N&#227;o foi poss&#237;vel enviar. Tente novamente.');
        exit();
    }else{
        echo 'Ol&#225;, '.$user_Name.'. Agradecemos o contato! ';
        echo 'Retornaremos o mais breve poss&#237;vel.';
    }
}
?>

更改

$headers = 'From: '.$user_Email.'' . "rn" .

$headers = 'From: '.$user_Name.' <'.$user_Email. '>'. "\r\n" .

請參閱mail()手冊中的示例#4 - http://www.php.net/manual/en/function.mail.php#example-3416

使用PHPmailer?

http://phpmailer.worxware.com/index.php?pg=examplebmail

$mail->SetFrom('name@yourdomain.com', 'Sender name here');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM