如果用户注册允许他登录,则登录表单以检查数据库

时间:2013-12-03 22:54:55

标签: javascript php

连接部分工作正常,但是当涉及到数据库时,它不会检查它们是否存在。

这会检查连接

<?php
$DB_URL="localhost";
$DB_Uname="root";
$DB_Password="";
$DB_Schema="test";

global $DB_URL, $DB_Uname, $DB_Password, $DB_Schema;

$con=mysqli_connect($DB_URL,$DB_Uname,$DB_Password,$DB_Schema);

// Check connection
if (mysqli_connect_errno($con))
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}


?>

这将从用户名和密码文本字段中获取输入,并检查它们是否都存在于数据库中

        $sql="SELECT * FROM users WHERE Username='$_POST[Name]' && Password='$_POST[Password]';";
        $rs = mysqli_query($con,$sql);
        $data = mysqli_fetch_array($rs, MYSQLI_NUM);
    if($data[0] > 1)
     {
        echo "You are now logged in<br>";
    }
    else
    {
    die('Incorrect login or password or User Does not exist: ' . mysqli_error($con));
    }

2 个答案:

答案 0 :(得分:0)

在SQL中,您必须使用AND而不是&&

此外,您的代码可以通过SQL注入,使用PDO或参数化查询

答案 1 :(得分:0)

你有以下错误:

1-u在后期变量中没有使用引号

2-u在sql var

的末尾使用了双分号

3-u没有过滤帖子数据

4-better use and而不是&amp;&amp;

你应该在用户名和passowrd的后期变量中使用引号 在执行查询之前更好地适应你的变量 $ USERNAME = $ DB-&GT; real_escape_string($ _ POST [ '用户名']); $密码= $ DB-&GT; real_escape_string($ _ POST [ '密码']);

 $sql="SELECT * FROM users WHERE Username='$username' AND Password='$password'";