php - 设置 session 变量

标签 php session

这是我的 PHP 代码:

<?php
session_start();

if ( !isset($_SESSION['index_visited']) )
{

$_SESSION['page2_visited'] = 1;
$_SESSION['wrong_number'] = 1;

header('Location: index.php');

}
?>

我认为 $_SESSION['page2_visited'] = 1 和 $_SESSION['wrong_number'] = 1 永远不会被设置。程序将我重定向到index.php,就是这样。

我需要做什么来设置它?

最佳答案

在重定向发生之前, session 可能没有时间正确保存自身。

使用session_write_close();在 header 重定向之前强制保存 session 。

所以会是:

<?php
session_start();
if ( !isset($_SESSION['index_visited']) ) {
  $_SESSION['page2_visited'] = 1;
  $_SESSION['wrong_number'] = 1;

  session_write_close();

  header('Location: index.php');

}
?>

session_commit()也有效。它就像 session_write_close() 的别名

关于php - 设置 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4970504/

相关文章:

php - MySQL 在循环中使用 PHP 变量进行更新

php - 将从 javascript 返回的值传递给 php

android - android中的 session

session - session 是否用于 REST 身份验证?

php - 防止 session 在非事件用户的 PHP session 中过期

php - ImageMagick PHP Docker版本问题

php - session ID 为空 php

php - 我如何通过 session 找到用户 ID 和国家/地区

c# - HttpContext.Current.User 对于无状态 session 安全吗?

php - 有哪些 PHP Twitter OAuth 库可用?我应该使用哪一个?