서버이전후 회원가입 안됩니다 ㅠㅠ 정보
서버이전후 회원가입 안됩니다 ㅠㅠ관련링크
본문
안녕하세요
얼마전에 그누보드 서버이전을 하였는데 로그인도 정상이고 다른기능이 다 정상입니다.
근데 회원정보수정 하고 신규회원가입이 안됩니다. 자동등록방지 이미지도 안뜨고요.
약관동의 넘어가고 입력폼에 입력하고 확인누르면 자꾸 약관동의 안되였다구 뜹니다.
약관부분을 주석처리해봐도 확인누르면 아무 반응이 없습니다.
기존서버:리눅스,mysql 4.0,언어셋-UTF8
현재서버:윈도우2003,mysql5.0,언어셋-UTF8
설치는 되였는데 어디가 잘못되였는지 모르겠습니다.
질답게시판을 검색해보았는데 저와 비슷한 분들도 계시더군요...맴버스킨폴더도 통째로 바꿔보고
bbs폴더두 통째로 바꿔봤는데 안됩니다ㅠㅠ
고수님들 꼭좀 부탁드릴게요 (__)
문제 사이트주소 http://oddugi.com/bbs/register.php 입니다.
얼마전에 그누보드 서버이전을 하였는데 로그인도 정상이고 다른기능이 다 정상입니다.
근데 회원정보수정 하고 신규회원가입이 안됩니다. 자동등록방지 이미지도 안뜨고요.
약관동의 넘어가고 입력폼에 입력하고 확인누르면 자꾸 약관동의 안되였다구 뜹니다.
약관부분을 주석처리해봐도 확인누르면 아무 반응이 없습니다.
기존서버:리눅스,mysql 4.0,언어셋-UTF8
현재서버:윈도우2003,mysql5.0,언어셋-UTF8
설치는 되였는데 어디가 잘못되였는지 모르겠습니다.
질답게시판을 검색해보았는데 저와 비슷한 분들도 계시더군요...맴버스킨폴더도 통째로 바꿔보고
bbs폴더두 통째로 바꿔봤는데 안됩니다ㅠㅠ
고수님들 꼭좀 부탁드릴게요 (__)
문제 사이트주소 http://oddugi.com/bbs/register.php 입니다.
댓글 전체
ftp에서 data파일 707로 바꿔보세요.일일히 바뀐거 다 확인해서 완전히 바꿔야 합니다.
저는 이렇게 제가 찾아서 해결한 경험 있습니다.
*******************************************
안될수도 있으나 제 경험을 조언해 드립니다...^^
고수님들에게 패스~~~
저는 이렇게 제가 찾아서 해결한 경험 있습니다.
*******************************************
안될수도 있으나 제 경험을 조언해 드립니다...^^
고수님들에게 패스~~~
조언 감사합니다. data 권한707로 바꿔도 안되네요
얼마전에 저도 서버 이전하면서 애좀 먹었습니다.
1) mysql4 에서 mysql5 로 이전하면, 여기 저기서 에러 납니다. (우선, 암호화 체계가 다르므로 암호화 된 비밀번호 인식이 불안정하여 관리자및 기존회원 로그인시 에러가 발생할 수 있습니다.)
2) 서버 이전이 목적이라면, 기존 서버와 똑같은 사양을 쓰면, 완벽하게 이전 됩니다.
1) mysql4 에서 mysql5 로 이전하면, 여기 저기서 에러 납니다. (우선, 암호화 체계가 다르므로 암호화 된 비밀번호 인식이 불안정하여 관리자및 기존회원 로그인시 에러가 발생할 수 있습니다.)
2) 서버 이전이 목적이라면, 기존 서버와 똑같은 사양을 쓰면, 완벽하게 이전 됩니다.
답변 감사합니다 , 지금 현재 서버에 꼭 설치를 해야됩니다.
현재 서버 환경을 기존서버와 동일하게 하려면 지금 현재 서버에 설치되여있는 제로보드도 수정해야합니다 ㅠㅠ
현재 서버 환경을 기존서버와 동일하게 하려면 지금 현재 서버에 설치되여있는 제로보드도 수정해야합니다 ㅠㅠ
쟈니2 님의 2번이 정답입니다.~
mysql4 - > 5 로 업로드 시,
common.php 파일에서 password 를 old_password 로 수정해주셔야 합니다.
또한, SSH 접속 후 chmod 707 data * 해주셔야 합니다.
common.php 파일에서 password 를 old_password 로 수정해주셔야 합니다.
또한, SSH 접속 후 chmod 707 data * 해주셔야 합니다.
감사합니다. 케파서버님 가르침대로 하니까 DB접속오류가뜨면서 사이트가 열리지 않습니다.
DB 접속오류하고는 상관이 없습니다.
dbconfig.php 파일을 열으셔서, MYSQL 정보를 재 입력 해보세요.
참고로, 말하면, DB 접속오류와, chmod 주는건 아무 지장이 없습니다.
있으면 뭐..ㅎㅎ
dbconfig.php 파일을 열으셔서, MYSQL 정보를 재 입력 해보세요.
참고로, 말하면, DB 접속오류와, chmod 주는건 아무 지장이 없습니다.
있으면 뭐..ㅎㅎ
원본: http://happyjung.com/gnuboard/bbs/board.php?bo_table=lecture&wr_id=320
아래 내용을 참고하세요
제로보드와 GNU보드 둘다 회원들의 password를 관리할때 MySQL의 password()를 사용하는데 이 함수가 4.0이하와 4.1이상에서 다른 hashing value를 가집니다. 다 아시겠지만 4.0이하는 16바이트,
4.1이상은 40바이트의 hashed value를 가집니다.
패스워드가 모두 옛날 password()함수로 되어있습니다.
최근에 호스트쪽에서 MySQL 4.1.X로 업그레이드를 해서 지금 설치된 그누보드는 password()를 쓸때에 모두 16바이트 대신 40바이트의 hashed value를 돌려주게 됩니다.
즉, 회원정보를 옮겨오면 로그인이 안되는것이죠.
다음과 같이하면 됩니다.
1. 그누보드 / lib / common.lib.php 의 1111번째 줄에
function sql_password($value) 를 검색해서 아래와 같이 함수를 추가합니다.
function sql_old_password($value)
{
$row = sql_fetch(" select old_password('$value') as pass ");
return $row[pass];
}
function sql_password($value)
{
// mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
// mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
$row = sql_fetch(" select password('$value') as pass ");
return $row[pass];
}
2. 그누보드 / bbs / login_check.php 의 25번째줄의
// 수정전
if (!$mb[mb_id] || (sql_password($mb_password) != $mb[mb_password])) {
alert("가입된 회원이 아니거나 패스워드가 틀립니다.\\n\\n패스워드는 대소문자를 구분합니다.");
}
// 수정후
if (sql_old_password($mb_password) == $mb[mb_password]) { // 옛날 패스워드를 새로운 패스워드로 바꿉니다.
$sql = " update $g4[member_table] set mb_password='" . sql_password($mb_password) . "' where mb_id='$mb_id' ";
sql_query($sql);
} elseif (!$mb[mb_id] || (sql_password($mb_password) != $mb[mb_password])) {
alert("가입된 회원이 아니거나 패스워드가 틀립니다.\\n\\n패스워드는 대소문자를 구분합니다.");
}
3. 그누보드 / bbs / register_form.php 의 73번째 줄을
// 원본
if (!($member[mb_password] == sql_password($_POST[mb_password]) && $_POST[mb_password]))
alert("패스워드가 틀립니다.");
// 수정
if (!($member[mb_password] == sql_password($_POST[mb_password]) && $_POST[mb_password]) && !($member[mb_password] == sql_old_password($_POST[mb_password]) && $_POST[mb_password]))
alert("패스워드가 틀립니다.");
옛날 사용자가 mysql 4.0.x 패스워드방식(16 bytes)을 사용하여 로그인하면 mysql 4.1.x 버젼의 패스워드(41 bytes)를 멤버테이블의 mb_password 에 저장하게 됩니다.
로그인할때에만 현재의 패스워드 방식을 확인하고 새로운 패스워드 포맷으로 DB 에 업데이트 하므로 /bbs/register_form.php, /bbs/member_leave.php 를 수정할 필요가 없습니다.
모든 회원이 한번이라도 로그인하게 되면 패스워드가 모두 새로운 패스워드 포맷으로 저장되게 되므로 그누보드가 버젼업될때마다 해당코드를 수정하지 않아도 됩니다.
아래 내용을 참고하세요
제로보드와 GNU보드 둘다 회원들의 password를 관리할때 MySQL의 password()를 사용하는데 이 함수가 4.0이하와 4.1이상에서 다른 hashing value를 가집니다. 다 아시겠지만 4.0이하는 16바이트,
4.1이상은 40바이트의 hashed value를 가집니다.
패스워드가 모두 옛날 password()함수로 되어있습니다.
최근에 호스트쪽에서 MySQL 4.1.X로 업그레이드를 해서 지금 설치된 그누보드는 password()를 쓸때에 모두 16바이트 대신 40바이트의 hashed value를 돌려주게 됩니다.
즉, 회원정보를 옮겨오면 로그인이 안되는것이죠.
다음과 같이하면 됩니다.
1. 그누보드 / lib / common.lib.php 의 1111번째 줄에
function sql_password($value) 를 검색해서 아래와 같이 함수를 추가합니다.
function sql_old_password($value)
{
$row = sql_fetch(" select old_password('$value') as pass ");
return $row[pass];
}
function sql_password($value)
{
// mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
// mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
$row = sql_fetch(" select password('$value') as pass ");
return $row[pass];
}
2. 그누보드 / bbs / login_check.php 의 25번째줄의
// 수정전
if (!$mb[mb_id] || (sql_password($mb_password) != $mb[mb_password])) {
alert("가입된 회원이 아니거나 패스워드가 틀립니다.\\n\\n패스워드는 대소문자를 구분합니다.");
}
// 수정후
if (sql_old_password($mb_password) == $mb[mb_password]) { // 옛날 패스워드를 새로운 패스워드로 바꿉니다.
$sql = " update $g4[member_table] set mb_password='" . sql_password($mb_password) . "' where mb_id='$mb_id' ";
sql_query($sql);
} elseif (!$mb[mb_id] || (sql_password($mb_password) != $mb[mb_password])) {
alert("가입된 회원이 아니거나 패스워드가 틀립니다.\\n\\n패스워드는 대소문자를 구분합니다.");
}
3. 그누보드 / bbs / register_form.php 의 73번째 줄을
// 원본
if (!($member[mb_password] == sql_password($_POST[mb_password]) && $_POST[mb_password]))
alert("패스워드가 틀립니다.");
// 수정
if (!($member[mb_password] == sql_password($_POST[mb_password]) && $_POST[mb_password]) && !($member[mb_password] == sql_old_password($_POST[mb_password]) && $_POST[mb_password]))
alert("패스워드가 틀립니다.");
옛날 사용자가 mysql 4.0.x 패스워드방식(16 bytes)을 사용하여 로그인하면 mysql 4.1.x 버젼의 패스워드(41 bytes)를 멤버테이블의 mb_password 에 저장하게 됩니다.
로그인할때에만 현재의 패스워드 방식을 확인하고 새로운 패스워드 포맷으로 DB 에 업데이트 하므로 /bbs/register_form.php, /bbs/member_leave.php 를 수정할 필요가 없습니다.
모든 회원이 한번이라도 로그인하게 되면 패스워드가 모두 새로운 패스워드 포맷으로 저장되게 되므로 그누보드가 버젼업될때마다 해당코드를 수정하지 않아도 됩니다.
답변 감사합니다. 패스워드나 언어셋 문제가 아니였습니다. 셋팅은 제대로 되였는데 이전할때 js파일이 누락되였습니다....지금 해결하였습니다
로그인도 정상이고 다른기능이 다 정상입니다
신규회원가입이 안됩니다. 자동등록방지 이미지도 안뜨고요.
--------------질문의 요점은 이것인데 다른 답변들을 하시는군요
자동등록방지 이미지 안보이는 것은 서버상태를 보지않고는 뭐가 문제인지 알 수 없겠습니다
신규회원가입이 안됩니다. 자동등록방지 이미지도 안뜨고요.
--------------질문의 요점은 이것인데 다른 답변들을 하시는군요
자동등록방지 이미지 안보이는 것은 서버상태를 보지않고는 뭐가 문제인지 알 수 없겠습니다
그렇습니다. 아파치 로그 보니까 wrest.js파일을 불러내기 실패기록이 있어서 새 파일로 덮어씌웠습니다. 지금현재 입력폼에서 오류 뜨고 .....자동등록방지 이미지가 안보입니다.
자동글등록방지이미지 미출력 관련
data 폴더안에 세션폴더 권한을 777로 변경하면 자동글등록방지 보이네요.