成功登录后,我将保存会话变量。
当用户转到应用程序中的不同页面时,会话就消失了,即使我没有显式地销毁会话。我该怎么解决这个问题?
这是一个会话似乎消失的页面。
<?php
include 'core/init.php';
include 'core/sendmessage.php';
$user_info = $_SESSION['user_id'];
$getUser = mysql_query("SELECT * FROM users WHERE user_id = ".$uid);
$user_info = array();
while($currentRow = mysql_fetch_array($getUser)){
$user_info['firstname'] = $currentRow['first_name'];
$user_info['lastname'] = $currentRow['last_name'];
$user_info['username'] = $currentRow['username'];
}
?>
在core/init.php
中,我有会话开始方法。
<?php
session_start();
require 'database/connect.php';
require 'functions/users.php';
require 'functions/general.php';
if (logged_in() === true) {
$user_data = user_data($_SESSION['user_id'],'first_name','last_name','username');
}
$errors = array();
?>
您应该尝试为所有这些使用不同的名称,因为我认为将会话中使用的值用于另一个值(因为这将替换您的旧值)并在下次访问该页面时使会话消失不是一个好的做法。会话只创建一次。
<?php
include 'core/init.php';
include 'core/sendmessage.php';
$user_info = $_SESSION['user_id'];
$getUser = mysql_query("SELECT * FROM users WHERE user_id = ".$uid);
$userinfo = array(); //I changed $user_info to $userinfo so it doesn't get mixed with the session.
while($currentRow = mysql_fetch_array($getUser)){
//I removed the underscore
$userinfo['firstname'] = $currentRow['first_name'];
$userinfo['lastname'] = $currentRow['last_name'];
$userinfo['username'] = $currentRow['username'];
}
?>
现在应该没事了,尽管我还没有测试过。我只是将数组更改为$userinfo
,这样您仍然可以在任何时候使用会话,而不会将其与某些内容混合在一起。
session_start()根据通过GET或POST请求传递或通过cookie传递的会话标识符创建会话或恢复当前会话。(访问PHP:session_start)
在每页的开头添加session\u start()
(在
在您的情况下:
<?php
if(!isset($_SESSION)) session_start(); //--> ADD this line
include 'core/init.php';
include 'core/sendmessage.php';
$user_info = $_SESSION['user_id'];
...
我ogin.php 指数php 我做了一个登录脚本,打开,如果密码是正确的,我ndex.php网站。当第一次通过登录脚本打开ndex.php网站时,一切正常,会话设置完毕。但是在我刷新页面后,会话会被破坏,并且没有设置。那么我如何保存会话,这样它就不会因为刷新浏览器而被破坏呢?
下面是Spring3.x和Hibernate3.x上的一个假设情况 我在Spring有一个服务层,它调用3个DAO来构建一个模型。DAO 是事务性的(@Transactional),并且具有延迟加载的Hibernate集合。 该服务方法会导致一些更新,以及数据的获取。 典型的DAO方法如下- 我有以下关于OSIV的问题 - 1.在默认的AUTO模式下,此会话刷新(数据库更新)多少次? 2.是否可以
我必须添加一个WordPress安装到我的CodeIgniter系统,所以我把它放在一个名为的子图中,并在我的中排除了该文件夹。一切都很好。 我已经将所有的WordPress表和放在我的CodeIgniter数据库中,前缀为。 我现在已经将WordPress博客头文件加载到,就像这样; 并在我的控制器中创建了一个注册方法,以实际链接到我的。我这样做是因为我想使WordPress登录/注册过时,并从
我使用CXF Servlet公开了一些REST服务。然而,我遇到了这样的问题:一个类需要一个延迟加载的集合(不止一个列表)。我得到了这个: 我的cxf配置相当简单: 如何实现“在视图中打开会话”模式,以便在 Jackson 序列化对象时我的Hibernate会话可用?
问题内容: 在我的本地路由http:// localhost:9000 /#/ deviceDetail /中, 我有一个控制器来管理该视图。在进入该视图之前,我将一些变量设置为( 例如)。 一旦进入该视图,我就可以访问仪表盘属性,但是例如当我用键刷新页面时,该属性仪表盘就会丢失。 我试图将localSave变量保存,但是该方法遇到了循环引用问题。 有什么技巧可以解决吗? 问题答案: Angula
问题内容: 我听过关于此主题的不同回答,那么销毁PHP会话的肯定方法是什么? 在最简单的情况下,这是否足以真正终止用户与服务器之间的会话? 问题答案: 要销毁会话,您应该采取以下步骤: 删除会话数据 使会话ID无效 为此,我将使用以下代码: 为了确保会话ID无效,您应该只允许脚本启动的会话ID。因此,设置一个标志并检查它是否被设置: 此外,您可以使用此时间戳定期交换会话ID,以缩短其寿命: