为什么`session_destroy()`不PHP工作?

我有这个问题在PHP中的会话,我从来没有能够理解!
我有一个PHP文件下面的代码:

session_start(); $sid = session_id(); session_unset(); session_destroy(); echo $sid;

按道理每次它应该给我不同的会话ID的时间造成很明显,我叫session_destroy()但它只是不会终止会话。 它总是给我相同的会话ID!
我是不是做错了?

--------------解决方案-------------

对我来说,只有下面的组合完美的作品彻底摧毁一个会话:

session_destroy();
session_unset();
session_regenerate_id(true);

编辑:你试试这个:

<?php
session_start();
$sid = session_id();
echo $sid;
echo "<br />";

//destroy session
session_destroy();
session_unset();

//now start the new session
session_start();
session_regenerate_id(true);
$sid = session_id();
echo $sid;
?>

它工作的非常完美。

seesion_id()的概念

参考此链接。 它说, 如果指定的ID,则它将取代目前的会话ID。 SESSION_ID()需要在session_start()用于此目的之前调用

还有一个例子在此指出

从PHP 4.3.3你得到一个通知,当你两次启动一个会话。 你可以使用SESSION_ID()如果会话已经开始检测。 之前,你可以做一个脚本,你必须知道,SESSION_ID()时,没有会话ID被称为返回false。 所以,现在我们可以做一个脚本女巫dectect如果一个会话开始,如果它不是,它startes一个会话。

This is what you get then:
<?php
if(!session_id()){
session_start();
}
?>

分类:php 时间:2012-01-01 人气:0
本文关键词: PHP,会话,会话ID
分享到:

相关文章

  • 如果(会话[登录ID] == NULL) 2013-11-17

    我在我的Page_Load喜欢写 if(Session[loginid]== null) 然后重定向到登录页面或其他page.Else填充list.There一个DropDownList的和2个按钮控制,我page.Does我需要写 if(Session[loginid]== null) 在填充列表功能,这是selectedindexchange功能键event.Selectedindexchange再次调用2内it.Does我需要在该函数写另一种功能. SamplePage.aspx 1 DR

  • 获取当前会话/进程ID从MySQL查询中 2013-12-26

    我试图创建伪数组变量表. 这看起来像 CREATE TABLE IF NOT EXISTS `MyArray`.`ArrayTable` ( `ID` INT UNSIGNED NOT NULL COMMENT 'Hash value of SessionID + ArrayName' , `SessionID` INT UNSIGNED NOT NULL , `ArrayName` CHAR(26) NOT NULL COMMENT '32 digit char - 6 digit longe

  • 你会在哪里在您的堆栈实现粘性会话/会话持久性/分布式会话? 2013-09-24

    如果你不得不实施粘性会话/会话持久性/分布式会话,你在哪里做呢? 负载均衡,流量正是从外面进来,其中负载平衡器连接或程序jboss实例中的Apache实例(两个)每个服务器上? 我有一个是被负载平衡到6台服务器一个应用程序. 每个服务器都有一个httpd进程并使用平衡器经理每台机器(因此总共12个)在平衡两个JBOSS实例之间的负载. 你会实施粘性会话/会话持久性/分布式会话在应用程序(JBOSS)级或负载平衡器级别的支持?

  • CakePHP的:无法获取登录使用验证和会话用户组ID 2012-07-15

    我使用CakePHP试图建立我的第一个应用程序的初学者. 我有以下登录代码: function login() { if ($this->Session->read('Auth.User')) { $result = $this->User->find('first', array( 'conditions' => array( 'User.id' => $this->Auth->user('id') ), 'fields' => 'Group.id'

  • Drupal的会话用户ID为独立脚本 2013-12-13

    我创建一个简单的脚本说a.php只会. 我知道的Drupal 6创建一个会话等.所以在我的a.php只会我想的print_r($ _ SESSION); 但似乎没有工作. 什么是让登录的用户用户id在我的程序的最佳方法是什么? 对不起,我是新来的Drupal. 感谢您的时间. --------------解决方案------------- Drupal的cron.php是利用了Drupal的库/目录包含一个"简单"的PHP脚本的一个很好的例子. 在该文件的主要线路有: include_

  • Symfony的1.4重新创建会话/会话ID改变身份验证时, 2013-12-27

    我使用的symfony 1.4,看来,每一个用户进行身份验证symfony的时间重新创建一个会话的用户. 例如,如果我访问一个网站,我没有登录我有那么一个不同的会话ID,如果我登录,我有一个新的,然后当我注销我的又一新的. 这不是那么symfony的1.0,我想如果这是它是如何应该是什么? --------------解决方案------------- 我只是检查1.0的源代码,它不存在那里. 1.1版本及以上重新生成会话ID每次验证更改或凭据添加/删除时间. 这是一个很好的安全措施,防止会话固

  • 会话值id变化 2014-09-15

    我写一个PHP的网站. 我有一个$_SESSION['id']持有用户,我将在我的脚本以后使用该值的用户名ID. 然而,我注意到ID改变,因为我浏览该网站. 是id以任何方式保留? 或者,我应该改变id别的东西? 每当我点击一个按钮几次这个问题发生. 我100%肯定,我不是改变$_SESSION['id']超出了最初的登录. 可能有人请帮助我明白发生了什么,以及如何可以固定. --------------解决方案------------- 我会假设你已经使用session_start ,如果没有

  • 这是最好的方法? 保存在会话的用户的会话或ID的用户名? 2014-09-23

    用户ID或用户名,这是更好保存会话,并在MySQL中是最好的方式. - > "select * from usertable where loginname=" . $_SESSION['username']; "select * from usertable where loginname=" . $_SESSION['username'];或 - > "select * from usertable where id=" . $_

  • PHP会话创建者ID 2014-05-27

    它可以安全地使用内置的会话创建者在PHP? 我担心的是有人会劫持在另一人的机器标识cookie,并设定他们完全一样,因此欺骗服务器以为他们是同一个人. 是否有保护(如IP检查)阻止这个还是我应该用更多的东西安全吗? --------------解决方案------------- PHP不执行任何IP检查,原因很简单,它不会工作的时间100%. 所以,是的,你可以劫持会话. 如果你想增加安全性,你需要建立机制,在此基础之上. 看看http://phpsec.org/projects/guide/4

  • 我recieving以下错误信息:来源:Microsoft Office 12的会话事件ID是7001 .__ 2012-03-09

    有人可以帮助我在Windows XP的基本用户级别以下问题. 感谢提前客栈的好意和时间. 事件ID:7002 ID:1,应用程序名称:Microsoft Office Excel中,应用程序版本:12.0.6524.5003,Microsoft Office版本:12.0.6425.1000. 本次会议历时65秒随着活动时间0秒. 本次会议以崩溃告终. --------------解决方案------------- 完全一样的困境的情况如己. 随机有时不正常关闭. 这并不严重,因为跑'修复'没有

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.671 (s). 10 q(s)