我是PHP和mysql的新事物。我试图制作一个登录系统,但我被卡住了,无法弄清楚我做错了什么。
我让它工作过一次,但后来我添加了一些更多功能,现在我无法再让它工作了。这是代码:
<?php
session_start();
error_reporting(E_ALL ^ E_NOTICE ^ E_ERROR ^ E_WARNING);
require('./pages/connections.php');
if ($con){
if($_SERVER["REQUEST_METHOD"] == "POST")
{
mysqli_set_charset($con,"utf8");
$username=mysqli_real_escape_string($con,$_POST['username']);
$password=mysqli_real_escape_string($con,$_POST['password']);
$sql_query="SELECT Username FROM user WHERE Username='$username' and Password='$password'";
$result=mysqli_query($con,$sql_query);
$row=mysqli_fetch_array($result,MYSQLI_ASSOC);
$count=mysqli_num_rows($result);
if($count == 1)
{
$_SESSION['login_user']=$username;
header("location: home.php");
}
else
{
echo '<div class="center-block" name="errormsgphp" id="errormsgphp">Invalid username or password.</div>';
}
}
}
else
echo '<div class="center-block" name="errormsgphp" id="errormsgphp">Error with database connection.</div>';
?>
它不断将我从if($count == 1)
又名扔到 else 循环。 无法从数据库中找到对吗?
我几乎 100% 确定数据库格式正确且正常工作,因为我可以在那里注册用户,并且我早一点就让这个登录名工作了。如果有人能发现我的错误,那么我会很高兴!提前谢谢。
尝试这样做,希望对您有所帮助
$sql = "SELECT email, password, status FROM agent_register WHERE email='".$email_input."' && password='".$password_input."' && status = 1 ";
$result = mysql_query($sql);
$row = mysql_num_rows($result);
if($row > 0){
$details = mysql_fetch_assoc($result);
$_SESSION['flag'] = true;
echo "<pre>"; print_R($details);
}
好的,
我现在让它工作,但绝对不知道出了什么问题。我只是保持ctrl + z如此之多,以至于我找到了工作的早期部分。唯一的区别是我使用了较早的if($count==1)
而不是if($count == 1)
。也许是那个或我的xampp在惹我什么的......但仍然感谢所有回复!