php - SESSION 变量不会继续到下一页

标签 php mysql

尽管我已经搜索和论坛,但我无法获得 session 变量以继续下一页。

每个页面都有session_start()。每个 header 后面都有 exit()

如果我添加一个新成员,SESSION 变量就可以了。 但是当我登录时,SESSION 变量在登录后丢失

这是登录页面的代码。除了 SESSION 变量无法解析到下一页之外,一切正常。我缺少什么? 哦,代码有点乱,有点像我的工作站

<?php
    session_start();

    //Connection to DB in the usual way with check to DB

    $myusername = $_POST['myusername'];
    $mypassword = $_POST['mypassword'];

    //hacking protection in the usual way

    $sql = "SELECT * FROM table WHERE `u_password` = '$mypassword' AND `user` = '$myusername' ";

    $result  = mysqli_query($mdb, $sql);
    $row     = mysqli_fetch_array($result, MYSQLI_ASSOC);
    $count   = mysqli_num_rows($result);
    $ls      = "Online";
    $datenow = date("Y-m-d H:i:s");
    $id      = $row['id'];

    $usql = "UPDATE addnewmbr SET loggedstatus = '$ls', logindate = '$datenow'        WHERE id = '$id'";
    if (mysqli_query($mdb, $usql)) {
        $_SESSION["user_id"] = $row['id']; //this variable is lost on next page
        $_SESSION["user"]    = $row['user']; //this variable is lost on next page
        $_SESSION["gender"]  = $row['gender']; //this variable is lost on next page
        if ($_SESSION['gender'] == "man") {
            header('Location: newpage.php');
            exit(); // the redirection $_SESSION['gender'] works so the variable is set
        } else {
            header('Location: anotherpage.php');
            exit();
        }
    } else {
        header('Location: back to indexpage.html');
        exit();
    }
?>

anotherpage.php

<?php
session_start();
echo $_SESSION["user"];
?>

测试页面上 Vardump 后此页面上的结果

array(0) { }

最佳答案

除了容易受到 SQL 注入(inject)攻击之外(可以通过准备语句、绑定(bind)值并执行来预防)

为什么将 $_SESSION["user"] 设置为等于 $row['user'] 而不是 $myusername

在这种情况下,它们是相同的,因为您获取 user = $myusername 的行 不确定这是否能解决任何问题。

关于php - SESSION 变量不会继续到下一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37690109/

相关文章:

php - Javascript onClick clear 在 php echo 中不起作用

javascript - PHP 中的表单自动刷新 DIV 标记不起作用

mysql - 两个索引条目之间的行?

MySQL 5.6 选择月份和日期

PHP 创建的 Excel 工作表在打开时会出错

php - 在 PHP SQL 上复制表时出现问题

php - 如何调用validation.php中编写的函数并将所有函数名称存储在数据库中

php - 如何在php mysql提交表单中停止自动乘法

php - MySQL 收集结果而不考虑空格

c# - 使用 MySqlDataReader 无法正确查询