【问题标题】:PHP session_start() - incomprehensible error [duplicate]PHP session_start() - 无法理解的错误[重复]
【发布时间】:2013-08-25 12:11:04
【问题描述】:

这可能看起来像标准问题,但事实并非如此。 我收到此错误:

session_start() [function.session-start]:无法发送会话缓存限制器

....这就是我无法理解的,因为session_start() 是文件中写入的第一件事(<?php 除外)。 这是代码:

<?php

    session_start();

    include "config.php";

    $escapedName = mysql_real_escape_string($_GET['email']);
    $escapedPW = mysql_real_escape_string($_GET['password']);

    $query ="SELECT salt FROM users WHERE email='".$escapedName."'";
    $result = mysql_query($query, $link) or die ("SQL dotaz sa nepodaril");
    $num = mysql_num_rows($result);

    while ($row=mysql_fetch_array($result)){
        $salt = $row["salt"];
    }

    $saltedPW =  $escapedPW . $salt;
    $hashedPW = hash('sha256', $saltedPW);

    //echo $hashedPW."<br>";

    $query ="SELECT ESN_WINGS_ID as id FROM users WHERE email='".$escapedName."' AND password='".$hashedPW."'";
    $result = mysql_query($query, $link) or die ("SQL dotaz sa nepodaril");
    $num = mysql_num_rows($result);

    if($num == 0)
        echo "Invalid e-mail or password";

    while ($row=mysql_fetch_array($result)){
        $_SESSION["id"] = $row["id"];
        echo $SESSION["id"]."NOT WORKING!";
        //echo $row["id"];
    }

?>

感谢您的回复。

【问题讨论】:

  • 错误信息越模糊,谷歌越容易找到。
  • 这是您包含的另一个文件吗?或者你只是在浏览器中运行这个文件?
  • 就是这样,我不会在任何地方包含它。我在浏览器中运行它......
  • 你的文件编码是什么?
  • 文件编码为 UTF-8

标签: php session


【解决方案1】:

“这可能看起来像标准问题,但事实并非如此”。

大多数时候人们这么说,这是一个标准问题,他们只是这么说,因为他们无法通过阅读其他人对“标准”问题的解决方案找到问题。 (我去过)

您必须先致电session_start()。就是这么简单。虽然 PHP 错误和警告有时可能会产生误导,而不是指向确切的问题(只是受问题影响的下一件事)等,但它通常是非常合乎逻辑的,重要的是,“意思是说什么!”

如果它告诉您标头已发送,则标头已发送。空格或回车(尽管这通常不足以引起问题)、一些文本等。

我尝试复制/粘贴您的代码并将您的顶部与session_start() 一起使用,这对我来说效果很好。所以我想你可能有带有 BOM 的 UTF-8(我没有 BOM)。

确保您的&lt;?php 上方、之前或旁边没有空格,并且它位于文件的最顶部,并确保session_start() 就在您的&lt;?php 下方,并确保没有空格或它们之间的额外回车,然后测试。

如果仍然失败,请查看http://en.wikipedia.org/wiki/Byte_order_mark。如果您的编辑器设置为使用 BOM 编码,请尝试将其设置为不使用 BOM 进行编码。

另外,请确保您的编辑器没有为空格/制表符设置一些奇怪的设置,它可能会添加不需要的字符而不是标准字符。

【讨论】:

  • 问题是,我以前做过所有这些事情。在托管服务提供商最终给我回电并澄清说他正在服务器上重新安装 PHP 版本后,问题得到了解决。
  • 这就是为什么我说“大多数时候”:)
  • 但是,伙计们,比你的回应......
  • 我应该删除这个帖子
猜你喜欢
  • 2011-08-25
  • 2013-05-10
  • 1970-01-01
  • 1970-01-01
  • 2014-08-06
  • 1970-01-01
  • 1970-01-01
  • 2015-03-03
  • 2012-01-27
相关资源
最近更新 更多