使用管理员或用户php登录
我做了一个登录页面,这意味着我可以根据电子邮件和密码访问user.php或admin.php。 我有一个数据库(phpmyadmin),有2个用户。我添加了一个布尔字段“type”(0表示普通用户,1表示管理员) 以下是我的php代码:使用管理员或用户php登录,php,mysql,Php,Mysql,我做了一个登录页面,这意味着我可以根据电子邮件和密码访问user.php或admin.php。 我有一个数据库(phpmyadmin),有2个用户。我添加了一个布尔字段“type”(0表示普通用户,1表示管理员) 以下是我的php代码: <?php session_start(); $mysqli = new mysqli("localhost", "root", "", "database"); if ($mysqli->connect_errno) { echo "Ech
<?php
session_start();
$mysqli = new mysqli("localhost", "root", "", "database");
if ($mysqli->connect_errno) {
echo "Echec lors de la connexion à MySQL : (".$mysqli->connect_errno.") ".$mysqli->connect_error;
}
if (isset($_POST['submit'])) {
$email = $_POST['email'];
$password = $_POST['password'];
if ($email == "" || $password == "") {
echo '<div id ="errormsg">Please fill in all fields</div>';
} else {
$query = mysqli_query(
$mysqli,
"SELECT * FROM client WHERE email = '$email' and password = '$password' and type = 1 "
) or die ("Can't query the database");
$count = mysqli_num_rows($query);
if ($count == 1) {
if ($type == 1) {
$_SESSION['email'] = $email;
header("location: admin.php");
} else {
if ($type == 0) {
$_SESSION['email'] = $email;
header("location: user.php");
} else {
echo '<div id="errormsg">No matches, try again</div>';
}
}
}
}
}
我认为$type
不是if语句的有效代码,如果工作,请尝试$email,如果有许多用户,请尝试再次选择并验证该用户是管理员还是admin.php
、user.php
或login.php
的用户,以确定用户名和密码是否错误
<?php
session_start();
$mysqli = new mysqli("localhost", "root", "", "database");
if ($mysqli->connect_errno) {
echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
if (isset($_POST['submit']))
{
$email = $_POST['email'];
$password = $_POST['password'];
if( $email == "" || $password == "")
{
echo '<div id ="errormsg">Please fill in all fields</div>';
}
else
{
$query = mysqli_query($mysqli, "SELECT * FROM client WHERE email = '$email'
and password = '$password' and type = 1 ") or die ("Can't query the database");
$count = mysqli_num_rows($query);
if($count == 1)
{
if ($email == 'admin@email.com')
{
$_SESSION['email'] = $email;
header("location: admin.php");
}
else if ($email == 'user@email.com')
{
$_SESSION['email'] = $email;
header("location: user.php");
}
else
{
echo '<div id="errormsg">No matches, try again</div>';
}
}
}
}
?>
您的查询失败,您需要检查真正的错误。“无法查询数据库”对您没有帮助。此错误消息的详细信息是什么?您好,欢迎使用SO。访问以了解有关SQL注入以及如何防止它们的更多信息。您编码的方式(直接在查询中发布)根本不安全!你的数据库可能在几秒钟内被黑客入侵。您是否启用了错误报告?在文件ini\u集的顶部尝试这些行('display\u errors',1);ini设置(“显示启动错误”,1);错误报告(E_全部)代码>2。您是否尝试过打印($count)
要查看它是否为空?另外,在查询中,您应该将type==1
替换为type=1
,谢谢标记此操作成功!但我希望数据库中存在的用户能够连接并重定向到user.php,管理员不仅要连接到admin.phpuser@email.com及admin@email.com