现在有3个php文件   login.php(登录页面)        check.php(验证登录页面)      chat.php(聊天室内容)     
我的思路是这样的,填写玩login.php页面action到check.php里,对数据进行验证,数据库通过验证的话,那么跳转到chat.php页面
但是我用header()跳转的话,在chat.php页面接受不到登录的用户名   后来百度 用session    对于这个不太了解
大家帮着看下这样的用法问题出在哪
chat.php
<?php //****************参数设置****************
@session_start();
$_SESSION["username"]=$_POST["post_name"];
//显示在线用户 
...check.php
<?php 
if($_SERVER['REQUEST_METHOD'] == 'POST'){
    $con = mysql_connect("localhost","root","mysql") or die("fail");
    //    echo "数据库连接成功!<br>";
    mysql_select_db('php_chat');
    //$_POST['pwd'] = md5($_POST['pwd']); //md5验证
    $username=$_POST['post_name'];
    $password=$_POST['post_pass'];
    $sql = "select * from name where name='{$_POST['post_name']}' and pass='{$_POST['post_pass']}'";
    $result = mysql_query($sql);
    if(mysql_num_rows($result) != 0){
            //当验证通过后,启动session
            session_start();
            //注册登陆成功的admin变量,并赋值true
            $_SESSION["user_name"]=$_POST['post_name'];
            header ("Location:chat.php") ;    //重新定向到其他页面    
    
        }                       //登录过的话立即结束    
    else{
        echo "账号或密码错误<br>" ;
        echo "<font color=red>登录失败!</font><br><a href='login.php'>请重新输入</a>";
    }
    exit();
}
?>login.php
<?php //启动session 
session_start();
//声明变量
$_SESSION["username"]=$_POST["post_name"];
...
<form action="check.php" method="post" name="login">
Enter your name: <input type="text" name="post_name" /><br>
Enter your password: <input type="password" name="post_pass" /><br>
<input type="submit" value='登陆' name='sub' onclick="javascript:checklogin()";/>
</form>麻烦了,能具体的讲下吗?

解决方案 »

  1.   

    chat.php中echo $_SESSION["username"];没有值吗?
      

  2.   

    @session_start();这行下面加上echo $_SESSION["username"]; 没有值?  还有你登陆成功了吗。。
      

  3.   


    试了下 输出 没有值登陆没成功  只是单纯的跳转到了chat.php页面
      

  4.   

    <?php 
    //****************参数设置****************
    @session_start();
    echo $_SESSION["user_name"];exit;//....
    ?>
    chat.php直接这么写就行了,用post是不行的
      

  5.   

    你在check.php里已经获得了$_SESSION['user_name'],chat.php只要用session_start();
    就可以直接用$_SESSION['user_name'],无需再获得。
      

  6.   

    感谢LS解答另外,关于session关闭要如何处理呢?
      

  7.   


    销毁?
    session_destroy();
    关闭 ?
      

  8.   


    就是说session保存了之后 关闭以后仍然保存了  开启chat.php仍然是原来的用户名
    我想弄成 退出之后,直接进chat.php的话,就是匿名的p.s :剩余可用分在哪查询啊?
      

  9.   

    如果仅仅是 session  随时都可以用 session_destroy(); 销毁.============
    /pain fozzainter
    Phpnewnew对fozzainter嚷道:“fozzainter,你又没死,哇哇大叫些什么?”
      

  10.   

    退出之后你将session销毁。然后就可以用session的值来判断是否登录。。
      

  11.   

    同意,就是用session_destroy(); 销毁