예 : 등록 양식은 x 번만 사용할 수 있습니까?PHP 폼의 제출 횟수를 제한하는 방법이 있습니까?
0
A
답변
0
양식을 ajax this을 통해 제출하는 경우 꽤 좋은 자료입니다.
1
예. 양식 처리 페이지가 데이터베이스에 사용 된 횟수를 데이터베이스에 기록하고 x 사용이 기록 될 때 양식을 사용 불가능하게하십시오.
1
x 사용 횟수 나는 실제로 이 x 번에을 제출했다고 가정합니다. 양식이 제출되고 유효성 검사를 통과 할 때마다 증가하는 세션 카운터를 가질 수 있으며 한계에 도달하면 추가 제출 시도를 방지 할 수 있습니다.
0
불행히도 여기에는 확실한 방법이 없습니다. 가장 좋은 방법은 쿠키를 저장하는 것이지만 분명히 쿠키를 지울 수 있습니다. 자신의 IP 주소를 자신의 사용자 에이전트 (브라우저 등)와 결합 (md5) 한 다음 데이터베이스에 저장하여 일종의 또 다른 고유 문자열/ID를 만들 수도 있지만 그럴 필요가없는 사람들을 거부 할 수 있습니다 거절 당했다.
2
PHP의 경우 빠르고 간단합니다.
페이지를 방문 할 때마다 카운터가 증가합니다. 횟수가 너무 많으면 die()
페이지를 의미합니다. 누군가이 양식을 제출할 때만 실행될 수있는 장소에이 코드를 넣을 수 있습니다.
매번 카운트를 재설정합니다.
알려진 버그 : 쿠키를 삭제하면 쿠키가 손상되어 쿠키가 깨집니다.
<?php
session_start();
if(!isset($_SESSION['count']))
{
$_SESSION['count'] = 1;
$_SESSION['first'] = time();
}
else
{
// Increase the Count
$_SESSION['count']++;
// Reset every so often
if($_SESSION['first'] < (time() - 500))
{
$_SESSION['count'] = 1;
$_SESSION['first'] = time();
}
// Die if they have viewed the page too many times
if($_SESSION['count'] > 100)
{
die("You have submitted to many times");
}
}
이것은 사용자마다 솔루션을 제공해야합니다. 그것은 전체 사이트 일이 있다면, 그냥 코멘트와 나는 삭제됩니다.
왜 처음부터이 작업을 수행 하시겠습니까? – Randell