所以我正在搞乱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);
?>
答案 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更好地解决,因为向用户呈现错误不需要页面刷新。为了您的安心,这就是它的样子:
<强> 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>
请注意e.preventDefault
的使用,这意味着:不要执行提交按钮通常会执行的操作(换句话说,请勿提交)。我们手动控制提交。
这是我们使用javascript / jQuery手动提交的方式:$('#myForm').submit();
请注意,ID属性已添加到我需要引用的所有元素中。虽然可以将jQuery格式化为引用具有或不具有ID的元素,但这样做更容易,并且没有任何缺点(尽管您必须遵循所有元素必须使用唯一ID 的规则)
另请注意,不应使用单词submit
作为提交按钮的ID名称。这样做可能会在以后出现问题。