如何在php中使用管理员和不同的用户制作登录表单?

如何在php中使用管理员和不同的用户制作登录表单?,php,mysql,session,Php,Mysql,Session,Hi开发了一个管理员登录一个php用户登录页面,当我以管理员身份登录时,它工作得很好,当我以用户身份登录时,它在屏幕上总是给出相同的用户名,但在db中用户名始终不同 这是我的密码 login.php <?php include('conn.php'); if (isset($_POST['submit'])){ $UserName=$_POST['user']; $PassWord=$_POST['pass']; //echo $UserName; //echo $PassWord;

Hi开发了一个管理员登录一个php用户登录页面,当我以管理员身份登录时,它工作得很好,当我以用户身份登录时,它在屏幕上总是给出相同的用户名,但在db中用户名始终不同

这是我的密码

login.php

<?php
include('conn.php');
if (isset($_POST['submit'])){
$UserName=$_POST['user'];
$PassWord=$_POST['pass'];

//echo $UserName;
 //echo $PassWord;
$sql = "SELECT role from login WHERE username='$UserName'and password='$PassWord'";
//$sql=mysql_query("select usertype from login where username='$UserType' and password='$Password'")or die (mysql_error());//query sang database 
$retval = mysql_query($sql);
if(! $retval )
{
  die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{

 session_start();
                $_SESSION["user"]=$UserName;
                $_SESSION["pass"]=$PassWord ;
                $_SESSION['role']=$row['role'];
                $_SESSION['eid']=$row['eid'];
if ($row['role']==0){
 header("location:admin.php");
                        }
                        elseif ($row['role']==1) {
                       header("location:testing.php");
                        }

                        } 
}
echo "Invalid User Name and Password\n";

?>
<?php
include('conn.php');
session_start();
if (!isset($_SESSION['role'])){
header('location:index.php');
}
//
?>
<a href="logout.php">logout</a>
</br>
</br>
<?php
//mag show sang information sang user nga nag login
$role=$_SESSION['role'];
$eid=$_SESSION['eid'];
$result=mysql_query("select * from login where role='$role'")or die(mysql_error);
$row=mysql_fetch_array($result);
$UserName=$row['username'];
echo $UserName;
?>

我的问题是,当我以用户身份登录时,屏幕上会打印用户名

我怎样才能实现我的目标

提前谢谢

$result=mysql_query("select * from login where role='$role'")or die(mysql_error);
此查询将仅显示第一个用户,无论发生什么情况

您已经在会话中存储了用户名,所以只需回显即可

$_SESSION['user'];
您将获得登录的用户名

<?php
include('conn.php');
session_start();
if (!isset($_SESSION['role'])){
header('location:index.php');
}
//
?>
<a href="logout.php">logout</a>
</br>
</br>
<?php
//mag show sang information sang user nga nag login

echo $_SESSION['user'];
?>



输入您的login.php代码 您需要通过向查询中添加eid来更新查询

$sql = 'SELECT role, eid from login WHERE username = "'.mysql_real_escape_string($UserName).'" AND password = "'.mysql_real_escape_string($PassWord).'" ';
如果找到用户,您可以将eid和角色存储到会话中,并从不将密码存储到会话中

$query = mysql_query($sql) or die('Database error -> ' . mysql_error());  
if(mysql_num_rows($query)>0){
    $row = mysql_fetch_array($query)
    $_SESSION['userName'] = $row['username'];
}
进入Testing.php代码 您不再需要访问数据库,只需检查会话即可获得

echo $_SESSION['userName'];

您已经在login.php中执行了查询。将post数据发送到login.php后,会话变量$_session['user'];将包含您想要的信息。没有必要在testing.php中再次查询此实现中的安全性为零,因为您已经创建了许多危险的错误。一个更好的计划是使用一个像这样的带有一个实际上是安全的。