[英]Problems with a PHP login for Admin
我的代码有问题,我的登录可以正常运行,但是当我以admin@admin.com的身份登录时,我希望它显示从mysql数据库注册到网站的用户列表。 我的代码显示了为该网站注册的用户列表,但它为现在登录的每个人(而不只是管理员)显示了该列表。 谁能看到我想念的东西? 谢谢。 下面的代码。
<?php
session_start();
$mysql_hostname = 'localhost';
$mysql_user = 'username';
$mysql_password = 'password';
$mysql_database = 'db_users2015';
$connect = mysql_connect($mysql_hostname, $mysql_user, $mysql_password)
or die ("Couldn't connect");
echo "<BR>Connection Successful";
//to put data into database
//select database
$db_selected= mysql_select_db($mysql_database, $connect)
or die ("Couldn't connect to the database");
//frontend and backend data processing
$email= $_POST['email'];
$password= $_POST['password'];
//to check for admin
$sql= "SELECT * FROM users WHERE email= 'admin@admin.com' and password= 'password'";
$sql_result = mysql_query($sql);
{echo
$query = mysql_query("SELECT email FROM users");
echo '<table>';
while($rowtwo = mysql_fetch_array($query)){
echo '<tr>
<td>' .$rowtwo['email'].'</td>
</tr>';
}
echo '</table>';
}
//To see if email is registered
$sql = "SELECT COUNT(*) FROM users WHERE email= '{$_POST['email']}'";
$sql_result = mysql_query($sql);
if (mysql_result($sql_result, 0)<1)
{
die("<BR>Email address not found");
}
else{
echo "Login Successful!";
}
//To check if email and password match
$result = mysql_query("SELECT * FROM users WHERE email = '$email' AND
password ='$password' LIMIT 1");
if(mysql_num_rows($result) > 0){
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$firstname = $row["firstname"];
$lastname = $row["lastname"];
echo "<BR>Welcome back, ";
echo $firstname;
echo " ";
echo $lastname;
}else{
echo 'wrong password/username combo';
}
?>
您需要创建一个实际的条件。
$result = mysql_query($sql);
if( $result->num_rows == 1 ) {
//show list
}else {
//not authorized
}
您正在找到具有管理员电子邮件地址的用户记录,但是您没有将它与刚刚登录的用户进行比较。我在表代码周围看到花括号,但没有if语句。
我建议设置某种身份验证组。
因此,如果登录的用户是admin组的成员,那么他们将看到类似于admin的内容,同样,sites users组中的某个人也会看到site用户的内容,依此类推...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.