当我们在浏览器中清除cookie时,为什么会话正在清除?

时间:2011-02-21 12:36:22

标签: php

我正在用PHP做一个项目。我对cookie和会话有一点疑问。

这是我的疑问。

  1. Cookie会保存在浏览器端。

  2. 会话保存在服务器端。

  3. 如果我们在浏览器中清除Cookie,为什么会话也变得清晰。

    根据条件,cookie保存在浏览器端。并且会话保存在服务器端。 如果我们在浏览器中清除cookie,那么存储在服务器中的会话也是如何清除的。

    请澄清一下......

    提前感谢...

3 个答案:

答案 0 :(得分:4)

服务器使用cookie来跟踪用户的会话。我们要查找的具体Cookie是 PHPSESSID ,这是跟踪Cookie。

因此,如果您删除此cookie,服务器将失去对客户端的跟踪,因此它将被终止。

这是一些参考。

http://oreilly.com/pub/a/php/excerpt/webdbapps_8/index.html?page=2

答案 1 :(得分:0)

PHP允许使用带有会话存储的cookie或数据库。如果您只使用cookie,这通常是导致这种情况的原因。您可以使用数据库会话和使用via querystring / trans id来解决这个问题。

希望这会有所帮助。

编辑以包括Maerlyn指出的错过的部分。

答案 2 :(得分:-3)

  

服务器使用Cookie进行跟踪   用户的会话。具体   我们正在寻找的饼干是   PHPSESSIONID是跟踪   曲奇饼。   块引用

正如Adarsh R所说

如果使用session_id将会话保存到数据库表中,您怎么能阻止这种情况 并序列化会话,这是为无法更改php.ini的用户

修改

$ip = $_SERVER['REMOTE_ADDR'];
$browser_string = $_SERVER['HTTP_USER_AGENT'];
$session_id = session_ID();
$session = serialize($_SESSION);

DB代码是读者的练习。

$sql = "SELECT * FROM `sessions` WHERE `ip`='".$ip."' AND `browser_string`='".$browser_string ."'";

希望你能从中解决这个问题。