我正在尝试将一些数据设置为$_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;
}
答案 0 :(得分:-1)
找到解决方案。问题在于我的存在方法。我没有设置函数的变量。
这就是我所拥有的:
public static function exists() {
return (isset($_SESSION[$name])) ? true : false;
}
这也是我改变它的原因:
public static function exists($name) {
return (isset($_SESSION[$name])) ? true : false;
}