php登录页面,无法登录

时间:2014-05-30 04:30:52

标签: php mysql xampp

我在我的php上创建了一个登录,但似乎无法找到该错误。需要帮助找到它。下面是我的代码:

我的login.php

<?php

if(isset($_POST['U_Name']) && isset($_POST['U_Pass'])){

$user = $_POST['U_Name'];
$pass = $_POST['U_Pass'];


if(!empty($user) && !empty($pass)){

        $query = mysql_query("SELECT * FROM accounts WHERE U_Name = '".$user."' AND U_Pass = '".$pass."'") or die (mysql_error());

        $data = mysql_fetch_array($query);

        $test = $data['U_Pass'];

        $query_run = $query;
        $query_num_rows = mysql_num_rows($query_run);

            if($query_num_rows == 0){


                echo "Invalid username/password";

                }

            else if($query_num_rows == 1){


                echo "ok";
                $user_id = mysql_result($query_run,0,'id');
                $user_id = $data['U_ID'];
                $_SESSION['user_id'] = $user_id;
                header("location:".$_SERVER['PHP_SELF']." ");
                }
            {
        }

    }
else{

    echo "You must supply a username and password";

}

}

?>

<div align = "center">
<form action ="<?php echo $current_file; ?>" method = "POST">
Username : <input type = "text" name = "username"> Password : <input type = "password" name = "password">
<input type = "submit" value = "Log in">
</form>
</div>

和connection.php:

<?php


$dbc = mysql_connect('localhost', 'root', '') or die ("Can't connect : ". mysql_error());

mysql_select_db('users', $dbc) or die ("Can't connect : ". mysql_error());


?>

每当我输入我的用户名和密码时,它只会返回我的登录页面。什么都没发生,甚至没有错误信息。请帮我。感谢

2 个答案:

答案 0 :(得分:4)

您收到错误的帖子字段必须与表单输入字段名称相同才能尝试更改

if(isset($_POST['U_Name']) && isset($_POST['U_Pass'])){

$user = $_POST['U_Name'];
$pass = $_POST['U_Pass'];

if(isset($_POST['username']) && isset($_POST['password'])){

$user = $_POST['username'];
$pass = $_POST['password'];

导致您使用

<input type = "text" name = "username"> 
<input type = "password" name = "password">

然后在帖子上获取数据看起来像: -

$user = $_POST['username'];
$pass = $_POST['password'];

注意: - mysql_*已被弃用,使用mysqli_*PDO

还使用mysql_real_escape_string()来esacpe输入字符串

答案 1 :(得分:1)

在html中为输入字段设置一个名称:

&lt; input type =&#34; text&#34; name =&#34; 用户名&#34;&gt;

&lt;输入类型=&#34;密码&#34; name =&#34; 密码&#34;&gt;

但请阅读

$ user = $ _POST [&#39; U_Name &#39;];

$ pass = $ _POST [&#39; U_Pass &#39;];

你必须在HTML中和从$ _POST读取时使用相同的名称,并且它与你在数据库中命名的列的方式无关

相关问题