尝试登录时登录表单出错

时间:2014-04-30 07:06:52

标签: php

我的表单存在登录问题。请任何人帮助我找出错误。

当我尝试登录时,它始终显示登录失败。我的数据库表名是 sign_up ,字段是 id 名称性别 Email_id 用户名密码

我的登录表单代码( loginform.php ):

<?php session_start();?>
<html>
    <?php
        include('connection.php');
        $obj = new connection;
        $obj->connect();
    ?>
    <body>
        <?php session_destroy();
            session_unset();
        ?>
        <h3 align="center"> LOGIN </h3>
        <table align="center">
            <form action="login.php" name="frm" method="post">
                <tr><td>Username</td><td><input type="text" name="txt1" value=""/></td></tr>
                <tr><td>Password</td><td><input type="password" name="txt2" value=""/></td></tr>
                <tr><td><input type="submit" value="Login"/></td>
                <?php $query = mysql_query("SELECT COUNT(id) FROM sign_up");
                    $row = mysql_fetch_array($query);
                    if($row[0] == 0){
                        echo '<td><a href="registerform.php">New User?</a></td>';
                    }
                ?>
                </tr>
            </form>
        </table>
        </center>
    </body>
</html>

和我的登录功能( login.php

<?php
    include('connection.php');
    session_start();
    $obj = new connection;
    $obj->connect();
    $username=$_POST['txt1'];
    $password=md5($_POST['txt2']);
    $query=mysql_query("SELECT Username,Password FROM sign_up WHERE Username='$username' and Password='$password'");
    $row=mysql_fetch_array($query);
    $user=$row['Username'];
    $pass=$row['Password'];
    if(($username==$user) && ($password==$pass))
    { 
        header("Location:welcome.php");
    }
    else
    {
        echo "Login Failed!!!";
    }
?>

4 个答案:

答案 0 :(得分:0)

$username缺少查询中的单引号。将您的查询更改为:

$query=mysql_query("SELECT Username,Password FROM sign_up WHERE Username='$username' 
and Password='$password'");

答案 1 :(得分:0)

尝试使用$username添加引号,$_REQUEST['name']是什么 您可能希望在会话使用中设置用户名$user

    $username=trim($_POST['txt1']);
     $password=trim($_POST['txt2']);
     $password=md5($password);

    $query=mysql_query("SELECT Username,Password FROM sign_up WHERE Username='$username' 
        and Password='$password'");
     $rows = mysql_num_rows($query);
     if($rows > 0) {
        $row=mysql_fetch_array($query);
        $user=$row['Username'];
        $pass=$row['Password'];
        if(($username==$user) && ($password==$pass))
        { 
        $_SESSION['name'] = $user;
        }
     }
else {
    echo 'No rows found';
}

答案 2 :(得分:0)

答案 3 :(得分:0)

首先,您应该真正观看此视频https://www.youtube.com/watch?v=_jKylhJtPmI,然后使用预准备语句而不是旧式语法。

要生成更好的代码,您应该考虑使用PDO而不是mysql函数,因为它允许您在一行代码中更改数据库引擎。

然后,您应该使用对象语法。一切都应该封装在对象中,你应该只有一个入口点作为你的应用程序。

在完成所有这些更改后,它应该可以正常工作,因为您不会有Jenz所说的引用问题。

要专门回答您的问题,您可以执行print_r($row)并向我们提供结果吗?