$ _SESSION不接受数据

时间:2014-12-15 01:05:49

标签: php

我正在尝试将一些数据设置为$_SESSION但由于一些奇怪的原因无法将任何内容输入到会话中。这是我的函数,假设将项目$ name和$ value放入会话中,但似乎只是被忽略,没有放入值。

我在echo中给出了输出字符串的两个值,所以它应该可以正常工作......对吗?

我不确定我需要提交哪些其他信息,但请告诉我需要的信息。

public static function put($name, $value) {
    echo $name . "<br>" . $value;
    return $_SESSION[$name] = $value;
}

这是我的init.php文件。它在每个页面的开头运行。明显地拿出用户名和密码!     

$GLOBALS['config'] = array(
    //csets variables for database connections
    'mysql' => array(
        'username' => '',
        'password' => '',
        'db' => '',
        'host' => ''
    ),
    //remembering user when we login
    'remember' => array(
        'cookie_name' => 'hash',
        'cookie_expiry' => 604800 //Number of seconds in month
    ),
    //session informaton
    'session' => array(
        'session_name' => 'user'
    )
);

//autoloads and require once all files in my classes folder
spl_autoload_register(function($class) {
    require_once 'classes/' . $class . '.php';
});

require_once './functions/sanitize.php';

?>

也是我的构造函数,它最终调用了我的Session类。

    public function __construct($user = null) {
        $this->_db = DB::getInstance();
        $this->_sessionName = Config::get('session/session_name');

        if(!$user) {
            if(Session::exists($this->_sessionName)) {
                $user = Session::get($this->_sessionName);
                if($this->find($user)){
                    $this->_isLoggedIn = true;
                } else {
                    //logout
                }
            }
        } else {
            $this->find($user);
        }
    }

这是我的登录功能,我打电话给put

public function login($username = null, $password = null) {
    $user = $this->find($username);
    if($user) {
        if($this->data()->password === substr(Hash::make($password), 0, 32)) {
            Session::put($this->_sessionName, $this->data()->id);
            var_dump($_SESSION);
            return true;
        }
        }
        return false;
    }

最后我的会话get方法。

public static function get($name) {
            return $_SESSION[$name];    
        }

我的方法也存在..

public static function exists() {
        return (isset($_SESSION[$name])) ? true : false;
    }

1 个答案:

答案 0 :(得分:-1)

找到解决方案。问题在于我的存在方法。我没有设置函数的变量。

这就是我所拥有的:

public static function exists() {
    return (isset($_SESSION[$name])) ? true : false;
}

这也是我改变它的原因:

public static function exists($name) {
    return (isset($_SESSION[$name])) ? true : false;
}