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