【问题标题】:PHP Session in class output null类输出中的 PHP 会话 null
【发布时间】:2017-09-13 00:05:47
【问题描述】:

登录.php

$yetkili = new YETKILILER();
$yetkili->YETKILI_TC=$YETKILI_TC;
$yetkili->YETKILI_SIFRE=$YETKILI_SIFRE;
$_void = $yetkili->Giris();
$_SESSION['YETKILI'] = $yetkili;

index.php

$yet =  $_SESSION['YETKILI'];
$tc= $yet->YETKILI_TC;
// Output $tc =null :/

大家好。我正在尝试在 php 的会话中设置一个类并从其他页面请求它,但是当我尝试这样做时,我只得到空值。有人可以帮我吗?谢谢。

【问题讨论】:

标签: php class session


【解决方案1】:

解决方案2 login.php

$yetkili = new YETKILILER();
$yetkili->YETKILI_TC=$YETKILI_TC;
$yetkili->YETKILI_SIFRE=$YETKILI_SIFRE;
$_SESSION['YETKILI'] = serialize($yetkili); 

index.php

 $yetkili =  unserialize($_SESSION['YETKILI']);
 $test = $yetkili->YETKILI_ID;

【讨论】:

    【解决方案2】:

    你能提供一段关于你的 Giris() 方法的代码吗? 您需要在此方法上设置会话。然后通过 session_start 方法获取会话变量。

    祝你有美好的一天。

    【讨论】:

      【解决方案3】:

      一种可能的解释:在您从与$yet = $_SESSION['YETKILI']; 的会话中取回 YETKILI 对象之前,您必须确保YETKILILER 的类定义可用。即在 index.php 中,确保您在包含 YETKILI 类的文件上使用了 includerequire

      【讨论】:

        【解决方案4】:

        解决方案 登录.php

           $yetkili = new YETKILILER();
           $yetkili->YETKILI_TC=$YETKILI_TC;
           $yetkili->YETKILI_SIFRE=$YETKILI_SIFRE;
           $_SESSION['YETKILI'] = serialize($yetkili); 
        

        index.php

             $yetkili =  unserialize($_SESSION['YETKILI']);
             $test = $yetkili->YETKILI_ID;
        

        【讨论】:

          【解决方案5】:

          您需要在通过会话访问对象的页面中包含您的类。我建议您创建一个单独的文件,例如 class_lib.php,在其中定义所有类,然后在使用它的页面中使用 includerequire

          此外,您需要在将对象分配给会话之前对其进行序列化,然后在另一端对其进行反序列化。

          编辑:另外,您将需要 session_start();在两个页面中或在它们都包含的页面中。

          【讨论】:

            猜你喜欢
            • 2015-10-11
            • 1970-01-01
            • 1970-01-01
            • 2018-06-30
            • 1970-01-01
            • 2014-07-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多