【问题标题】:session_start() Errorsession_start() 错误
【发布时间】:2011-07-03 04:15:23
【问题描述】:

我对 session_start() 有一些问题;

我知道在 session_start() 之前不应该输出任何内容;声明

但我在脚本中找不到问题

index.php:

<?php session_start();
include('functions.php');
if(!is_logged_in(session_id())){
    include('form.php');
}else{
?>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
<?php
}
?>

但我总是跟着错误:

警告:session_start() [function.session-start]:无法发送 会话 cookie - 标头已发送 由(输出开始于 C:\xampp\htdocs\fertige_scan\index.php:1) 在 C:\xampp\htdocs\fertige_scan\index.php 第 1 行

我希望你能帮助我:)

【问题讨论】:

  • 也许你在结束标签后有空格或换行符?尝试删除“?>”
  • 实际上你会在开始标签之前寻找空格,对吧?
  • 是的,开始标签前没有空格,结束标签后没有空格...
  • 我应该说每次我刷新页面时都会生成一个绝对新的 session_id() 绝对不正常...
  • 即使不包含functions.php文件也会发生这种情况吗?

标签: php session


【解决方案1】:

如果以 UTF8 格式保存文件,请确保在没有 BOM 的情况下保存文件

【讨论】:

    【解决方案2】:

    确保您的文件保存为 ANSI 格式而不是 UTF-8 格式。

    【讨论】:

    • UTF8 文件的问题在于 BOM,而不是编码本身。有时你别无选择,你需要 UTF8。
    • 该死的,非常感谢。我将其保存为 UTF-8 格式,现在我将其保存为 ANSI,一切正常:)
    • 因为您使用 BOM 保存它们...很抱歉,这不是一个可接受的答案。
    • 是的......现在我将它保存为没有 BOM 的 UTF-8 并且一切正常。
    • 我刚才也遇到了同样的问题,虽然当然的解决办法是不用BOM来保存,但我不知道为什么 PHP文件可以没有 BOM。感觉像是某处的错误配置错误。更重要的是,因为我的本地主机上没有问题;只有当我从外部服务器运行它们时才会出现问题。
    【解决方案3】:

    假设您在&lt;??&gt; 之前删除了任何多余的字符,并且session_start(); 是第一条语句,您可以尝试将文件编码更改为不带BOM 的ANSI 或UTF-8,如建议session_start's PHP documentation.

    【讨论】:

      猜你喜欢
      • 2014-08-06
      • 1970-01-01
      • 2017-07-31
      • 1970-01-01
      • 1970-01-01
      • 2011-08-25
      • 2011-04-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多