为了账号安全,请及时绑定邮箱和手机立即绑定

会话变量在 php 中为空

会话变量在 php 中为空

PHP
MM们 2023-04-28 16:21:05
登录.php    <?php    ob_start();    session_start();    include '../config.php';    if( (isset($_SESSION['can-id']) )) {    header('location: ../home/profile.php');    }    if(isset($_POST['can-login']))    {        $email=$_POST['email'];        $password=$_POST['password'];    $sql="SELECT * FROM `user_credentials` WHERE `email`=:email AND `password`=:password";    $pdoResult=$conn->prepare($sql);    $pdoExec=$pdoResult->execute(array(":email"=>$email,":password"=>$password));    $pdoResult->setFetchMode(PDO::FETCH_ASSOC);    $count=0;    $uid='';    while ($r=$pdoResult->fetch()) {      # code...    $count+=1;    $uid=$r['email'];    }    if ($count==1) {      # code...      $_SESSION['can-id']=$uid;      header('location: ../home/profile.php');    }    else    {      $_SESSION['error']="login failed";    }    }    ?><html>....</html>配置文件.php<?php    ob_start();    session_start();    if (!(isset($_SESSION['can-id']))) {        # code...        header('location: ../login/');    }    else    {        $cid=$_SESSION['can-id'];    }?><h1 ><?php echo $cid;?></h1>这是我在登录页面后的代码被重定向到 profile.php 页面但在配置文件页面会话变量没有打印我不知道为什么但每次登录时都没有出现这个问题它有时会发生所以我可以'找不到问题所在。任何人都知道请帮助我解决问题。
查看完整描述

1 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

从你的 login.php 中删除 ob_start() 不要把 session_start() 放在你所有的文件中


 e.g login.php, profile.php, etc

而是将其添加到您的 config.php 中,例如:


<?php 

 session_start(); 

 //.. config variables here

然后,在您的 profile.php 中也包含 config.php。


查看完整回答
反对 回复 2023-04-28
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信