패스 없는 DISCUZ 로그인 내용 소개
DISCUZ는 중국에서 가장 많이 사용되는 포럼이지만, 누구나 접속할 수 있는 패스가 있지만, 사실 사용자 통일성이 매우 부족한 경우가 많습니다. 두 개의 사용자 테이블이 있습니다. 첫 번째는 등록 및 관리가 편리하고 두 번째는 데이터베이스를 낭비합니다.
최근 DISCUZ를 활용한 프로젝트를 진행하면서 DISCUZ의 로그인을 연구하고 기본적으로 동기 로그인을 완료했습니다. 관심이 있으시면 연구해 보시면 됩니다.
더 이상 말도 안되는 소리는 하지 마세요. DISCUZ 공개 파일을 직접 사용하고 include/common.inc.php를 직접 인용하면 됩니다. 이 파일을 인용하면 됩니다. $discuz_uid는 사용자 ID입니다. $discuz_user는 사용자 이름입니다.
자신의 공개 파일을 사용하는 경우 global.func.php에 두 개의 함수
Dsetcookie가 있고, 게으른 것이 아니라면 authcode가 있습니다. clearcookies 함수를 복사합니다. 첫 번째는 DISCUZ의 COOKIE 빌드 기능이고, 두 번째는 DISCUZ의 가역적 암호화 기능이고, 세 번째는 Clear COOKIE 함수를 제가 만든 FUNC.PHP 파일에 넣었습니다.
알겠습니다. COOKIE를 생성하고 식별하는 방법을 작성해 보겠습니다.
function lgoin($array)
{
$username = $array['username']
$password = $array['password']; ;
$sql = "`cdb_members`에서 `uid`, `password`, `secques` 선택
`username`='$username' 및 `password`=md5('$password')";
try {
$rs = $this -> _db -> query($sql)
}catch(예외 $e){
exit("쿼리 오류, 오류 메시지: " .$e->getMessage());
return 0;
}
$row = $this -> fetch ($rs); 이름과 비밀번호가 정확합니다
if($row){
dsetcookie('sid','',-2423234234) // sid 로그아웃
$secques = $row['secques']
$uid = $row['uid'];
$formPassword = $row['password']
dsetcookie('auth', authcode("$ formPasswordt$secquest$uid", 'ENCODE' ,'123'), '0');
return 1;
}else{
return 2;
}
말도 안되는 소리는 하지 마세요. 핵심 부분에 대해 직접 이야기해 봅시다. 정보를 쿼리하고 얻은 후에(사용자 이름과 비밀번호가 올바른 경우) 우리는 UID, PASSWORD, SECQUES라는 세 가지 정보를 얻습니다. DISCUZ가 생성하는 데 필요한 것입니다. COOKIE.첫 번째는 사용자 ID, 두 번째는 암호화된 비밀번호, 세 번째는 질문에 대한 암호화된 답변입니다(설정되지 않은 경우에도 사용해야 함). DISCUZ는 질문과 답변을 요구합니다. 로그인할 때 필요하지 않아서 여기서 직접 확인했습니다. dsetcookie('auth', authcode("$formPasswordt$secquest$uid", 'ENCODE','123'), '0');
이 문장은 말할 것도 없이 사용자의 COOKIE를 생성하는 것입니다. 주의하세요 이 '123'은 암호화 시 설정한 KEY이므로 DISCUZ와 동일해야 하므로 반드시 통일해야 할 곳은 global.func.php 입니다. 다른 하나는 복사된 인증코드 기능이고, 인증코드를 사용하는 경우입니다. 이때 포럼에 로그인이 가능해야 합니다. 로그인이 되지 않는 경우 아래
현재 페이지 1/2 12다음 페이지
를 참조하세요.
위 내용은 DISCUZ에 패스 없이 로그인하는 방법에 대한 내용을 소개한 것입니다. 1/2페이지에는 discuz x1.5의 내용이 포함되어 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.