Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.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 联系人表单返回代码格式问题_Php_Forms - Fatal编程技术网

Php 联系人表单返回代码格式问题

Php 联系人表单返回代码格式问题,php,forms,Php,Forms,当我试图自定义使用PHP表单发送的内容的布局时,我对PHP的语法感到很困难。我试图在电子邮件中的不同行上显示每个输入。。。下面是我的PHP代码: <?php // Section 1. if( $_POST['name_here_goes'] == '' ){ // Section 2. if ( !empty($_POST['firstName']) && !empty($_POST['lastName']) && !empty(

当我试图自定义使用PHP表单发送的内容的布局时,我对PHP的语法感到很困难。我试图在电子邮件中的不同行上显示每个输入。。。下面是我的PHP代码:

    <?php
// Section 1.
if( $_POST['name_here_goes'] == '' ){

    // Section 2.
    if ( !empty($_POST['firstName']) && !empty($_POST['lastName']) && !empty($_POST['emailAddress']) ) {

        $to         = '####@############.com';
        $subject     = 'NEW Contact Form';
        $message     = $_POST['firstName'] "\n\n" $_POST['lastName'];
        $headers     = 'From: ' . $_POST['emailAddress'] . ' ' . "\r\n" .
                      'Reply-To: ' . $_POST['emailAddress'] . '' . "\r\n" .
                      'X-Mailer: PHP/' . phpversion();

        // Section 3.
        if ( mail($to, $subject, $message, $headers) ) {
            echo 'Email sent. Congrats!';
        }
    }else{
        echo 'Please fill all the info.';
    }

}else{

     // Section 4.
     echo 'Spam detected!';

}
您可以看到这一行:

$message     = $_POST['firstName'] "\n\n" $_POST['lastName'];
它在POST数组之间缺少连接,如果将错误报告设置为“捕获并显示”,则会引发以下问题:

分析错误:语法错误,在第x行的/path/to/file.php中出现意外的“\n\n”(T_CONSTANT_ENCAPSED_STRING)

将其更改为:

$message     = $_POST['firstName'] . "\n\n" . $_POST['lastName'];
                                   ^        ^ added
然而,您将需要处理一些头文件,并且不应该像这样直接传入POST数组,您可能会受到XSS注入的影响

参考资料:

添加到文件的顶部,这将有助于查找错误

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code
手册中的示例:

header('Location: http://www.example.com/');
exit;
确保您没有在页眉之前输出。如果您确实收到通知,请咨询:

您还可以参考以下内容了解更多重定向方法:


构建有效邮件是最基本的形式,一旦超出了简单的用例,就非常复杂。我强烈建议使用预先存在的库,例如PHPMailer或SwiftMailer。两者都是很棒的、经过良好测试的、高度可靠的库。可能还有其他的,但这只是我个人使用的两个。这是一个非常简单的形式。。我不确定我是否需要这样做?@Fred ii-抱歉,我用当前代码更新了…我在@Nickok下面发布了我的解决方案。。。所以我们在哪里?你没有带着我的答案跑掉,是吗?Hahasory对延迟响应表示抱歉。。成功了!但你如何让它在提交后直接转到另一个页面呢?@Nick别担心。在“编辑”下重新加载我的答案。如果它解决了你的问题,考虑接受答案。下面是如何返回此处并对勾号/复选标记执行相同操作,直到其变为绿色。这会通知社区,找到了解决方案。否则,其他人可能会认为问题仍然悬而未决,并可能希望发布(更多)答案。
    if ( mail($to, $subject, $message, $headers) ) {
      header('Location: http://www.example.com/');
      exit;
    }
header('Location: http://www.example.com/');
exit;