我在转到几页时收到了这条消息:
警告:session_start():函数spl_autoload_call()尚未在第18行的/var/www/library/session/session.php中定义它所调用的类
这是创建调用的文件:
<?php
namespace iX\session;
class session{
private static $instance;
private static $init=false;
private static function doFirstInit(){
ini_set('session.name', \iX\config::get('system')->session->name);
ini_set('session.cookie_lifetime', \iX\config::get('system')->session->cookie->lifetime);
ini_set('session.cookie_path', \iX\config::get('system')->session->cookie->path);
ini_set('session.cookie_domain', \iX\config::get('system')->domain->name);
ini_set('session.use_cookies', ((\iX\config::get('system')->session->cookie->use)?'1':0));
ini_set('session.use_only_cookies', ((\iX\config::get('system')->session->cookie->onlyCookies)?'1':0));
\iX\core::load('library/session/interface.php');
\iX\core::load('library/session/handler/'. \iX\config::get('system')->session->handler.'.php');
$class = '\iX\session\handler_'.\iX\config::get('system')->session->handler;
$class::getInstance();
session_start();
self::$init = true;
}
public static function getInstance(){
if(!self::$init)
self::doFirstInit();
if(!(self::$instance instanceof session))
self::$instance = new session('main');
return self::$instance;
}
private $handler=array();
public function __construct($handler){
$this->handler = &$_SESSION[$handler];
if(!isset($this->handler['userid']))
$this->handler['userid'] = 1;
if($this->handler['userid']==0)
$this->handler['userid'] = 1;
if(!isset($this->handler['counter']))
$this->handler['counter'] = 0;
if(!isset($this->handler['login']))
$this->handler['login'] = false;
if(!isset($this->handler['numpages']))
$this->handler['numpages'] = 0;
if(!isset($this->handler['lock']))
$this->handler['lock'] = false;
}
public function __get($name){
$this->handler['counter']++;
return (!isset($this->handler[$name]))?false:$this->handler[$name];
}
public function __set($name,$value){
if($this->lock==false){
$this->handler[$name]=$value;
return true;
}else return false;
}
public function __isset($id){
if(isset($this->handler[$id]) && $this->handler[$id]!=null) return true;
return false;
}
public function __unset($id){
$this->handler[$id] = null;
return true;
}
private function __cleanup(){
$this->handler = array();
}
public function getPages(){
return $this->numpages;
}
public function setIncreasePage(){
$this->numpages++;
}
public function Login($uid){
$this->login=true;
$this->userid = intval($uid);
$this->userId = intval($uid);
}
public function setLogout(){
foreach($this as $key=>$value)
$this->{$key} = null;
$this->role = "guest";
$this->userId = 0;
$this->login=false;
}
public function isLogin(){
return $this->login;
}
public function isRlogin(){
return ($this->rActive == true && isset($this->rLogin))?true:false;
}
public function cleanup(){
$this->__cleanup();
}
public function put(){
}
public function lock(){
$this->lock = true;
}
public function unlock(){
$this->lock = false;
}
public function get_stat(){
return $this->lock;
}
public function rewind() {
reset($this->handler);
}
public function current() {
$var = current($this->handler);
return $var;
}
public function key() {
$var = key($this->handler);
return $var;
}
public function next() {
$var = next($this->handler);
return $var;
}
public function valid() {
$var = $this->current() !== false;
return $var;
}
public function __toString(){
$return = '';
foreach($this->handler as $key=>$value)
$return .= $key.':'.$value."\n";
return $return;
}
public function __toArray(){
return $this->handler;
}
public function toString(){
return $this->__toString();
}
public function toArray(){
return $this->__toArray();
}
public function getSession(){
return $this->handler;
}
public function restoreSession($session){
$session = unserialize($session);
if(is_array($session))
$this->handler = $session;
}
}
如何摆脱此警告。我不只是想禁用警告调用。我想要一个干净的应用程序。 请有人高兴我。
克里斯
答案 0 :(得分:1)
试试这个:
<?php
session_start();
// ...
最佳解决方案是:
index.php
。