首页 > 解决方案 > 通过带有 PDO 页面的会话变量将登录 ID 传递到另一个页面

问题描述

使用 pdo 登录后,我无法通过 SESSION 变量传递登录 ID。

这是 loginc.php

<?php
session_start();
include('../../configPan/config.php');
extract($_POST);



        $q = $pdo->prepare("select * from `distributor` where psa_id= ? and password= ? ");
        $q->execute(array($un,$pw));



        if($q->fetch())
        {
        $_SESSION['psa_id'] = $un;
        header("location:home_page.php");


        }
        else
        {
        $_SESSION['e']="Sorry...! Your username or password is incorrect.";
        header('location:../index.php');
        }


?>

这是 config.php

<?php
$host = '127.0.0.1';
$db   = 'pan_online';
$user = 'root';
$pass = '';
$charset = 'utf8mb4';

$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES   => false,
];
try {
     $pdo = new PDO($dsn, $user, $pass, $options);

} catch (\PDOException $e) {
     throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
?>

在 home.php 页面中,我想使用以下代码获取 psa id。但无法检索数据。它总是显示“没有数据”

<?php $user = $_SESSION['psa_id'];
        $_q=$pdo->prepare("select * from distributor where psa_id=?");
                $_q->execute([$user]);
                if($_q->fetch()){
                echo "Center: " . $_q['psa_id']; }else{echo "no data";} ?>

标签: phpsessionpdosession-variables

解决方案


推荐阅读