这里是我的HTML代码,它总是说错误的用户名和密码,虽然我从数据库中获取数据,因此注册用户'用户名和密码。但仍然没有工作。并且必须使用cookie来完成它。
<div class="container" id="driver" style="margin-top: 10%;">
<h2>Авторизация</h2>
<div class="col-lg-4">
<p><?php if($check == false ){ echo "Wrong password or login!"; } ?></p>
<form method="POST" action="">
<div class="form-group">
<label for="user">Имя пользователя:</label>
<input type="text" class="form-control" id="user" placeholder="Ваше имя пользователя" name="name" required>
</div>
<div class="form-group">
<label for="pwd">Пароль:</label>
<input type="password" class="form-control" id="password" placeholder="Ваш пароль" name="password" required>
</div>
<button type="submit" class="btn btn-warning" name="login" style="background-color: #e6c300;">Войти</button>
</form>
</div>
</div>
这里是PHP登录代码
<?php
include 'config.php';
include 'navbar.php';
if(isset($_COOKIE["taxi"]))
{
header("location:index.php");
}
$check = true;
if(isset($_POST['login'])){
$name = $_POST['name'];
$password = $_POST['password'];
$query = mysqli_query($con, "SELECT * FROM `driver` WHERE username='$name'");
$user_data = mysqli_fetch_array($query, MYSQLI_BOTH);
$a = var_dump($user_data);
echo $a;
if($user_data['password'] == $password){
setcookie('taxi', $name);
header("Location: index.php");
}
else{
$check = false;
}
}
&GT;
我的导航栏用于定义登录和注册或退出
<?php
if (isset($_GET['SignOut'])) {
if(isset($_COOKIE['taxi'])){
setcookie('taxi', '' , time() - 3600);
unset($_COOKIE['taxi']);
}
}
if(isset($_COOKIE['taxi']))
{
echo '<a href="index.php?SignOut" name="SignOut" id="SignIn"><p style="color:white; margin-top:15px;">Log Out</p></a>' ;
}
else {
echo
'<li class="nav-links"><a href="signup.php" style="color: white;"><span class="glyphicon glyphicon-user" style="color: white;"></span> Register</a></li>
<li class="nav-links"><a href="login.php" style="color: white;"><span class="glyphicon glyphicon-log-in" style="color: white;"></span> Login</a></li>';
}
?>
答案 0 :(得分:-1)
检查var_dump($user_data);
的结果,并确保$user_data['password']
是否有值。
或者只是您可以跳过所有这些复杂的事情并将sql命令更改为
$query = mysqli_query($con, "SELECT * FROM `driver` WHERE username='$name' AND password='$password'");'
然后检查mysqli_num_rows($query) == 1
。通过这种方式,您可以确定输入的用户名密码是正确的(由sql命令检查),并且通过检查
if(mysqli_num_rows($query) == 1){
// There is a user with valid credentials
setcookie('taxi', $name);
header("Location: index.php");
}else {
$check = false;
}
希望这有帮助