2011-03-29 3 views
0

내 사이트에서 다양한 jQuery 클릭 및 전송 이벤트가 발생하지만 일부 이벤트는 사용자가 로그인 한 경우에만 활성화하려는 경우 (예 필수 서버 측 유효성 검사), 로그인하지 않은 경우 jQuery UI 대화 상자가 나타나길 원합니다.전역 변수가 설정되지 않은 경우 다양한 jQuery 이벤트를 오버라이드하는 메소드

사용자가 자바 스크립트 변수를 설정해야합니다 페이지에 로그온 한 경우 : var uk = 'randomkey';

이를위한 가장 좋은 방법은 무엇과를? 내 머리 꼭대기에서 사용자 가치를 확인하고 대화를 시작하고 거짓을 반환하는 일종의 전역 기능을 끕니까? 아니면 그것을 수행하는 깔끔하고/최적화 된 방법이 있습니다.

+0

무단 액세스를 방지하기 위해 페이지가로드되는 동안 요소를 필터링하는 것이 좋습니다. – Starx

+0

내가 'notlogged'클래스 이름을 추가 할 수 있습니까? – Dunhamzzz

+0

사용자가 로그인하지 않은 이유는 무엇입니까? 나는 가능한 한 복잡성을 피해야한다고 생각합니다. 어쨌든, 내 대답을 확인, 그것은 당신이 필요로 해결해야합니다. – Starx

답변

1

, 나는 당신이 로그온 한 사용자에 대해 당신이 원하는 모든 JS 동작을 데려 갈 것을 제안하고, 그 것 로그인하지 않은 사용자가 두 개의 개별 JS 파일에 액세스 할 수있게하고 서버가 HTML을 브라우저로 다시 플러시하기 전에 관련 페이지를 페이지에로드합니다.

0

무단 액세스를 방지하기 위해 페이지가로드되는 동안 요소를 필터링하는 것이 좋습니다. 가능한 복잡성을 피하십시오.

그러나 실제로 이것을해야하는 경우 사용자가 로그인했는지 여부를 감지하기 위해 ajax 요청을 보낼 수 있습니다 (클래스 이름을 설정하여 클라이언트의 브라우저에 의존하는 것은 나쁜 생각이므로 쉽게 변조 될 수 있음). 당신은 당신이 이미 서버 측 유효성 검사를 수행하고 있다고 때문에

그냥 예를

$.post(
    "apage.php", 
    { action: 'checklogged' }, 
    function(data) { 
     //if the response come as `no` and `yes` 
     if(data=='no') { 
      //dialogbox code 
     } 
     else { 
      var uk = 'randomkey'; 
     } 
    } 
); 
+0

나는 서버에 요청을 할 필요가 없다. 사용자가 로그인했다면 PHP에서 자바 변수 'uk'(사용자 키)를 설정했다. 위의 코멘트에 대한 응답으로, 나는 그들이 사이트의 기능을 표시하기 위해 거기에 있어야합니다. 즉 그들은 SO 스타일 투표/아래 버튼입니다. – Dunhamzzz

+0

사용자가 로그인했는지 알면 매우 중요한 부분이므로 클라이언트 컴퓨터에로드 된 페이지를 사용하지 않는 것이 좋습니다. BCOZ, 깡통 수 있습니다. – Starx

관련 문제