【问题标题】:$_SESSION variables returning r$_SESSION 变量返回 r
【发布时间】:2018-09-07 05:13:01
【问题描述】:

我有一个文件,用于传递 $_SESSION 的数据库内容

$uid = mysqli_real_escape_string($conn, $_POST['uid']);
$pwd = mysqli_real_escape_string($conn, $_POST['pwd']);
$sql = "SELECT * FROM users WHERE user_uid = '$uid' OR user_email = '$uid'";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result)
$_SESSION['u_id'] = row['user_id'];
$_SESSION['u_first'] = row['user_first'];
$_SESSION['u_last'] = row['user_last'];
$_SESSION['u_email'] = row['user_email'];
$_SESSION['u_uid'] = row['user_uid'];
header("Location: ../index.php?login=sucess");

在我的头文件中,我使用附加到 index.php 的 session_start() 开始我的会话

<?php
include_once 'header.php';
?>

<section class="main-container">
    <div class="main-wrapper">
        <h2>Home</h2>
        <?php
            if (isset($_SESSION['u_id'])) {
                echo "Bem-vindo!";
                print_r($_SESSION);
            }
        ?>
    </div>
</section>

<?php
    include_once 'footer.php';
?>

这就是发生的事情: enter image description here

所以看起来我的数组都充满了“r”,我真的不知道为什么,有什么想法吗?

【问题讨论】:

  • 好奇吗?你在任何地方都有session_start() 吗?
  • 是的,我们的想法是将它用于网站的每个页面。没有必要吗?
  • 我只是没看到,虽然我确实忘记了 'r' 意味着你忘了在前面放一个 $

标签: php arrays session


【解决方案1】:

请更新$row 而不是row

示例

$_SESSION['u_id'] = row['user_id'];

替换为

$_SESSION['u_id'] = $row['user_id'];

对于所有变量。

【讨论】:

    【解决方案2】:
    $uid = mysqli_real_escape_string($conn, $_POST['uid']);
    $pwd = mysqli_real_escape_string($conn, $_POST['pwd']);
    $sql = "SELECT * FROM users WHERE user_uid = '$uid' OR user_email = '$uid'";
    $result = mysqli_query($conn, $sql);
    $row = mysqli_fetch_assoc($result)
    
    session_start(); // You need to this function
    
    $_SESSION['u_id'] = $row['user_id'];
    $_SESSION['u_first'] = $row['user_first'];
    $_SESSION['u_last'] = $row['user_last'];
    $_SESSION['u_email'] = $row['user_email'];
    $_SESSION['u_uid'] = $row['user_uid'];
    header("Location: ../index.php?login=sucess");
    

    【讨论】:

    • 您在row['user_id']; this 之前缺少$ 签名。
    【解决方案3】:

    因为您错过了 $row 变量。应该像$row['user_id']

    $_SESSION['u_id'] = $row['user_id'];
    $_SESSION['u_first'] = $row['user_first'];
    $_SESSION['u_last'] = $row['user_last'];
    $_SESSION['u_email'] = $row['user_email'];
    $_SESSION['u_uid'] = $row['user_uid'];
    

    【讨论】:

      猜你喜欢
      • 2020-10-18
      • 1970-01-01
      • 1970-01-01
      • 2020-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-29
      • 1970-01-01
      相关资源
      最近更新 更多