SESSION变量不会继续下一页

时间:2016-06-07 21:58:10

标签: php mysql

即使我搜索过了论坛,但我没有获得会话变量来继续下一页。

每个页面都有session_start()。每个标题后面都有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) { }

2 个答案:

答案 0 :(得分:0)

除了您容易受到SQL注入攻击(通过准备语句,绑定值并执行它们可以预防)

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

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

答案 1 :(得分:0)

毕竟这是一个简单的解决方案......对于那些被SESSION变量丢失的人而言!

标题上的

要小心.....从标题中删除www

e.g。 会话问题     标题('Location:http://www.website.php'); 会话修复     标题('位置:http://website.php');

这就是它的全部内容。