Php 联系人表单返回代码格式问题
当我试图自定义使用PHP表单发送的内容的布局时,我对PHP的语法感到很困难。我试图在电子邮件中的不同行上显示每个输入。。。下面是我的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
// 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;