php - 登录成功后页面无法正确重定向

时间:2011-07-27 11:56:52

标签: php session

这是我的代码: 我已经在页面顶部开始了index.php的会话 `

if(isset($_POST['btsubmit'])){
    $username=$_POST['txtname'];
    $password=$_POST['txtpass'];
    $sql="SELECT * FROM tbuser WHERE AccountName='$username' AND Password='$password'";  
    $query=mysql_query($sql) or die(mysql_error());

    if($username="" or $password=""){
        echo"Your box is empty";
    }else{      
        if($row = mysql_fetch_array($query)){
            $_SESSION['AccountName']= $row['AccountName'];
            header("Location: welcome.php");
            exit();
        }else{
            echo "fail";
        }

    }
}                   

>` 当我登录成功时,它不会重定向到页面welcome.php,它在index.php上保持不变。任何帮助,将不胜感激。感谢..

2 个答案:

答案 0 :(得分:5)

我认为这是因为你的if条件if($username="" or $password=""){这应该是==而不是=。因此,它永远不会进入代码的else部分。 另外,这是你的实际代码吗?您首先进行数据库查询,然后检查用户名/密码输入是否为空。

可能你应该首先检查两个inpts是否都是空的然后你应该进行查询,如果查询成功,那么你应该重定向到欢迎页面。

答案 1 :(得分:1)

首先,Don't use mysql_* functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDOMySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial


以我的评论为基础:

<?php
    $con=mysql_connect("localhost","root","");
     mysql_select_db("myphone",$con);

    if(isset($_POST['btsubmit'])){
        $username=(!empty($_POST['txtname']))?mysql_real_escape_string($_POST['txtname']):false;
        $password=(!empty($_POST['txtname']))?mysql_real_escape_string($_POST['txtpass']):false;
        if($username===false || $password===false){die('Username or password is blank!');}

        $sql="SELECT AccountName FROM tbuser WHERE AccountName='$username' AND Password='$password' LIMIT 1";  
        $query=mysql_query($sql);
        if(mysql_num_rows($query)==1){
            $row = mysql_fetch_assoc($query);
            $_SESSION['AccountName']=$row['AccountName'];
            $_SESSION['LoggedIn']=TRUE;
            header("Location: ./welcome.php");
            exit();
        }else{
             echo "Fail";
        }  
    }              
?>
相关问题