应该用if(session_is_registered(userid))判断

解决方案 »

  1.   

    但新版的php(我的版本是php4.3.2)都推荐用isset来检测变量是否注册的,在php4.2.2之后默认就不支持session_is_registerred了,现在我改写了代码:
    <?
    session_start();
    if(session_is_registered(userid))      //检查是否注册
    {
    echo "<br><center><a href='index.php'>只有注册会员才有权限操作,请先登录!<br>";
    exit;
       }
    ?>
    但还是一样,大家帮我找找原因哪!
      

  2.   

    应该这样吧?
    if(!session_is_registered(userid))
    {
    echo "<br><center><a href='index.php'>只有注册会员才有权限操作,请先登录!<br>";
    exit;
       }
    如果userid注册了,就直接进入,是不是?
      

  3.   

    上面的代码是用session_is_registered,但新版的是不推荐用这个,都推荐用isset,我现在写的代码如下:
    <?
    session_start();
    if(isset($_SESSION['userid'])) { 
      echo "只有注册会员才有权限操作,请先登录 !";
    }else{
    echo "<META HTTP-EQUIV=REFRESH CONTENT='0;URL=index.php'>";
    }
    ?>
    运行一切正常了,但问题是如果检测到session变量已注册,那会显示"只有注册会员才有权限操作,请先登录 !",这样怎能行呢?这里应该怎么改的,用""代替当然可以,但我想不应该这样写的,哪位帮我改一下。
      

  4.   

    我不是说了吗?在前面加一个非
    if(!isset($_SESSION['userid']))
      

  5.   

    不就是一个逻辑判断吗?
    userid被注册后,isset($_SESSION['userid'])就为真值了,这时不就应该可以进入index.php页面吗?
    同样如果userid没有被注册,isset($_SESSION['userid'])就为假了,
    这时,!isset($_SESSION['userid'])就为真了,所以就应该执行
    echo "只有注册会员才有权限操作,请先登录 !";了。
    这样说,明白吗?
      

  6.   

    多谢黑暗天使的指点,这下我终于明白了,谢谢你的指点,另外,你能再指点我另外一个问题吗,在http://expert.csdn.net/Expert/topic/2104/2104439.xml?temp=1.343936E-02,这个问题研究了老半天还是参不透,实在无能为力了,这个userid变量无论如何就是传递不过,但username变量都能传递过去,我觉得我的写法可能不对,我在asp中是这样写的:session("userid")=RS("id"),但在php中我的写法却失效了,你能再指点一二吗?最大的可能就是语法不对,但运行时却并没有提示什么错误,只是从session文件中可以看出,这userid根本就没有传递过去。