文章目录
1.首先需要修改php.ini配置【请认真阅读】
a. php中session.use_trans_sid设置为1以后,可以自动改写URL将session id附加到URL链接参数中去,启用session.use_trans_sid以后,在开启会话以后可以使用预定义常量SID获取session id,也可以使用session_id()来获取session id.
.
b.如果将session.use_trans_sid设置为1,调用session_start()开启会话以后SID为空白字符串,并且输出的URL也没有改写,需要将session.use_cookies设置为0,禁止使用cookie传递session id,将session.use_only_cookies设置为0,这两个配置项任意一个开启的时候session.use_trans_sid都会失效
SID PHP预定义常量,当PHP禁用cookie时,SID才会有值,否则为空字符串
2.代码处理【由于设置了session.usetranssid=1,session_id会自动加入到参数】可以是post或者get传递请求
1.index.php
<?php
session_start();
?>
<html>
<head>
<title>login</title>
</head>
<body>
<form action="act.php" method="post">
用户名:<input type="text" name="username"><br/>
密码:<input type="password" name="pass"><br/>
<input type="submit" name="send" value="login">
</form>
</body>
</html>
2.act.php
<?php
if (isset($_GET[session_name()])) {
$sid = $_GET[session_name()];
session_id($sid);
}
session_start();
$_SESSION['name'] = "ddd";
var_dump($_SESSION);
echo '<a href="logout.php">退出</a>';
3.logout.php
<?php
session_start();
var_dump($_SESSION);