我目前正在使用注册/登录系统。您可以注册的部分已完全正常工作并完成。登录部分快要完成了,还剩下一个问题:
我正在编写一个代码,检查在<input>
中键入的密码是否等于SQL数据库的密码。这是我尝试过的:
if($password == "SELECT password FROM users WHERE username = '$username'")
这不起作用,因为程序将密码与“ SELECT .....”而不是数据库本身中的密码进行比较。
有人知道我如何制作该程序,以便将其与数据库中的密码进行比较,而不与文本“ SELECT password ...”进行比较吗?
谢谢
答案 0 :(得分:2)
您仅使用字符串,您需要将该字符串发送到mysql查询,并返回行;
这有点复杂,可以使用加密密码
$sql = 'SELECT * FROM users WHERE email="'.$link->real_escape_string($_POST['email']).'"';
$set = $link->query($sql); $num = $set->num_rows; list($id,$email,$pwd,$token ) = $set->fetch_row();
if ($num == 0) {
echo json_encode([0,'ERROR: This user doesn't exist']); die();
} else if ( $pwd != '#'.md5($_POST['password'].$token) ) {
echo json_encode([0,'ERROR: Wrong password']); die();
} else {
setcookie("UserID", $id, time()+3600,'/'); /* expire in 1 hour */
setcookie("token", $token, time()+3600,'/');
echo json_encode([1,'SUCCESS: Logged in successfully']); die();
}
答案 1 :(得分:0)
要回答这个特定问题,您应该使用类似以下内容的东西:
if(isset($_POST['user_name') && isset($_POST['user_pass'])){
$user_name = $_POST['user_name'];
$user_pass = $_POST['user_pass'];
,对于PHP,您将要使用form method="POST"
和<p>User Name</p><input type="text" name="user_name" />
等
答案 2 :(得分:0)
亲爱的,您的查询是错误的。 同样,您没有显示代码,但是正在使用 PDO(PHP门户数据对象)。
根据下面的代码调整数据库名称,用户名和密码。以下是您的操作方法。让我知道我还有什么可以为您做的...
更新的php代码
<?php
$db = new PDO (
'mysql:host=localhost;dbname=Testing_db;charset=utf8',
'root', // username
'' // password
);
// assuming the username and password is coming from a form input
$username = strip_tags($_POST['username']);
$password = strip_tags($_POST['password']);
if ($username == ''){
echo "username is empty";
exit();
}
if ($password == ''){
echo "Password is empty";
exit();
}
$result = $db->prepare('SELECT * FROM users where username = :username and password = :password');
$result->execute(array(
':username' => $username, ':password' => $password));
$count = $result->rowCount();
$row = $result->fetch();
if( $count == 1 ) {
echo "login sucessful";
// Redirect me to a Dasboard.php to display the login user
//echo "<script>window.location='dashboard.php'</script>";
$username = htmlspecialchars($row['username']);
echo "userame: $username </br>";
}
else {
echo "<font color=red>Either Username or Password is Wrong</font>";
}
?>
更新的代码。
按如下所示创建数据库并将其插入。尝试使用插入的用户帐户。命名php文件,例如 login.php 。请使用上面的我的php代码
尝试一下,它将起作用
create table users (id int primary key auto_increment, username varchar(30), password varchar(30));
insert into users(username,password)values('test','test123');
这是您的表格
<form method="post" action="login.php">
username: <input type="text" name="username" id="username"><br>
password: <input type="text" name="password" id="password"><br>
<input type="submit" value="submit">
</form>