【问题标题】:PHP SESSIONS are empty after reload page重新加载页面后 PHP SESSIONS 为空
【发布时间】:2015-11-17 18:57:31
【问题描述】:

我有代码

<?php
require_once("lib/functions.php");
$page = new page;



if(isset($_POST['jmeno'])){
    $page->mailit($_POST, $_SESSION['result']);
}

$_SESSION['f'] = rand(1,9);
$_SESSION['s'] = rand(1,9);
$_SESSION['result'] = $_SESSION['f'] + $_SESSION['s'];

?>

POST 表单之前它会打印正确的值,但在POST 表单之后会话是空的。不知道为什么,好像配置有问题。所以它总是显示错误的计数结果

这里是会话配置....

【问题讨论】:

  • 你用过start_session(); ?
  • 是的,在functions.php中
  • 当我在发布表单之前 print_r $_SESSION 向我展示了良好的价值,但如果我发布表单 $_SESSIONS 是空的
  • 你能告诉我们 $_SESSION 的 print_r 显示了什么吗?
  • 数组([f] => 9 [s] => 6 [result] => 15)

标签: php session server


【解决方案1】:

确保这行代码:

session_start();

在你的 php 文件的开头,就在开始的 php 标签&lt;?php 之后

这行代码用于启动新会话或恢复现有会话,请参阅php手册here

【讨论】:

  • 我正在启动它,如果我不启动它,它不会显示任何会话值,看起来会话在发布表单后正在重置
  • @koca79331 你在使用的每个 php 页面的开头都有这个session_start(); 吗?
  • @koca79331 抱歉,该行应该是session_start();。感谢@Ahmad 的编辑
  • 是的,它位于每个页面的开头,因为它位于 functions.php 中
  • @koca79331 您正在使用不同的文件发布对吗?包括function.php?如果$session_start() 不是问题,您可能在某处错误地使用了unset()
【解决方案2】:

确保您的文件采用 UTF-8 编码。 (不是 UTF-8-BOM)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 2016-05-12
    • 2020-09-05
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多