【问题标题】:Line breaks causing php bugs?换行导致php错误?
【发布时间】:2009-12-08 19:35:50
【问题描述】:

我有一个 php 表单处理脚本,它没有正确保存在我们的实时或测试服务器上,但在我的本地测试环境中工作。我对文件进行了一些微不足道的更改,它开始正确处理。然后我恢复了这些更改,事情仍然正常工作。

我想知道是否可能存在一些换行符/换行符或其他隐藏字符导致问题。有没有其他人经历过这样的事情?

【问题讨论】:

  • 如果您的语法正确,换行应该不是问题。检查文件权限并确保它们可以被网络服务器读取——我之前对此感到措手不及。
  • 你能澄清“没有正确保存”吗?
  • 文件的“不正确”版本会导致什么类型的错误?
  • 部分表单会按预期保存,但其他部分不会。没有引发错误或警告。如果发送某些值,则有一个对象会保存,否则不会保存。
  • 您是否使用SVN等版本控制来存储您的php代码?

标签: php newline


【解决方案1】:

我的第一个想法是检查以下事项:

  • 如果您收到某种标头已发送错误,请在脚本开头检查 BOM-Bytes 或其他不可见字符
  • 您是否使用非英语字符作为 html/表单名称或 php 变量检查所有文件的编码。它必须在任何地方都一样
  • Google arround 用于 php lineending-settings。不久前,我听说如果线尾错误可能会发生一些事情。

编辑:否则如果你给我们一些示例代码会很有帮助。

【讨论】:

  • +1 表示字节顺序标记;可能会很痛苦,因为 PHP 会将其评估为输出。
【解决方案2】:

您可能在打开 <?php 标记之前有一个隐藏字符。

如果您正在执行任何标头操作或session_start(),它将失败,因为如果<?php 不是文件中的第一件事,那么服务器将启动它的响应。

你应该检查你的 php 错误日志。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    • 1970-01-01
    • 2016-07-09
    • 2012-05-22
    • 2023-03-23
    • 1970-01-01
    • 2021-07-17
    相关资源
    最近更新 更多