我一直收到这个错误,我检查了所有内容,但我找不到解决方案。
public function logout($redirect = '') {
$logout = $this->_db->delete('user_sessions', array('id', '=', $this->data()->id));
Session::delete($this->_sessionName);
Cookie:delete($this->_cookieName);
Session::flash("home","Succesvol uitgelogd.");
(isset($redirect) && isset($logout)) ? Redirect::to($redirect) : Session::flash("home","Uitloggen mislukt."); Redirect::to("home");
}
问题似乎发生在这里:
$logout = $this->_db->delete('user_sessions', array('id', '=', $this->data()->id));
问题在于这里的语法,它不能是我想的任何其他东西。
全班:http://pastebin.com/v0GTnZUs
public function checkUserAgent() {
$_new_agent = ($_SESSION['HTTP_USER_AGENT'] != $_SERVER['HTTP_USER_AGENT']) ? false : $_SESSION['HTTP_USER_AGENT'] = md5($_SERVER['HTTP_USER_AGENT']);
$_cur_agent = md5($_SERVER['HTTP_USER_AGENT']);
$_msg = 'Er is een fout opgetreden betreft uw login, graag opnieuw inloggen zodat we weten wie u bent.<br />Sorrie voor het ongemak.';
return ($_cur_agent !== $_new_agent) ? User::logout() && Session::flash('msg_login',$_msg) && URL::redirect("members/login") : true;
}
这里是调用logout()的代码。
但是这个问题已经发生了很多次,所以我希望我能理解这个错误,节省了很多时间。
全班:http://pastebin.com/wySUDF5T
PS:问题不在于调用logout()并且该部分在对象范围内或外。我得到了两件,我用的是第一部分是&#34; $ this-&gt; _db-&gt;删除&#34;第二部分是&#34; $ this-&gt; data() - &gt; id&#34;这两个部分是错误的,但我猜第二个原因是我使用了很多次&#34; $ this-&gt; _db-&gt; get&#34;当我使用这篇文章顶部的代码checkUserAgent()时,我只会遇到问题
答案 0 :(得分:0)
根据您为User.class.php
发布的实现,此方法被定义为静态。
public static function logout($redirect = NULL) {
...
}
在静态方法中,您处于类上下文,而不是实例上下文,因此没有$this
。