我正在尝试使用php创建登录系统。我想要创建的是有一个页面,询问用户名,密码,电子邮件。然后,当用户填写字段以转到下一页,其中将要求用户输入他的用户名和密码以便登录系统。而且,我创造了一些东西,但是工作不正常。表单已正确提交,我将数据接收到我的数据库中,但当用户尝试登录系统时,它只允许注册的LAST用户使用他的凭据登录系统。对于已注册的所有其他用户,登录也不起作用。请有人帮忙解决这个问题吗?
感谢。
我的HTML和PHP代码:
<div class="container">
<div class="row">
<div class="col-xs-12">
<h2>Please sign in with your username<br>
and password to complete the form... Thanks!!!</h2>
<form method="post" action="success.php">
<?php
if(isset($_POST['login'])) {
$username = $_POST['user_username'];
$password = $_POST['user_password'];
$query = "SELECT * FROM users_info";
$result = mysqli_query($connection, $query);
while($row = mysqli_fetch_assoc($result)) {
$db_username = $row['user_username'];
$db_password = $row['user_password'];
}
if($username !== $db_username) {
echo "Username does not exist";
}else if ($password !== $db_password) {
echo "Password does not exist";
}else {
header("Location: form.php");
}
}
?>
<div class="form-group">
<label for="user_username">Enter Username</label>
<input type="text" name="user_username" class="form-control" required>
</div>
<div class="form-group">
<label for="user_username">Enter Password</label>
<input type="password" name="user_password" class="form-control" required>
</div>
<div class="form-group">
<input type="submit" name="login" value="Log In" class="btn btn-success">
</div>
</form>
</div>
</div>
</div>
答案 0 :(得分:1)
您必须在循环中使用条件。因为你所做的是错的。请联系更多PHP基础知识和一些基本登录系统。
您的SQL查询应如下所示:
$query = "SELECT * FROM users_info WHERE user_username ='". mysqli_real_escape_string(CONNECTION_VAR, $username). "' AND user_password ='". mysqli_real_escape_string(CONNECTION_VAR, $password ). "' LIMIT 1";
CONNECTION_VAR - your connection id to the database
所以你只得到一行,如果它匹配(密码和用户名)。您可以像这样轻松获取它:
$row = mysqli_fetch_assoc($result);
因此,您可以使用$row
中的数据。
但请注意以下事项:
还要学习如何使用mysql类。
简单登录/注册系统:http://codingcyber.com/simple-user-registration-script-in-php-and-mysql-84/ - 但请记住散列或腌制密码。在查询中使用数据之前也要避开everthing!
答案 1 :(得分:0)
您需要限制查询以仅提取尝试登录的用户信息。注意,这并不包括有关SQL安全性或错误报告的传入注释。我强烈建议你进行错误检查以查看获取的结果是否为空,然后继续前进。
<div class="container">
<div class="row">
<div class="col-xs-12">
<h2>Please sign in with your username<br>
and password to complete the form... Thanks!!!</h2>
<form method="post" action="success.php">
<?php
if(isset($_POST['login'])) {
$username = $_POST['user_username'];
$password = $_POST['user_password'];
//Fetch matching user data
$query = "SELECT * FROM users_info WHERE user_username = '$username' AND user_password = '$password'";
$result = mysqli_query($connection, $query);
while($row = mysqli_fetch_assoc($result)) {
$db_username = $row['user_username'];
$db_password = $row['user_password'];
}
if($username !== $db_username) {
echo "Username does not exist";
}else if ($password !== $db_password) {
echo "Password does not exist";
}else {
header("Location: form.php");
}
}
?>
<div class="form-group">
<label for="user_username">Enter Username</label>
<input type="text" name="user_username" class="form-control" required>
</div>
<div class="form-group">
<label for="user_username">Enter Password</label>
<input type="password" name="user_password" class="form-control" required>
</div>
<div class="form-group">
<input type="submit" name="login" value="Log In" class="btn btn-success">
</div>
</form>
</div>
</div>
</div>