PHP获取会话用户名

PHP获取会话用户名,php,session,Php,Session,我正在尝试从会话中获取登录用户的用户名。我可以通知用户的roomnumber和id,但不能通知用户名 存储代码: session_start(); $con = DbConnect(); if (isset($_POST)) { $username = $_POST['username']; $pwd = $_POST['password']; $sql = 'select id, username, password, roomNr from r

我正在尝试从会话中获取登录用户的用户名。我可以通知用户的roomnumber和id,但不能通知用户名

存储代码:

session_start();
$con = DbConnect();
if (isset($_POST)) {
$username = $_POST['username'];
$pwd = $_POST['password'];                        
$sql = 'select id, username, password, roomNr from room where username = "' .$username. '"';
$result = mysqli_query($con, $sql);
$count = mysqli_num_rows($result);
$userData = mysqli_fetch_array($result, MYSQLI_ASSOC);

if ($count == 1) {
    session_regenerate_id();
    $_SESSION["sess_id"] = $userData['id'];
    $_SESSION["sess_username"] = $userData['username'];
    $_SESSION["sess_room"] = $userData['roomNr'];
    session_write_close();
    header("location: ../main_page.php");
} else {
    header('index.php');
}
用于检索的代码:

echo $_SESSION['sess_username'];
注意:这只是一个快速测试,看看我是否能解决这个特殊问题。我不打算在最终产品中使用上述代码

解决方案:问题不在于php,而在于如何在脚本标记中使用变量

工作解决办法:

var user = '<?php echo $_SESSION['sess_username']; ?>';
var user='';

我的建议是,将用户数据分配到会话数组并检索。这不会丢失你的数据

     session_start();
     session_regenerate_id();
     $_SESSION["user_data"] = $userData;
     session_write_close();

并且还要确保您在所有包含文件中都包含了
session\u start()

尝试使用javascript发出警报

echo "<script type='text/javascript'>alert('{$_SESSION['sess_id']} - {$_SESSION['sess_room']}');</script>";

确保您有
session_start()
在两个页面的开头,检查
$userData['username']
是否包含值。从何处获取变量
$username
?这可能是最重要的事情,这里没有提到。@ICanHasCheezburger我有session_start();两者都有。如前所述,我可以以同样的方式提醒id和房间。@MichaelBerkowski,我已经编辑了我的问题,以包括您所问的问题。如果您的问题得到解决,请接受其中一个答案,而不是在问题标题中加上“已解决”。我有,而且有效,只是sess_用户名没有:)@Simen_257,如果它对你有用,就把它标记为正确答案。好吧,它不起作用。正如我所说的,问题是我无法获取['sess_username'],['sess_id']和['sess_room']不是问题所在,请尝试
var_转储($\u会话)
查看在$\u会话上注册的内容。它不打印任何内容,我想这很糟糕?我不确定我是否理解您的意思。如何以这种方式获取用户名的特定值?在分配数据打印并查看
$\u会话[“用户数据”]
后,这将打印出来:testfunction Array()[native code]}
echo "{$_SESSION['sess_id']} - {$_SESSION['sess_room']}";