PHP获取会话用户名

时间:2014-05-05 13:02:33

标签: php session

我试图从会话中获取登录用户的用户名。我可以提醒用户的房间号码和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']; ?>';

2 个答案:

答案 0 :(得分:0)

我的建议是,将您的用户数据分配给会话数组并进行检索。那不会丢失你的数据

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

并确保在所有包含文件中加入session_start()

答案 1 :(得分:0)

尝试使用javascript提醒

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

或仅用php显示

echo "{$_SESSION['sess_id']} - {$_SESSION['sess_room']}";
相关问题