【问题标题】:$_SESSION['id'] is null [duplicate]$_SESSION['id'] 为空 [重复]
【发布时间】:2016-04-21 17:44:24
【问题描述】:

我正在尝试在 php 脚本中更新密码,但是 $_SESSION['id'] 为空。这通过 var_dump 函数显示。因此我无法更新它

<?php
session_start();
require "../init.php";
ini_set('display_errors', 1);


if(isset($_POST['update'])){
    $password = $_POST['user_pass'];
    $passwordEncrypted = sha1($user_pass); 

    $confpassword = $_POST['confirm_pass'];
    $confPasswordEncrypted = sha1($confirmPass);  
    if($password !== $confpassword){
       echo "Passwords don't match!";
    }else{
        $select_query = "SELECT id FROM user_info";
        $run_select_query = mysqli_query($con,$select_query); 
        while ($row_post=mysqli_fetch_array($run_select_query)){

            $_SESSION['id'] = $row['id'];
            $user_id = $_SESSION['id'];
            var_dump($user_id);

        }

        $update_posts = "UPDATE user_info SET user_pass='$passwordEncrypted',confirm_pass ='$confPasswordEncrypted' WHERE id='$user_id'";  
        $run_update = mysqli_query($con,$update_posts); 
        echo "<script>alert('Post Has been Updated!')</script>";
    }

}
?>

有什么想法吗?谢谢。

【问题讨论】:

  • while ($row_post 然后查看$row['id'] ;-) 错误的变量和错误报告php.net/manual/en/function.error-reporting.php 会发出未定义变量的信号。
  • 哎呀。一个简单的错字花了我这么长时间!谢谢!
  • 不客气,西奥。

标签: php mysql session


【解决方案1】:

您在为session 变量赋值时使用了错误的变量$row

while ($row_post=mysqli_fetch_array($run_select_query)){
    $_SESSION['id'] = $row_post['id'];
    $user_id = $_SESSION['id'];
    var_dump($user_id);
}

【讨论】:

  • 是的,我也说过,在此之前 2 分钟
  • @Fred-ii-:当你对此发表评论时,我正在写答案:)
  • @Fred-ii- :如果你愿意,我可以以任何方式删除答案,而不是贪婪的repu:D
  • 这取决于你,我不会强迫你;-)
  • 让我对该答案进行一些改进,以便提供更多知识
猜你喜欢
  • 2016-06-20
  • 2020-04-03
  • 1970-01-01
  • 2021-06-24
  • 2011-07-01
  • 1970-01-01
  • 2012-01-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多