Php 登录脚本不工作,显示回显消息
我有一个用PHP编写的登录脚本。如果用户名或密码不正确,它将回显当前正在发生的“用户名或密码无效”(即使用户名和密码正确) 以下是我的PHP代码:Php 登录脚本不工作,显示回显消息,php,mysql,Php,Mysql,我有一个用PHP编写的登录脚本。如果用户名或密码不正确,它将回显当前正在发生的“用户名或密码无效”(即使用户名和密码正确) 以下是我的PHP代码: <form method="POST"> <input type="text" name="username"> <input type="password" name="password"> <input type="submit" name="submit"> </form> <
<form method="POST">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit" name="submit">
</form>
<?php
$con = mysqli_connect("localhost","dbuser","dbpass","dbname");
if(isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$username = mysqli_real_escape_string($con, $username);
$password = mysqli_real_escape_string($con, $password);
$logincheck = mysqli_connect($con, "SELECT * FROM `users` WHERE username='$username' and password='$password'");
$result = mysqli_query($con, $logincheck);
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
$count = mysqli_num_rows($result);
if($count == 1){
$_SESSION['login_user'] = $username;
header('Location: index.php');
}else{
echo "Username or password is invalid.";
}
}
?>
获取数据时出现一些错误,如果密码已加密,则可能会忘记使用md5,因此请首先确保
if(isset($_POST['submit']))
{
$con = mysqli_connect("localhost","root","","test");
$username = $_POST['username'];
$password = md5($_POST['password']);
$username = mysqli_real_escape_string($con, $username);
$password = mysqli_real_escape_string($con, $password);
$sql="SELECT * FROM users WHERE username='$username' and password='$password'";
$result=mysqli_query($con,$sql);
$row=mysqli_fetch_array($result,MYSQLI_ASSOC);
if(mysqli_num_rows($result) == 1)
{
$_SESSION['login_user'] = $username;
header('Location: index.php');
}
else
{
echo "Username or password is invalid.";
}
}
执行echo“从用户名='$username'和密码='$password'的用户中选择*代码>。将该行的结果直接复制并粘贴到MySQL中。那么,它会给它一个结果吗?如果有错误,它会给出什么错误?奇怪的是,你能不能echo$username
和echo$密码在分别从$\u POST['username']
和$\u POST['password']
分配这些变量之后立即执行code>。它能输出你所期望的吗?你不会接受它的,对吧?太棒了!您介意让我知道我的脚本有什么问题吗?您正在使用mysqli\u connect执行查询。你必须使用mysqli_query@PareshGami你为什么建议OP使用MD5?这是一种加密技术,我建议你使用它。作为密码存储功能使用它已经不安全了,所以请不要再建议它了,在这个世纪就不行了。也许在1993/95年,但不是今天。PHP5.5的函数或兼容性包(如果PHP<5.5)在建议MD5和将来可能给出的答案时,可能会招致反对票和/或(更多)批评。