如何在php中使用管理员和不同的用户制作登录表单?
Hi开发了一个管理员登录一个php用户登录页面,当我以管理员身份登录时,它工作得很好,当我以用户身份登录时,它在屏幕上总是给出相同的用户名,但在db中用户名始终不同 这是我的密码 login.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;
<?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中再次查询此实现中的安全性为零,因为您已经创建了许多危险的错误。一个更好的计划是使用一个像这样的带有一个实际上是安全的。