我想在现有的网站上添加一个“发送消息”表单。我找到了这个教程:
PHP联系表单
我审查了教程中的代码,学习了它的工作原理,然后进行了编程。我将其运行起来,并在我的个人电脑上进行了所有测试,它完美地工作。
然后,我将其作为现有网站的一部分放到了服务器上。但是失败了。点击提交按钮会清空屏幕,表单消失不见。没有错误信息。什么都没有。
XAMPP和实际服务器都运行着PHP版本8.1.12。
它在这行PHP代码上失败了:header('Location: contact.php', true, 303);
我花了很多时间来调试这个问题,学习了更多关于PHP的知识,按照在Stack Overflow上找到的建议进行操作,并阅读了关于函数header()的PHP文档。我还参加了两个LinkedIn Learning的PHP课程。但我无法弄清楚问题出在哪里。
然后,我将问题简化为这段简单的代码,使其尽可能简单,只有一个包含提交按钮的表单。它和完整的表单有同样的问题。
这是我的测试代码:
Contact
这段简单的html/php代码和我的完整表单有同样的问题:点击提交按钮后,屏幕被清空,只剩下一个表单按钮。表单不起作用。
我故意去除了所有缩进,因为我了解到一个常见问题是看不见的空白字符会导致PHP函数header()失败。
这个程序(以及我的完整表单)每个都:
我已经尽力解决这个问题了。
是什么出了问题?可能出了什么问题?有什么我不理解的地方吗?
将
header()
和session_start()
调用移到HTML输出之前。参考:https://www.php.net/manual/en/function.header.php
参考:https://www.php.net/manual/en/function.session-start.php