0

我想在 CodeIgniter 控制器中使用全局变量,我尝试在控制器中使用这篇文章Codeigniter 全局变量中的解决方案,但它对我不起作用。我认为是因为首先我调用了该session函数,并且在用户验证该user函数之后,但是网页已经刷新并且值丢失了。在第一个函数调用之后是否有任何存储变量并稍后从第二个函数检索它?

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

  class Auth extends CI_Controller
{
    //Constructor
      function __construct() {
          parent::__construct();
      }

    public $user;

    public function session()
    {

        require 'facebook/facebook.php';

    $facebook = new Facebook(array(  
    'appId'  => '***********',  
    'secret' => '*****************',  
    'cookie' => true
    ));  

    $user = $facebook->getUser();

      if ($user) {
        $uid = $facebook->getUser();

      } else {
        // proceed knowing you require user login and/or authentication
        $login_url = $facebook->getLoginUrl();  
          header("Location: ".$login_url);  
      }
    }

    public function user()
    {
        echo ($user);
    }

}
4

3 回答 3

0

您可以在 config 文件夹下的 constant.php 文件中定义全局常量,您可以使用该常量在任何地方访问它

定义('MY_VAR','MY_value');

现在,如果您想使用它,只需执行 LIKE echo MY_VAR;

于 2013-05-01T08:11:39.500 回答
0

检查链接,我认为它对你 有用 http://ellislab.com/forums/viewthread/155141/

于 2013-05-01T08:30:17.087 回答
0

一旦定义了变量,PHP 将分配变量,当您直接调用函数user()时,该变量不存在,因为它没有定义。此外,为了引用全局变量,您应该使用$this->user。在这种情况下,变量$user应该是一个会话变量。

于 2016-10-10T01:50:36.963 回答