Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.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_Html_Contact Form - Fatal编程技术网

提交时的PHP联系人表单验证

提交时的PHP联系人表单验证,php,html,contact-form,Php,Html,Contact Form,所以交易是这样的:验证过程在用户点击submit之后开始。但是,由于某些原因,该代码不起作用 PHP: HTML: 编辑: 对不起,我忘了添加我文章的最后一部分,我想PHP脚本应该在我点击提交按钮的那一刻就可以运行。但是if$_POST['submitted']{}不会被我的提交按钮触发。我想知道为什么会这样?对我来说,似乎您没有将变量分配给POST元素 如果您在第一段代码中将$email替换为$\u POST['message\u email'],将$name替换为$\u POST['mess

所以交易是这样的:验证过程在用户点击submit之后开始。但是,由于某些原因,该代码不起作用

PHP:

HTML:

编辑:
对不起,我忘了添加我文章的最后一部分,我想PHP脚本应该在我点击提交按钮的那一刻就可以运行。但是if$_POST['submitted']{}不会被我的提交按钮触发。我想知道为什么会这样?

对我来说,似乎您没有将变量分配给POST元素

如果您在第一段代码中将$email替换为$\u POST['message\u email'],将$name替换为$\u POST['message\u name'],将$message替换为$\u POST['message\u text'],您可能会发现运气更好


无论如何,我可以在这个代码段中看到很多未使用的变量,包括$headers、$to、$subject,以及我的_contact_form_generate_*下使用的每个报告变量。确保这些也已设置。

“代码不起作用”-没有真正的帮助。你查过日志了吗?是否启用了错误报告?是否显示错误?代码不工作-这意味着什么?提供清晰的问题陈述。什么,确切地说是不起作用?当你期望它通过时,顶部的if语句是否会失败?您是否在收件箱中未看到预期的电子邮件?缩小问题范围。对不起,我忘了添加我文章的最后一部分,我想PHP脚本应该在我点击提交按钮的那一刻就可以工作。但是if$_POST['submitted']{}不会被我的提交按钮触发。我想知道为什么?谢谢你的回复!然而,这只是我的PHP代码的一个片段。我只是想知道为什么我的提交按钮没有触发if$_POST['submitted']{}不用担心。在我看来,这就像WordPress——代码片段在什么文件下?_permalink生成的permalink是什么?可能是您的代码片段位于不同的页面上,因此一个代码片段没有被另一个加载。如果是数组$\u POST和计数$\u POST>0打印$\r$\u POST,是否可以删除;在第一段代码之前或之后的某个地方,以便您可以看到$\u POST的内容?您可能需要右键单击->查看页面源代码来查看它!您是否也尝试过添加值class='Submit!'给你的?很可能它是发布的,只是我们正在检查$u POST['submitted']与类似于if isset$\u POST['submitted']的东西。啊,这就是解决方案!谢谢,我监督了那一小部分。
if ($_POST['submitted']) {
    if(!filter_var($email, FILTER_VALIDATE_EMAIL))
        my_contact_form_generate_response("error", $email_invalid);
    else //email is valid
    {
        //validate presence of name and message
        if (empty($name) || empty($message)) {
            my_contact_form_generate_response("error", $missing_content);
        } else //ready to go!
        {
            $sent = wp_mail($to, $subject, strip_tags($message), $headers);
            if ($sent) my_contact_form_generate_response("success", $message_sent); //message sent!
            else my_contact_form_generate_response("error", $message_unsent); //message wasn't sent
        }
    }
} else {
    $response = "";
}
<form action="<?php the_permalink(); ?>" class="contact" method="post">
                        <input type="text" placeholder="Your Name" name="message_name" value="<?php echo esc_attr($_POST['message_name']); ?>">
                        <input type="text" placeholder="Your Email" name="message_email" value="<?php echo esc_attr($_POST['message_email']); ?>">
                        <input type="text" placeholder="Your Company" name="message_company" value="<?php echo esc_attr($_POST['message_company']); ?>">
                        <textarea name="message_text" rows="10" placeholder="Your Message"><?php echo esc_textarea($_POST['message_text']); ?></textarea>
                        <button type="submit" class="contact-button" name="submitted">Submit</button>
                    </form>
                    <?php echo $response ?>