1

我不是很擅长 PHP,我有一个小问题。我一直在玩这个脚本

而且我一生都无法弄清楚如何回显登录用户的用户名。我尝试像这样打印会话的所有信息:

var_dump($_SESSION)

但我刚刚得到了散列密码和用户级 int。

有人可以在这里帮助我吗?我只想能够回显用户名。

4

5 回答 5

4

您必须将用户名存储在会话中才能在另一个页面加载时使用,目前脚本仅将这些值存储在会话中;

 $_SESSION['loggedin'] = $row[$this->pass_column];
 $_SESSION['userlevel'] = $row[$this->user_level];

您需要做的是添加$username到传递给login函数的会话中,如下所示;

$_SESSION['username'] = $username;

用户名现在将与密钥用户名一起存储在会话中。

为了能够在另一个页面上使用它,请确保在尝试使用它之前通过调用函数来启动会话session_start()

于 2013-05-20T20:42:24.667 回答
1

基本上,只要把它写在里面就好了

session_start();
echo $_SESSION['username']; 

或者

 echo $_SESSION['password'];

会话如何工作的简要说明。

首先,您启动会话并将任何值分配给会话 ex:

session_start();
$_SESSION['username'] = 'john';

然后回显的工作方式如下:

echo $_SESSION['username']; // will echo out 'jonh'

注意 session_start()必须在您要使用会话的页面之间共享

于 2013-05-20T20:40:02.040 回答
0

你有 session_start(); 在上面 ?

于 2013-05-20T20:39:50.987 回答
0

在登录功能中,您应该在成功登录后将用户名写入会话。

//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
    }
}
于 2013-05-20T20:49:02.043 回答
0
<?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();
?>
于 2016-02-01T08:26:15.260 回答