session_set_save_handler wampsh crash - PullRequest
0 голосов
/ 22 июня 2010

Я пытаюсь использовать 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();

1 Ответ

0 голосов
/ 22 июня 2010

Это ошибка в httpd, а не в вашем коде.Или, скорее, это, безусловно, вызвано вашим кодом, но Apache Shoud никогда не падает таким образом (вы должны получить ошибки PHP, в то время как здесь это просто сбой сервера).Попробуйте обновить wamp или попробуйте установить xampp и проверьте, можете ли вы получить более значимую ошибку.

...