2010-06-22 5 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

해당 서비스의 문제점을 찾는 것이 일반적입니다. 나는 항상 개발 용으로 사용하고 있지만, Windows에서 정말 심각한 PHP 설정을 원한다면, IIS (최신 버전에는 IIS7 이상)에 PHP 호스팅 도구가 있어야합니다. 또는 Linux와 함께 가상 시스템을 설치해야합니다. – Palantir

+0

덧붙여서 :이 대답이 도움이 되었다면, 그것을 받아 들여야합니다 (왼쪽의 V 기호를 클릭하십시오). 또는 적어도 upvote (위쪽 화살표 누르기). 그것은 "고맙습니다"라고 말하고 질문에 대답했다고 말하는 것입니다. – Palantir