簡體   English   中英

session_set_save_handler沼澤崩潰

[英]session_set_save_handler wamp crash

我正在嘗試使用session_set_save_handler允許我使用下面的代碼在mySQL數據庫中保存會話。

每次嘗試加載頁面時,都會收到有關httpd.exe的應用程序錯誤,如下圖所示。

http://i48.tinypic.com/2i9l2ip.jpg

如果我刪除以下行,則頁面工作正常。

session_set_save_handler("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc");

我猜這意味着我的代碼中某處有一個錯誤,但我什么都看不到。 任何幫助將不勝感激,謝謝。

function sess_open($sess_path, $sess_name) {
 return true;
}

function sess_close() {
 return true;
}

function sess_read($sess_id) {
 $result = dbQuery("SELECT data FROM sessions WHERE id = '$sess_id';");
 if (!mysqli_num_rows($result)) {
 $CurrentTime = time();
 $result = dbQuery("INSERT INTO sessions (id, access) VALUES ('$sess_id', '$CurrentTime');");
 return '';
 } else {
 extract(mysqli_fetch_array($result), EXTR_PREFIX_ALL, 'sess');
 $result = dbQuery("UPDATE sessions SET access = '$CurrentTime' WHERE id = '$sess_id';");
 return $sess_data;
 }
}

function sess_write($sess_id, $data) {
 $CurrentTime = time();
 $result = dbQuery("UPDATE sessions SET data = '$data', access = '$CurrentTime' WHERE id = '$sess_id';");
 return true;
}

function sess_destroy($sess_id) {
 $result = dbQuery("DELETE FROM sessions WHERE id = '$sess_id';");
 return true;
}

function sess_gc($sess_maxlifetime) {
 $CurrentTime = time();
 $result = dbQuery("DELETE FROM sessions WHERE access + $sess_maxlifetime < $CurrentTime;");
 return true;
}

session_set_save_handler("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc");
session_start();

那是httpd中的錯誤,而不是您的代碼中的錯誤。 或者,確切地說,它肯定是由您的代碼引起的,但是apache絕不應該那樣崩潰(您應該得到PHP錯誤,而這里只是使服務器崩潰)。 嘗試更新wamp,或嘗試安裝xampp並檢查是否可以獲得更有意義的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM