php - 未设置 Cookie,但其余代码正在执行?

标签 php cookies error-handling

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

8年前关闭。




Improve this question




好吧,这真的很令人困惑。我有两个页面,A 和 B。两者都使用以下代码:

 $row = mysqli_fetch_array($data);
     $_SESSION['user_id'] = $row['user_id'];
     $_SESSION['username'] = $row['username'];
     setcookie('user_id', $row['user_id'], time() + (60 * 60 * 24 * 30));    // expires in 30 days
      setcookie('username', $row['username'], time() + (60 * 60 * 24 * 30));  // expires in 30 days
      $home_url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/main.php';
      header('Location: ' . $home_url);

A 将在设置标题后执行代码(为方便起见,将其删除),然后设置标题;
B 将在设置标题后执行代码而不设置标题。

我已经检查了无数个答案,并且没有空格,main.php 文件设置为正常,A 和 B 文件看起来相同,但在 IF 语句之前具有不同的内容,这是铁定的。

没有出现错误;重定向(应该设置标题并做出相应的 react ,就像您在 B 上注销(因此没有事件的标题)一样),而在 A 上则显示为预期。

设置 cookie 的两个代码块之间的唯一区别(都在 IF 语句中)是 IF 语句是不同的,根据它出现之前的代码。

就 A 和 B 的代码之间的差异而言,我应该注意哪些(如果有的话)?

(PS:我也知道没有设置标题,因为 session 没有开始,通过将 IF $_SESSION ... 放在代码末尾。

最佳答案

session_start();
$row = mysqli_fetch_array($data);
$_SESSION['user_id'] = $row['user_id'];
$_SESSION['username'] = $row['username'];
setcookie('user_id', $row['user_id'], time() + (60 * 60 * 24 * 30));    // expires in 30 days
setcookie('username', $row['username'], time() + (60 * 60 * 24 * 30));  // expires in 30 days
$home_url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/main.php';
header('Location: ' . $home_url);
exit;


  • PHP: session isn't saving before header redirect
  • How can I set a cookie and then redirect in PHP?
  • 关于php - 未设置 Cookie,但其余代码正在执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13185770/

    相关文章:

    php - MySQL内部 session 检查?

    php - 在 PHP 中读取/写入 MS Word 文件

    java - 如何从 Java 中的 post 请求中提取 httponly cookie?

    php - 造粒机安全吗?或其中含有臭气?

    coldfusion - FW/1中的每个子系统错误文件

    python - 在Django中全局存储错误代码和消息

    php - 如何使用复选框和 html 选择的组合将多条记录插入 mysql 数据库

    php - 创建包含php执行结果的文件

    cookies - 是否可以在域和子域之间共享 cookie

    iOS7 Safari : Saving to Home-screen and persist token