首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在php中制作具有管理员和不同用户的登录表单?

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

Stack Overflow用户
提问于 2014-08-29 18:24:38
回答 2查看 8K关注 0票数 0

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

这是我的密码

login.php

代码语言:javascript
复制
<?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";

?>

Testing.php

代码语言:javascript
复制
<?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;
?>

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

我怎样才能实现我的目标

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-29 18:31:00

代码语言:javascript
复制
$result=mysql_query("select * from login where role='$role'")or die(mysql_error);

这个查询将只显示第一个用户,不管是什么。

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

代码语言:javascript
复制
$_SESSION['user'];

,您将获得登录的用户名。

代码语言:javascript
复制
<?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'];
?>
票数 0
EN

Stack Overflow用户

发布于 2014-08-29 18:51:26

进入您的login.php代码

您需要通过在查询中添加eid来更新查询

代码语言:javascript
复制
$sql = 'SELECT role, eid from login WHERE username = "'.mysql_real_escape_string($UserName).'" AND password = "'.mysql_real_escape_string($PassWord).'" ';

如果找到了用户,您可以将eid和角色存储到会话中,而从不将密码存储到会话中。

代码语言:javascript
复制
$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代码

您不再需要访问数据库,只需检查您的会话即可获得

代码语言:javascript
复制
echo $_SESSION['userName'];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25574100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档