如何在另一个页面获取session值

我做了一个登录模块,检查用户名,密码的页面a.php代码如下<?phpsession_start();$username=$_POST['username'];$pass... 我做了一个登录模块,检查用户名,密码的页面a.php代码如下
<?php
session_start();
$username=$_POST['username'];
$password=$_POST['password'];
require("mysql_connect.php");
$sql=mysql_query("SELECT * FROM l_user WHERE l_username ='$username'");
$info=mysql_fetch_array($sql);
$_SESSION["username"]=$username;
$_SESSION["role"]=$info[l_role];
if(mysql_num_rows($sql)==0){

echo "<script language=javascript>alert('用户名不存在!');history.back();</script>";
}
else{

if($password!=$info[l_password]) {
echo "<script language=javascript>alert('密码错误!');history.back();</script>";
}
else {

header("location:default.php");
}
}
?>
登录成功后跳转到default.php,我想根据不同的权限在default.php输出不同的模块。就写了下面这一段代码<?php
require("b.php");
do {
echo '<li class="btn4"><a href="#" onclick="hilight(this);" onfocus="this.blur()"> ' .$info[mk_name].'</a></li>';
}
while($info=mysql_fetch_array($sql));
?>
b.php代码如下
<?php
session_start();
$role=$_SESSION["role"];
require("mysql_connect.php");
$sql=mysql_query("select distinct l_mk.id, mk_name from l_mk inner join l_rank on l_mk.mk_num=l_rank.mk_num where l_rank.u_role='$role' order by l_mk.id desc");
$info=mysql_fetch_array($sql);
?>
问题是我在b.php里用a.php里设置的权限值$_SESSION["role"]作为查询条件。
但是在default.php里输出结果的时候却出错,我把查询条件改为0就正确了。0在我的数据库表里对应的是管理员.
展开
 我来答
勇素芹代雨
2019-04-26 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:35%
帮助的人:1077万
展开全部
因为你在当前页面对session赋值的并没有回发服务器,另一个页面拿的这个session值肯定是没有实例的,你只要对当前页面session赋值后刷新一下,让浏览器相应给服务器就可以了。
裴成阚璧
2019-12-22 · TA获得超过3.7万个赞
知道小有建树答主
回答量:1.2万
采纳率:34%
帮助的人:859万
展开全部
因为你在当前页面对session赋值的并没有回发服务器,另一个页面拿的这个session值肯定是没有实例的,你只要对当前页面session赋值后刷新一下,让浏览器相应给服务器就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
影翼视觉lyl
2014-02-18 · TA获得超过630个赞
知道小有建树答主
回答量:1279
采纳率:50%
帮助的人:670万
展开全部
首先确保你session已经开启,其次就是确保你的session在<html>标签之前(也就是文件第一行)。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
斯微安5
推荐于2018-03-08 · TA获得超过238个赞
知道小有建树答主
回答量:852
采纳率:100%
帮助的人:288万
展开全部
你要用到$_SESSION的全局变量时必须在文件的头部放上
session_start();$_SESSION的全局变量才能起作用!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-02-18
展开全部
查询条件改为0,是改成l_rank.u_role=0还是l_rank.u_role=‘0’ 呢?

如果是前者, b.php里的sql语句需要把'$role'换成$role

如果是后者,那就是没能正确获取到session值,把<?php require("b.php"); ?>放到default.php的第一行试试看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式