2010-06-22 3 views
0

Я пытаюсь использовать session_set_save_handler, чтобы разрешить мне сохранять сеансы в базе данных mySQL, используя приведенный ниже код.session_set_save_handler wamp crash

Каждый раз, когда я пытаюсь загрузить страницу, я получаю сообщение об ошибке приложения 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(); 

ответ

0

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

+0

Спасибо, я установил XAMPP, и он сразу сработал !!! Не уверен, что проблема с WAMP, но будет придерживаться XAMPP. Кажется, что работает быстрее, так как я всегда находил WAMP немного медленнее, особенно с подключениями mySQL, но не уверен, что это только моя настройка. – Anthony

+0

Обычно проблемы с этими службами возникают. Я использую их для разработки все время, но если вы хотите иметь действительно серьезную установку PHP на окнах, вам, вероятно, следует обратиться к IIS, который имеет (неплохую) платформу PHP для новых версий (IIS7 вверх). Или вы должны установить виртуальную машину с linux. – Palantir

+0

Кстати: если бы этот ответ был полезен, вы должны его принять (щелкните по знаку V слева) или, по крайней мере, отпустите его (нажмите стрелку вверх). Это способ сказать «спасибо» и сказать, что на ваш вопрос был дан ответ. – Palantir

Смежные вопросы