Php 在联系人表单中正确设置电子邮件

Php 在联系人表单中正确设置电子邮件,php,email,field,contact-form,sender,Php,Email,Field,Contact Form,Sender,考虑到我使用PHP的经验有限,我使用了一个联系人表单生成器,它几乎可以按照我的要求工作。表单及其所有变量都正常工作,但是在收到电子邮件时,它会将我自己的域添加为发件人电子邮件。我想让填写联系人表单电子邮件的人作为发件人,这样我就可以轻松回复邮件(而不是从邮件内部复制和粘贴电子邮件地址) 以下是代码的一部分: <?php $where_form_is="http://".$_SERVER['SERVER_NAME'].strrev(strstr(strrev($_SERVER['PHP_S

考虑到我使用PHP的经验有限,我使用了一个联系人表单生成器,它几乎可以按照我的要求工作。表单及其所有变量都正常工作,但是在收到电子邮件时,它会将我自己的域添加为发件人电子邮件。我想让填写联系人表单电子邮件的人作为发件人,这样我就可以轻松回复邮件(而不是从邮件内部复制和粘贴电子邮件地址)

以下是代码的一部分:

<?php

$where_form_is="http://".$_SERVER['SERVER_NAME'].strrev(strstr(strrev($_SERVER['PHP_SELF']),"/"));

session_start();
if( ($_SESSION['security_code']==$_POST['security_code']) && (!empty($_POST['security_code'])) ) { 
// Checkbox handling
$field_4_opts = $_POST['field_4'][0].",". $_POST['field_4'][1].",". $_POST['field_4'][2];

// Checkbox handling
$field_5_opts = $_POST['field_5'][0].",". $_POST['field_5'][1].",". $_POST['field_5'][2].",". $_POST['field_5'][3];

mail("mail@mail.com","phpFormGenerator - Form submission","Form data:

Your Name:: " . $_POST['field_1'] . " 
Country:: " . $_POST['field_2'] . " 
Your Email:: " . $_POST['field_3'] . " 
Your areas of interest:: $field_4_opts
What type of articles are you interested in writing?:: $field_5_opts
Any other types of articles that interest you?:: " . $_POST['field_6'] . " 
Approximately how often will you contribute?: " . $_POST['field_7'] . " 
Your blog/website:: " . $_POST['field_8'] . " 
What would make you a good contributor?: " . $_POST['field_9'] . " 


 powered by phpFormGenerator.
");

include("confirm.html");
}
else {
echo "Invalid Captcha String.";
}

?>
<pre> 

$headers =  'From: abc@example.com' . "\r\n" .
            'Reply-To: def@example.com' . "\r\n" .
            'X-Mailer: PHP/' . phpversion();

$message = "Form data:
    Your Name:: " . $_POST['field_1'] . " 
    Country:: " . $_POST['field_2'] . " 
    Your Email:: " . $_POST['field_3'] . " 
    Your areas of interest:: $field_4_opts
    What type of articles are you interested in writing?:: $field_5_opts
    Any other types of articles that interest you?:: " . $_POST['field_6'] . " 
    Approximately how often will you contribute?: " . $_POST['field_7'] . " 
    Your blog/website:: " . $_POST['field_8'] . " 
    What would make you a good contributor?: " . $_POST['field_9'] . " 


     powered by phpFormGenerator.
    ";
 $subject = "phpFormGenerator - Form submission"
 $to = "mail@mail.com"

  mail($to ,$subject,$message, $headers);

install.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>testing2 - created by phpFormGenerator</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"><link href="style.css" rel="stylesheet" type="text/css">
    <!-- calendar stuff -->
          <link rel="stylesheet" type="text/css" href="calendar/calendar-blue2.css" />
          <script type="text/javascript" src="calendar/calendar.js"></script>
          <script type="text/javascript" src="calendar/calendar-en.js"></script>
          <script type="text/javascript" src="calendar/calendar-setup.js"></script>
    <!-- END calendar stuff -->

    <!-- expand/collapse function -->
    <SCRIPT type=text/javascript>
    <!--
    function collapseElem(obj)
    {
        var el = document.getElementById(obj);
        el.style.display = 'none';
    }


    function expandElem(obj)
    {
        var el = document.getElementById(obj);
        el.style.display = '';
    }


    //-->
    </SCRIPT>
    <!-- expand/collapse function -->


    <!-- expand/collapse function -->
        <SCRIPT type=text/javascript>
        <!--

        // collapse all elements, except the first one
        function collapseAll()
        {
            var numFormPages = 1;

            for(i=2; i <= numFormPages; i++)
            {
                currPageId = ('mainForm_' + i);
                collapseElem(currPageId);
            }
        }


        //-->
        </SCRIPT>
    <!-- expand/collapse function -->


     <!-- validate -->
    <SCRIPT type=text/javascript>
    <!--
        function validateField(fieldId, fieldBoxId, fieldType, required)
        {
            fieldBox = document.getElementById(fieldBoxId);
            fieldObj = document.getElementById(fieldId);

            if(fieldType == 'text'  ||  fieldType == 'textarea'  ||  fieldType == 'password'  ||  fieldType == 'file'  ||  fieldType == 'phone'  || fieldType == 'website')
            {   
                if(required == 1 && fieldObj.value == '')
                {
                    fieldObj.setAttribute("class","mainFormError");
                    fieldObj.setAttribute("className","mainFormError");
                    fieldObj.focus();
                    return false;                   
                }

            }


            else if(fieldType == 'menu'  || fieldType == 'country'  || fieldType == 'state')
            {   
                if(required == 1 && fieldObj.selectedIndex == 0)
                {               
                    fieldObj.setAttribute("class","mainFormError");
                    fieldObj.setAttribute("className","mainFormError");
                    fieldObj.focus();
                    return false;                   
                }

            }


            else if(fieldType == 'email')
            {   
                if((required == 1 && fieldObj.value=='')  ||  (fieldObj.value!=''  && !validate_email(fieldObj.value)))
                {               
                    fieldObj.setAttribute("class","mainFormError");
                    fieldObj.setAttribute("className","mainFormError");
                    fieldObj.focus();
                    return false;                   
                }

            }



        }

        function validate_email(emailStr)
        {       
            apos=emailStr.indexOf("@");
            dotpos=emailStr.lastIndexOf(".");

            if (apos<1||dotpos-apos<2) 
            {
                return false;
            }
            else
            {
                return true;
            }
        }


        function validateDate(fieldId, fieldBoxId, fieldType, required,  minDateStr, maxDateStr)
        {
            retValue = true;

            fieldBox = document.getElementById(fieldBoxId);
            fieldObj = document.getElementById(fieldId);    
            dateStr = fieldObj.value;


            if(required == 0  && dateStr == '')
            {
                return true;
            }


            if(dateStr.charAt(2) != '/'  || dateStr.charAt(5) != '/' || dateStr.length != 10)
            {
                retValue = false;
            }   

            else    // format's okay; check max, min
            {
                currDays = parseInt(dateStr.substr(0,2),10) + parseInt(dateStr.substr(3,2),10)*30  + parseInt(dateStr.substr(6,4),10)*365;
                //alert(currDays);

                if(maxDateStr != '')
                {
                    maxDays = parseInt(maxDateStr.substr(0,2),10) + parseInt(maxDateStr.substr(3,2),10)*30  + parseInt(maxDateStr.substr(6,4),10)*365;
                    //alert(maxDays);
                    if(currDays > maxDays)
                        retValue = false;
                }

                if(minDateStr != '')
                {
                    minDays = parseInt(minDateStr.substr(0,2),10) + parseInt(minDateStr.substr(3,2),10)*30  + parseInt(minDateStr.substr(6,4),10)*365;
                    //alert(minDays);
                    if(currDays < minDays)
                        retValue = false;
                }
            }

            if(retValue == false)
            {
                fieldObj.setAttribute("class","mainFormError");
                fieldObj.setAttribute("className","mainFormError");
                fieldObj.focus();
                return false;
            }
        }
    //-->
    </SCRIPT>
    <!-- end validate -->




</head>

<body onLoad="collapseAll()">

<div id="mainForm">




    <div id="formHeader">
            <h2 class="formInfo">testing2</h2>
            <p class="formInfo"></p>
    </div>


    <BR/><div id="footer"><p class="footer"><a class=footer href=http://phpformgen.sourceforge.net>Generated by phpFormGenerator</a></p></div>

</body>
</html>

测试2-由phpFormGenerator创建
测试2



您能找到我需要更改的内容吗?

在PHP中调用函数之前添加相关的标题

    $headers = 'From: user@example.com' . "\r\n" .
    'Reply-To: user@example.com' . "\r\n";

mail($to, $subject, $message, $headers);
在您的情况下:

<?php

$where_form_is="http://".$_SERVER['SERVER_NAME'].strrev(strstr(strrev($_SERVER['PHP_SELF']),"/"));

session_start();
if( ($_SESSION['security_code']==$_POST['security_code']) && (!empty($_POST['security_code'])) ) { 
// Checkbox handling
$field_4_opts = $_POST['field_4'][0].",". $_POST['field_4'][1].",". $_POST['field_4'][2];

// Checkbox handling
$field_5_opts = $_POST['field_5'][0].",". $_POST['field_5'][1].",". $_POST['field_5'][2].",". $_POST['field_5'][3];

$message = "Form data:
        Your Name:: " . $_POST['field_1'] . " 
        Country:: " . $_POST['field_2'] . " 
        Your Email:: " . $_POST['field_3'] . " 
        Your areas of interest:: $field_4_opts
        What type of articles are you interested in writing?:: $field_5_opts
        Any other types of articles that interest you?:: " . $_POST['field_6'] . " 
        Approximately how often will you contribute?: " . $_POST['field_7'] . " 
        Your blog/website:: " . $_POST['field_8'] . " 
        What would make you a good contributor?: " . $_POST['field_9'] . " 


         powered by phpFormGenerator.
        ";

     $headers = 'From: '.$_POST['field_3']. "\r\n" .
            'Reply-To: '.$_POST['field_3'] . "\r\n" .
            'X-Mailer: PHP/' . phpversion();

      mail("mail@mail.com","phpFormGenerator - Form submission", $message, $headers);

include("confirm.html");
}
else {
echo "Invalid Captcha String.";
}

?>

你应该去学习PHP,自动生成的表单代码太糟糕了

<?php

$where_form_is="http://".$_SERVER['SERVER_NAME'].strrev(strstr(strrev($_SERVER['PHP_SELF']),"/"));

session_start();
if( ($_SESSION['security_code']==$_POST['security_code']) && (!empty($_POST['security_code'])) ) { 
// Checkbox handling
$field_4_opts = $_POST['field_4'][0].",". $_POST['field_4'][1].",". $_POST['field_4'][2];

// Checkbox handling
$field_5_opts = $_POST['field_5'][0].",". $_POST['field_5'][1].",". $_POST['field_5'][2].",". $_POST['field_5'][3];

mail("mail@mail.com","phpFormGenerator - Form submission","Form data:

Your Name:: " . $_POST['field_1'] . " 
Country:: " . $_POST['field_2'] . " 
Your Email:: " . $_POST['field_3'] . " 
Your areas of interest:: $field_4_opts
What type of articles are you interested in writing?:: $field_5_opts
Any other types of articles that interest you?:: " . $_POST['field_6'] . " 
Approximately how often will you contribute?: " . $_POST['field_7'] . " 
Your blog/website:: " . $_POST['field_8'] . " 
What would make you a good contributor?: " . $_POST['field_9'] . " 


 powered by phpFormGenerator.
", 'From: ' . $_POST['field_3']);

include("confirm.html");
}
else {
echo "Invalid Captcha String.";
}

?>


我在mail()函数中添加了一个新参数,用于设置from头<代码>,“发件人:”$_POST['field_3']是我添加的内容。看起来字段_3应该包含用户的电子邮件。试试看它是否管用。

只要让你的代码看起来漂亮一点,并添加一些标题即可。。这会帮你的忙的 有了header,你可以做任何你可以用你的电子邮件客户端做的事情,比如GMAIL。。(附加文件或任何其他内容)


$headers='来自:abc@example.com' . “\r\n”。
答复:def@example.com' . “\r\n”。
“X-Mailer:PHP/”。phpversion();
$message=“表单数据:
你的名字::”$_POST['field_1']。" 
国家::”$_POST['field_2']。" 
您的电子邮件::”$_POST['field_3']。" 
您感兴趣的领域::$field\u 4\u选项
你对写什么类型的文章感兴趣?:$field\u 5\u opts
您感兴趣的任何其他类型的文章?:”$_POST['field_6']。" 
您大概多久捐款一次?:”$_POST['field_7']。" 
您的博客/网站::”$_POST['field_8']。" 
什么能让你成为一名优秀的贡献者?:”$_POST['field_9']。" 
由phpFormGenerator提供动力。
";
$subject=“phpFormGenerator-表格提交”
$to=”mail@mail.com"
邮件($to、$subject、$message、$headers);

这不起作用,它返回了namefield@myowndomain.comI复制并粘贴您的示例,但没有在顶部添加您的示例,因此该示例不起作用。然而,我所做的只是用现有的processor.php代码替换这段代码。你能用该文件的完整代码更新你的答案吗?我可以试试吗?我复制并粘贴了你的示例,但它不起作用。然而,我所做的只是用现有的processor.php代码替换这段代码。你能用该文件的完整代码更新你的答案吗?我可以试试吗?更新了我的答案。您应该真正学习PHP,并按照@Rogue Coder的建议更改代码。我正在学习,但感谢我只练习了一周。。。所以我必须从某个地方开始。无论如何,我添加了您更新的修复程序,但电子邮件返回了“user@example.com“作为发件人,而不是添加到表单中的电子邮件,我遗漏了什么?请再次检查答案。我改了:谢谢你,但还是不行。它像这样返回:$field_1@myowndomain.com