我不是很擅长 PHP,我有一个小问题。我一直在玩这个脚本。
而且我一生都无法弄清楚如何回显登录用户的用户名。我尝试像这样打印会话的所有信息:
var_dump($_SESSION)
但我刚刚得到了散列密码和用户级 int。
有人可以在这里帮助我吗?我只想能够回显用户名。
我不是很擅长 PHP,我有一个小问题。我一直在玩这个脚本。
而且我一生都无法弄清楚如何回显登录用户的用户名。我尝试像这样打印会话的所有信息:
var_dump($_SESSION)
但我刚刚得到了散列密码和用户级 int。
有人可以在这里帮助我吗?我只想能够回显用户名。
您必须将用户名存储在会话中才能在另一个页面加载时使用,目前脚本仅将这些值存储在会话中;
$_SESSION['loggedin'] = $row[$this->pass_column];
$_SESSION['userlevel'] = $row[$this->user_level];
您需要做的是添加$username
到传递给login
函数的会话中,如下所示;
$_SESSION['username'] = $username;
用户名现在将与密钥用户名一起存储在会话中。
为了能够在另一个页面上使用它,请确保在尝试使用它之前通过调用函数来启动会话session_start()
。
基本上,只要把它写在里面就好了
session_start();
echo $_SESSION['username'];
或者
echo $_SESSION['password'];
首先,您启动会话并将任何值分配给会话 ex:
session_start();
$_SESSION['username'] = 'john';
然后回显的工作方式如下:
echo $_SESSION['username']; // will echo out 'jonh'
注意 session_start()
必须在您要使用会话的页面之间共享
你有 session_start(); 在上面 ?
在登录功能中,您应该在成功登录后将用户名写入会话。
//instantiate if needed
include("class.login.php");
$log = new logmein();
$log->encrypt = true; //set encryption
if($_REQUEST['action'] == "login"){
if($log->login("logon", $_REQUEST['username'], $_REQUEST['password']) == true){
//do something on successful login
$_SESSION['username'] = $_REQUEST['username'];
}else{
//do something on FAILED login
}
}
<?php
include('db.php');
session_start();
$name=$_POST['name'];
$password=$_POST['password'];
echo $sql="SELECT * FROM register WHERE (name='$name' OR email='$name') AND password='$password'";
$result=mysqli_query($conn,$sql);
$num_rows = mysqli_num_rows($result);
if ($num_rows > 0)
{
$_SESSION['user']=mysqli_fetch_assoc($result);
$row = $_SESSION['user'];
$role = $row['role'];
if($role == 1)
{
header('location:usermanagement.php');
}
else{
header('location:user.php');
}
}
else
{
echo "Wrong Username or Password";
header('location:login.php');
}
$conn->close();
?>