2011-03-14 3 views
0

투표 섹션을 만들고 싶습니다. 사용자가 링크를 클릭하면 숫자가 하나씩 증가합니다 (하나의 피어 IP 또는 그와 비슷한 것에 대한 제한).세션 : 클릭 수를 올리려면 클릭하십시오.

셀틱스 : 0이 하나

레이커스 cliked됩니다 ----------- (투표 클릭) : 0 (투표 클릭)


예를 들어

셀틱스 1

레이커스 : 0


,

세션이나 PHP 코드로 어떻게 가능합니까?

어떤 아이디어가 있습니까?

+0

PHP를 사용하고 있다면이 작업을 원활하게 수행 할 수 없으며 유료 로딩이 필요합니다. 그 확인은? 그렇지 않다면 자바 스크립트도 사용해야합니다. – Prisoner

+0

AJAX는 또한 일반적으로 이런 종류의 일에 사용됩니다. – JakeSteam

+0

페이로드를 다시로드하는 것이 좋습니다 ... 자바 스크립트가 좋을 것입니다. AJAX와 함께 사용되는 자습서가 있습니까? – Norman

답변

0

세션은 투표가 이루어되었는지의 여부를 즉시 테스트를 제공하는 데 사용할 수 있습니다 :

그러나
// if session hasn't voted 
if(!$_SESSION['voted']){ 

    // VOTING LOGIC 

    // set session to have voted 
    $_SESSION['voted'] = true; 

} 

혼자 세션이 단일 사용자가 다시 투표 할 수 있도록하지 않습니다를 (세션은 즉시 손실 브라우저 캐시/쿠키 지우기) 투표 논리가 실행되면 $_SERVER['REMOTE_ADDR']에서 캡처 한 IP 주소를 저장해야합니다.

이 예에서와 같이 전체 IP 주소를 검색해서는 안됩니다. 대신 외부 매체 (파일/DB)를 쿼리하여 주어진 클라이언트가 투표를했는지 여부를 판단해야합니다. 이것은 물론 예제 구현 일뿐입니다. 그러나 이것은 작업을 수행하기위한 빠른 스크립트로 향할 것입니다. 또한 동일한 IP 주소이지만 다른 클라이언트가 후속 연결을 할 수 있도록하기 위해 주어진 시간이 지나면 IP 주소를 공개해야합니다.

정말 중복 투표를 줄이려는 대상에 달려 있습니다. 사용자 등록 및 사용자 계정 기반의 제한 - 또는 확인을 요구하는 전자 메일 주소를 기반으로 한 투표 제한은 훨씬 더 신뢰할 수 있지만 여기의 오버 헤드는 여기 나 지금은 설명 할 수 없습니다.

+0

흠. thnx .. 그 멋진. 첫 번째 코드를 사용한다면 실제로 웹 페이지에서 어떤 코드 (php 또는 html)를 사용하여 시각화 할 수 있습니까? 두 번째 것을 사용하고자한다면 데이터베이스에서 ip 필드를 호출하여 cliked되었을 때 저장할 수 있습니다. 두 번째 것은 좀 더 복잡합니다. 좋은 프로세스가 있습니까? – Norman

+0

첫 번째 및 두 번째로 내 코드 예제를 언급하는 경우 실제로 상호 교환 할 수는 없습니다. 두 번째 코드 예제는 첫 번째 코드 예제를 더 완전하게 확장 한 것입니다. 또한 ** Jake **에서 언급했듯이 페이지에서 즉각적인 변경이 이루어지기 위해서는 (클릭이 성공한 경우) AJAX 트랜잭션으로 수행해야합니다. – Dan

+0

확인. 따라서 아약스로 첫 번째 코드를 사용하면 페이지에 자동으로 나타납니다. 이 AJAX 트랜잭션을 어떻게 수행 할 수 있습니까? 어떤 종류의 코드? – Norman