2011-09-27 2 views
0

로그인 시스템을 구축한다고 가정 해 보겠습니다. 사용자는 필드에 사용자 이름과 암호를 입력하고 HTTPS를 통해 서버로 보내집니다.이 서버는 페이지가로드되기 전에 로그인을 확인합니다. 잘못된 암호를 보내면 로그인이 즉시 실패하지만 로그인 상자 근처의 페이지에 오류 메시지가 표시되기를 원할 것입니다."평가하기, 나중에 응답"에 대한 모범 사례?

명백한 해결책은 전역 플래그를 설정하고 로그인 상자에서이를 확인하고 필요한 경우 오류 메시지를 추가하는 것입니다. 그러나 전역 변수를 사용하지 않는 것이 가장 좋습니다. 이 기능을 구현하는 또 다른 간단한 방법이 있습니까?

답변

0

비 AJAX 로그인 페이지의 경우 url에 추가 쿼리 매개 변수가있는 로그인 페이지로 사용자 브라우저를 리디렉션하는 것이 일반적입니다. 의사 코드에서 로그인 확인 컨트롤러 코드 세그먼트는 다음과 같습니다.

success = checkLogin(username,password) 
if (success == false) 
    redirect('http://example.com/login?failedlogin=true') 

로그인 페이지 컨트롤러는이 쿼리 매개 변수를 검색하고 오류 메시지를 표시하도록보기 코드에 지시해야합니다. 나는 '글로벌 플래그'라는 용어가이 프랙티스에 적용된다고 생각하지 않으므로 귀하의 요구 사항을 충족시켜야합니다.

로그인 페이지에서 Ajax를 사용하는 경우 로그인 페이지의 Javascript가 AJAX 호출의 결과를 가져와 적절한 DOM 요소를 실패 메시지로 업데이트합니다.

+0

주소 표시 줄에 플래그를 던지는 것은 정말 더러운 해결책처럼 보입니다 - 글로벌 변수를 던지기보다 더 나빠집니다. 내가 일반적으로 보았던 것은 $ _GET 배열은 사람들이 결과 페이지로 직접 연결하는 것을 꺼리는 경우에만 사용해야한다는 것입니다. –