php会话总是在刷新时创建的
我是PHP新手,所以有一个非常基本的问题 我正在创建一个页面我正在创建一个最初带有用户id和密码的页面,一旦输入了用户id和密码并单击了提交,就会调用AJAX来根据数据库验证这一点。 验证完成后,我想刷新页面,向用户显示更多选项 我正在考虑使用会话 但每次我刷新页面时,都会创建一个新会话 我把它放在页面顶部作为测试,每次按下F5时,我都会在页面顶部看到“新建会话”php会话总是在刷新时创建的,php,ajax,session,Php,Ajax,Session,我是PHP新手,所以有一个非常基本的问题 我正在创建一个页面我正在创建一个最初带有用户id和密码的页面,一旦输入了用户id和密码并单击了提交,就会调用AJAX来根据数据库验证这一点。 验证完成后,我想刷新页面,向用户显示更多选项 我正在考虑使用会话 但每次我刷新页面时,都会创建一个新会话 我把它放在页面顶部作为测试,每次按下F5时,我都会在页面顶部看到“新建会话” <?php if (!isset($_SESSION)){ session_start(); echo("ne
<?php
if (!isset($_SESSION)){
session_start();
echo("new session");
}
else
{
echo("old session");
}
?>
会话\u start
必须始终在与会话相关的任何操作之前调用。调用它后,可以获取或设置$\u会话
变量的值
您的代码应该是:
<?php
session_start(); // always call this at top
if (!isset($_SESSION['has_been_here'])){
$_SESSION['has_been_here'] = true;
echo("new session");
}
else
{
echo("already been here");
}
?>
来自php.net:
session_start — Start new or resume existing session
这意味着您必须从
session_start();
在每一页的第一行,它将开始或继续它。查看php.net,它将帮助您了解如何正确处理和检查会话 我想你误解了
session\u start
的作用。从文档中可以看到:“session_start()根据通过GET或POST请求传递的会话标识符或通过cookie传递的会话标识符创建会话或恢复当前会话。”$\u session
在调用session_start()
之前将永远不会被设置。您应该在每个启用会话的页面顶部调用session\u start()
。它不会覆盖现有会话。相反,它将允许您访问用户的当前会话,如果还不存在,则创建一个会话。如果要显式启动新会话,请先使用session\u destroy()
,然后使用session\u start()
。非常感谢,这回答了我的问题。现在我遇到了一个新问题。我有一个在提交后调用的AJAX。开始另一个问题