我看了很多文章,发现会议不能没有cookie的工作,但试过,找到一种方式,请提供反馈意见呢?PHP会话可以在没有Cookie的情况下工作吗?
步骤1)首先禁用并清除浏览器的cookie数据,我使用chrome。
第2步)创建一个页面one.php具有以下代码。 我首先检测到用户代理ipaddress和我的密钥将其转换为第二页上的MD5,以便进行唯一用户检测。
$uagent = base64_encode($_SERVER["HTTP_USER_AGENT"]);
echo $ip = md5($_SERVER["REMOTE_ADDR"]."MYSECRETKEY".$uagent);
echo "<br>";
echo session_id($ip);
session_start();
$_SESSION['data'] = array("name"=>"bbbbbbbb","designation"=>"software_engineer");
print_r($_SESSION);
步骤3)创建另一个页面two.php
$uagent = base64_encode($_SERVER['HTTP_USER_AGENT']);
echo $ip = md5($_SERVER['REMOTE_ADDR']."MYSECRETKEY".$uagent);
echo "<br>";
echo session_id($ip);
session_start();
print_r($_SESSION);
我发现two.php数据page.so我们可以设置会话,并获取数据,而不饼干。 任何反馈我错了,或者这真的是一个解决方案?
IP的可以伪造。如果他们有动态IP,调制解调器重置可能会失去他们的会话。多个用户可能位于同一个IP上,例如在办公楼或大学校园。 – Squeegy
不幸的是,这并未考虑来自同一IP地址的多个用户,例如那些使用同一家庭路由器的用户,或者同一台机器上的不同用户等。如果将会话ID追加到(例如'two.php?sessionid = sdfgsdfgasdfsdgsdfgsdfgsdfg') –
,但它可以像数字签名一样工作,使用MD5或任何加密算法都是安全的。我知道这不适用于像办公室那样使用相同IP地址的网络,否则MD5无法读取或我们在字符串中追加任何内容。 – bhuvnesh