直接用$_SESSION['userid']=$id;试试看加引号做什么?

解决方案 »

  1.   

    $_SESSION['username']="$name";
    $_SESSION['userid']="$id";
    我试过了,就要加上引号,不加就不行,但username变量能传递过去,但userid变量无论如何都无法传递过去,这是什么原因?
      

  2.   

    首先,你在member.php来echo $_SESSION['userid'] ;一下,看看有没有值
      

  3.   

    请按照如下步骤进行调试: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(即能显示用户名),但其他都不能显示”
    和“数据倒是能显示了,但只能显示第一位数据”。
    列出你得到这些结果的准确完整的相关代码将会能容易看出问题在哪。
      

  4.   

    你的 sql 语句是这样:
    $sql="select * from dbuser where id='$userid'";我没有是过你的语句,你可以试试我这样的写法:
    $sql="select * from dbuser where id=\"".$userid."\"";