MySQL检查行

时间:2014-01-13 18:30:23

标签: php mysql sql

所以我正在搞乱PHP和MySQL,我目前有一个数据库:

id | username | password

在其中,我想知道是否有办法检查输入的用户名是否与同一行/ ID上的密码相同(ID是自动递增的)

<form action="login.php" method="get">
    login > 
    <input name="log_username" type="text" />
    <input name="log_password" type="password" />
    <input id="submit" type="submit" />
</form>

我知道它可能,但我 - 我自己作为SQL和PHP的新手无法弄清楚^^'

先谢谢

编辑:

对于那些感兴趣的人,这是我目前的注册码(工作非常出色)

    <?php
$con=mysqli_connect(###########);
    // Check connection
    if (mysqli_connect_errno()) {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

$sql="INSERT INTO users (username, password)
    VALUES ('$_POST[reg_username]','$_POST[reg_password]')";

    if (!mysqli_query($con,$sql)) {
        die('Error: ' . mysqli_error($con));
    }
    echo "1 record added";
    mysqli_close($con);
?>

3 个答案:

答案 0 :(得分:0)

SELECT * FROM users WHERE username = :username AND password = :password

其中password是他们提交的密码的加密版本,因为您完全要重写它以加密密码,并使用预准备语句来删除您的SQL注入漏洞。

创建用户登录系统是一件很常见的事情,你可以在这个主题上找到数以千计的教程,我建议你做一些基础研究。

答案 1 :(得分:-1)

if ((isset($_GET['log_username']) && $_GET['log_username'] != "") && (isset($_GET['log_password']) && $_GET['log_password'] != "")
{
    $link = mysql_connect("localhost", "mysql_user", "mysql_password");
    mysql_select_db("database", $link);

    $query = "SELECT * FROM users WHERE username = " . $_GET['log_username'] . " AND password = " . $_GET['log_password'];
    $result = mysql_query($query);
    if (mysql_num_rows($result) < 1)
        echo("No record found");
}

这是最简单的方法,但我建议您使用PDO,因为不推荐使用mysql_query。

答案 2 :(得分:-1)

虽然您已经请求了PHP解决方案,但实际上这可能会通过一些javascript / jQuery更好地解决,因为向用户呈现错误不需要页面刷新。为了您的安心,这就是它的样子:

jsFiddle Demo

<强> HTML:

<form id="myForm" action="login.php" method="get">
    login > 
    <input id="log_username" name="log_username" type="text" />
    <input id="log_password" name="log_password" type="password" />
    <input id="mySubmit" type="submit" />
</form>

<强> jQuery的:

$('#mySubmit').click(function(e) {
    e.preventDefault();
    var un = $('#log_username').val();
    var pw = $('#log_password').val();
    if ( un == pw ) {
        alert('Sorry, username/password cannot be identical');
    }else{
        $('#myForm').submit();
    }
});

备注:

上面的代码使用jQuery,所以你必须引用jQuery库,通常在<head>标签中,如下所示:

<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>

  1. 请注意e.preventDefault的使用,这意味着:不要执行提交按钮通常会执行的操作(换句话说,请勿提交)。我们手动控制提交。

  2. 这是我们使用javascript / jQuery手动提交的方式:$('#myForm').submit();

  3. 请注意,ID属性已添加到我需要引用的所有元素中。虽然可以将jQuery格式化为引用具有或不具有ID的元素,但这样做更容易,并且没有任何缺点(尽管您必须遵循所有元素必须使用唯一ID 的规则)

  4. 另请注意,不应使用单词submit作为提交按钮的ID名称。这样做可能会在以后出现问题。