Session问题

kingyang123 2014-10-21 11:10:05
在一个页面设置了Session,在另一个页面取不到值。第一个页面:
session_start ();
$account = $_POST ['account'];
$password = $_POST ['password'];
$sql = "select * from users where (uid='$account' or email='$account')";
$result = mysqli_query ( $link, $sql );
if (mysqli_num_rows($result)>0) {// 账号存在
$row = mysqli_fetch_array ( $result );
if ($row ['password'] == md5 ( $password )) {// 密码正确
$uid = $row ['uid'];
$_SESSION ['uid'] = $uid; // 设置Session
$login_result = array (
"result" => 0,
"sessionid" => session_id ( session_name () ),
"nickname" => $row ['nickname'],
"uid" => $uid,
"email" => $row ['email'],
"gold" => $row ['gold'],
"level" => getLevel ( $row ['exp'] ),
"vip" => $row ['vip'],
"invite" => mysqli_num_rows ( mysqli_query ( $link, "select uid from users where inviter=$uid" ) )
);
} else { // 密码错误
$login_result = array (
"result" => 2
);
}
} else { // 账号不存在
$login_result = array (
"result" => 1
);
}

第二个页面:
session_start();
echo "uid=".$_SESSION['uid'];

确定第一个页面$_SESSION ['uid'] = $uid;这句话是执行了的,在第一个页面输出$_SESSION ['uid']的值是正确的,但是在第二个页面取不到值。如果把第一个页面这样写:
session_start();
$_SESSION['uid']=1000;
,第二个页面可以取到值。
...全文
166 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2014-10-22
  • 打赏
  • 举报
回复
session_id ( session_name () ) ??? session_name () 默认返回 PHPSESSID session_id 无参数时返回当前 sessionid 的值,有参数时将改变 sessionid 为参数的值。但 session_start 已经执行过了,发往客户端的 sessionid 并不会改变 你 session_id ( session_name () ) 会把当前 sessionid 变成 PHPSESSID,并在 sess_PHPSESSID 文件中保存 session 变量 再入时,由于 sessionid 不对应,所以就去不到值了
wenyiy_869047718 2014-10-22
  • 打赏
  • 举报
回复
PHP网站记录Session接收Session示例 //注册时间记录Session if($query==true){ $_SESSION["tb_name"]=$tb_name; echo "<script>alert('注册成功!');window.location.href='index.php';</script>"; }//codego.net/tags/4/1/ //接收Session把登录用户名写入数据库 <?php session_start(); include_once("cone/conn.php"); $tb_name=$_SESSION["tb_name"]; $nu=trim($_POST[nu]); $date=date("Y-m-d h:i:s"); $query=mysql_query("insert into tb_youxi(name,nu,date)values('$tb_name','$nu','$date')",$conn); if($query==true){ echo "<script>alert('添加成功!');window.location.href='login.php';</script>"; }else{ echo "<script language='javascript'>alert('对不起,注册失败!');history.back();</script>"; exit; } ?>
码无边 2014-10-22
  • 打赏
  • 举报
回复
$uid = $row ['uid']; $_SESSION ['uid'] = $uid; // 设置Session var_dump($_SESSION['uid']);
猪崽儿0o0 2014-10-22
  • 打赏
  • 举报
回复
你重置session_id了啊。
u010203057 2014-10-22
  • 打赏
  • 举报
回复
弱弱的问一句。想在另一个页面找到前一个页面的session不是应该在两个 页面之间传递session id吗载入后再用??????????????????????
智商众筹 2014-10-21
  • 打赏
  • 举报
回复
去掉rewrite,如果session正常的话,在根目录放个favicon.ico就搞定了
「已注销」 2014-10-21
  • 打赏
  • 举报
回复
引用 2 楼 u011619326 的回复:
应该是你赋值的时候没有成功赋值,你打印下$row看下,我感觉是数据没赋值。
不是这个问题,我弄了半天,把"sessionid" => session_id ( session_name () ),这句话去掉就没问题,不知道是什么原因
猪崽儿0o0 2014-10-21
  • 打赏
  • 举报
回复
应该是你赋值的时候没有成功赋值,你打印下$row看下,我感觉是数据没赋值。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧