为何无法正常显示数据库的数据
$_SESSION['username']="$name";
$_SESSION['userid']="$id";
echo "<p><center>登录成功!……<center>";
echo "<META HTTP-EQUIV=REFRESH CONTENT='0;URL=member.php'>";
上面的代码是我写的一段用户名及密码检测代码的session变量注册部分,运行倒是一切正常,但是转到member.php中后我用了这个代码来显示用户的数据:
<?
$sql="select * from dbuser where id='$userid'";
$query=mysql_query($sql,$cn);
$recnum=mysql_fetch_array($query);
?>
但这样就不行了,只会显示username(即能显示用户名),但其他都不能显示,我去掉where id='$userid',数据倒是能显示了,但只能显示第一位数据(即第一名用户的资料),我觉得这userid可能注册,但我已在文件头部写了如下代码:
<?
session_start();
if(!isset($_SESSION['userid'])) {
?>
<script language=javascript>
alert("只有注册会员才有权限操作,请先登录 !")
</script>
<?
echo "<META HTTP-EQUIV=REFRESH CONTENT='0;URL=index.php'>";
}else{
require "head.php";
}
?>
这个代码已经检测过了userid这个session变量,如果变量没有注册是不会通过检测的,但输入了正确的用户名和密码后能正常进入member.php中,这说明userid这个变量应该已经注册了,但id="$userid"却不行,不知大家都用什么样的代码,我研究了老半天还是没有参透,数据库中的数据一直无法正常显示,大家给看看应该怎样改哪?即where id="$userid"怎样改才能正常显示哪?我打开session文件,内容如下:
username|s:5:"lzmyu";userid|s:0:"";
从中可看出这userid显示不正确了,但我不知道原因到底出在哪里,是$_SESSION['userid']="$id";写得不对吗?
问题点数:0、回复次数:5Top
1 楼cpio(备注)回复于 2003-08-03 21:53:42 得分 0
直接用
$_SESSION['userid']=$id;
试试看
加引号做什么?Top
2 楼my3b(重阳公子)回复于 2003-08-03 22:12:18 得分 0
$_SESSION['username']="$name";
$_SESSION['userid']="$id";
我试过了,就要加上引号,不加就不行,但username变量能传递过去,但userid变量无论如何都无法传递过去,这是什么原因?Top
3 楼blueoxygen(有你在身旁 心更坚强)回复于 2003-08-03 22:37:22 得分 0
首先,你在member.php来echo $_SESSION['userid'] ;一下,看看有没有值Top
4 楼azhilaoa()回复于 2003-08-04 03:27:22 得分 0
请按照如下步骤进行调试:
1。确认 $name 及 $id 的付值正确。
在将值付给 SESSION 之前,在页面上输出两个变量的值。
echo "<br>\$name = $name";
echo "<br>\$id = $id <br>";
2。确认对 SESSION 的付值正确。
$_SESSION['username']=$name;
$_SESSION['userid']=$id;
暂时删除这两行付值代码后面的所有代码,运行你的程序页面,
然后马上去查看你的session文件,看看里面的 username 及 userid 的值是否正确。
3。确认 SESSION 变量在两个页面之间的传递正确。
在你的目的页面程序里面,在使用你的 SESSION 变量之前先输出他们的值。
echo "<br>\$username' = $username";
echo "<br>\$userid' = $userid <br>";
4。确认 sql 语句正确。
$sql="select * from dbuser where id='$userid'";
跟着增加调试输出语句:
echo "<br>\$sql = $sql <br>";
echo "<br>\$sql = $sql <br>";
5。用验证过的 sql 语句在你的数据库客户端上是运行并察看结果。
6。确认数据库查询正确。
修改你的代码增加 die 部分
$query=mysql_query($sql,$cn) or die("Cannot execute query to get member's info.");
用这一系列步骤将可以帮助你确定问题出在哪里。
如果还是找不到出问题的地方,或有什么其它问题,贴出你的更加准确完整的
页面代码以供研究。
例如你说“但这样就不行了,只会显示username(即能显示用户名),但其他都不能显示”
和“数据倒是能显示了,但只能显示第一位数据”。
列出你得到这些结果的准确完整的相关代码将会能容易看出问题在哪。Top
5 楼azhilaoa()回复于 2003-08-04 03:33:20 得分 0
你的 sql 语句是这样:
$sql="select * from dbuser where id='$userid'";
我没有是过你的语句,你可以试试我这样的写法:
$sql="select * from dbuser where id=\"".$userid."\"";Top




