如何在另一个页面获取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在我的数据库表里对应的是管理员. 展开
<?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在我的数据库表里对应的是管理员. 展开
5个回答
展开全部
因为你在当前页面对session赋值的并没有回发服务器,另一个页面拿的这个session值肯定是没有实例的,你只要对当前页面session赋值后刷新一下,让浏览器相应给服务器就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先确保你session已经开启,其次就是确保你的session在<html>标签之前(也就是文件第一行)。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要用到$_SESSION的全局变量时必须在文件的头部放上
session_start();$_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的第一行试试看
如果是前者, b.php里的sql语句需要把'$role'换成$role
如果是后者,那就是没能正确获取到session值,把<?php require("b.php"); ?>放到default.php的第一行试试看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询