HTML/PHP联系表单提交跳转异常 新手PHP开发求助
联系表单跳转异常问题修复方案
已排查到的错误点
- PHP触发条件不成立:HTML提交按钮未设置
name="send"属性,导致PHP代码中if (isset($_POST['send']))判断永远为假,跳转逻辑不会执行 - 邮箱字段名不匹配:HTML中邮箱输入框的
name属性为email,但PHP中取值使用$_POST['mail'],字段不对应会导致邮件发送失败 - HTML语法错误:提交按钮为自闭合
<input>标签,末尾冗余了</button>闭合标签 - 跳转逻辑不严谨:header跳转后未终止代码执行,可能出现意外输出导致跳转失败
修复后的代码示例
HTML表单部分
<form class="contact-form" action="contactform.php" method="post"> <input type="text" name="name" placeholder="Full name"> <!-- 优化邮箱输入框type为email做基础校验 --> <input type="email" name="email" placeholder="Email address"> <input type="text" name="subject" placeholder="Subject"> <textarea name="message" placeholder="Insert message"></textarea> <!-- 补充name属性,删除冗余闭合标签 --> <input type="submit" name="send" value="Send"> </form>
contactform.php代码
<?php if (isset($_POST['send'])) { $name = $_POST['name']; $subject = $_POST['subject']; // 修正字段名对应HTML的name属性 $mailFrom = $_POST['email']; $message = $_POST['message']; $mailto = "digitalMEassistance@gmail.com"; $headers = "From: ".$mailFrom; $txt = "You've received an Email from ".$name.".\n\n".$message; mail($mailto, $subject, $txt, $headers); header("Location: index.php?emailsent"); // 新增exit终止后续代码执行,保证跳转正常 exit; } ?>
内容的提问来源于stack exchange,提问作者George Meadaows
相关产品推荐
相关产品推荐

