研究了session()函数:
1、游客进入网站浏览一个帖子,他想评论!这时页面就跳转到login.php登录界面了!这是怎么实现的??求原理!!
2、用户登录后发帖,php怎么知道是哪个注册用户发的帖子!这是怎么实现的?求原理!session

解决方案 »

  1.   

    用户登录后,将用户名存放于 session
    发评论时先检查 session 中是否存有登录信息php不知道是哪个注册用户发的帖子
    你需要自己把用户名与帖子关联起来
      

  2.   

    研究得还不透彻
    登录后session记录用户id,换言之未登录时这个id也不存在于session变量里面,就可以判断跳转了
      

  3.   

    根据sessionID去分别是那个用户,信息全报存在session里面,获取的时候根据sessionID
      

  4.   

    `那显示帖子页php怎么知道是谁发的贴?谢谢
      

  5.   


    我看过韩顺平的php视频讲过您说的这个问题,在他的视频中,讲解session的时候,举了一个案例,那就是如何防止用户非法登录,应该就是你现在咨询的这个问题。1.当用户登录的时候,通过表单会将用户的登录名和密码(先忽略掉验证码)传到服务器也即相应的php验证脚本中。该脚本会从数据库中获取用户表,进行验证。
    2.如果合法,也就是用户的登录名和密码登录成功,那么php程序(专门负责跳转)会打开session机制(session_start),将用户的登录名存入到session中,并进行跳转。如果不合法(没有正确登录),那就跳转到登陆页面去,让用户重新输入用户名和密码。代码如下:
    $adminService=new AdminService();
    $name=$adminService->checkAdmin($id, $password);
    if ($name){
    //合法
    session_start();
    $_SESSION['loginUser']=$name;
    header("Location:empManage.php?name=$name");
    //如果要跳转,则最好exit();
    exit();
    }else{
    //非法
    header('location:login.php?errno=1');
    exit();
    }3.我们建立一个公共脚本,比如叫做common.php,在这个脚本中,我们定义一个方法如下:
        function checkUserValidate(){
      session_start();
      if (empty($_SESSION['loginUser'])){
      header("Location:login.php?errno=1");
      }
     
        }
    4、在需要防止用户非法登录页面中(比如你说的发帖页面)引入这样两句(这两句话,放在页面的开头)
    require_once 'common.php';
    checkUserValidate();
    没有登陆的用户是进不到发帖页面的,如果登录成功的用户进入到该页面,那么程序很容易就可以从session中取得该用户资料。不知道你现在是否明白,如果想知道更详细的,可以看韩顺平视频119讲,后半部分的案例。不再写了,累死了。呵呵!