我想在CodeIgniter控制器中使用全局变量,我尝试使用此帖Codeigniter global variable within controller中的解决方案,但它对我不起作用。我想是因为首先我调用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);
}
}
答案 0 :(得分:0)
你可以在config文件夹下的constant.php文件中定义全局常量,你可以通过使用那个常量来实现它的任何地方
像
定义( 'MY_VAR', 'MY_VALUE');
现在如果你想使用它就像做回声MY_VAR;
答案 1 :(得分:0)
检查链接,我认为它适合您 http://ellislab.com/forums/viewthread/155141/
答案 2 :(得分:0)
当你直接调用函数 user()时,PHP将分配变量,变量不存在,因为它没有被定义。也为了引用全局变量你应该使用 $ this-&gt;用户。在这种情况下,变量 $ user 应该是会话变量。