这是关于您在编写PHP时可能遇到的警告、错误和注意事项的大量答案,但您却不知道如何修复它们。这也是一个社区Wiki,所以每个人都被邀请加入并维护这个列表。 像“已经发送的头”或“调用非对象的成员”这样的问题在Stack Overflow上经常出现。这些问题的根源总是一样的。因此,这些问题的答案通常会重复它们,然后向OP显示在特定情况下应该更改哪一行。这些答案不会给站点增加任何价值,因为它们只适用于OP的特定代码。具有相同错误的其他用户无法轻松地读取解决方案,因为他们过于本地化了。这是悲哀的,因为一旦你理解了根本原因,修复错误就变得微不足道了。因此,这个列表试图用一种通用的方式来解释解决方案。 如果您的问题被标记为此问题的副本,请在下面找到您的错误消息并将修复程序应用到您的代码中。答案通常包含进一步的链接来调查,以防仅从一般答案不能清楚地得出结论。 如果你想投稿,请添加你“最喜欢的”错误信息,警告或通知,每个答案一个,一个简短的描述(即使它只是在他们的手册页上突出显示术语),一个可能的解决方案或调试方法,以及一个有价值的现有问答的列表。另外,您可以随意改进任何现有的答案。 所以,湖泊: 问题来源StackOverflow 地址:/questions/59381448/passing-input-from-html-to-python-and-back-cgi
当您的脚本试图发送一个HTTP头文件到客户端,但在此之前已经有了输出,这将导致头文件已经发送到客户端。 这是一个E_WARNING,它不会停止脚本。 一个典型的例子是这样的模板文件:
<html>
<?php session_start(); ?>
<head><title>My Page</title>
</html>
...
函数的作用是:将会话cookie头信息发送到客户端。但是PHP在将元素写入输出流时已经发送了头文件。您必须将session_start()移到顶部。 您可以通过在代码触发警告之前遍历代码行并检查输出位置来解决这个问题。在发送代码之前移动任何头。 一个经常被忽略的输出是PHP结束后的新行?>。当?>是文件中的最后一个内容时,省略?>被认为是一种标准做法。同样,此警告的另一个常见原因是在打开<?php前面有一个空格、行或不可见的字符,这导致web服务器发送报头和空白/换行,因此当php开始解析时,将无法提交任何报头。 如果您的文件有多个<?php……在>代码块中,它们之间不应该有任何空格。(注意:如果代码是自动构建的,那么可能有多个块) 还要确保代码中没有任何字节顺序标记,例如当脚本编码为带有BOM的UTF-8时。 相关问题:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。