이 기사에서는 PHP가 IP를 기록하여 양식의 반복 제출을 방지하는 방법의 예를 분석합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
이 원칙은 비교적 간단합니다. 사용자가 처음 제출할 때 제출하는 사용자의 IP 주소를 기록합니다. 이러한 방식으로 사용자가 일정 기간 내에 양식을 다시 제출하면 메시지가 표시됩니다. 이 접근 방식은 일반적으로 찬성 투표에 사용됩니다. 이러한 종류의 지원은 데이터의 반복 제출을 방지하기 위한 매우 나쁜 선택입니다.
예시 코드는 다음과 같습니다.
세션_시작()
if(empty($_SESSION['ip']))//첫 번째 쓰기 작업은 데이터베이스에 쓸지 여부를 알기 위해 IP 주소가 기록되어 있는지 확인합니다.
{
$_SESSION['ip']=$_SERVER['REMOTE_ADDR'];//첫 번째 쓰기, 후속 새로 고침 또는 후퇴 판단을 위한 길을 닦음
mysql_query("INSERT INTO admin(id, name, age) VALUES(123, 'Yao Ming', 25)");//데이터베이스 작업에 쓰기
}
else//첫 번째 쓰기 이후 작업이 있었기 때문에 더 이상 데이터베이스에 기록되지 않습니다
{
echo '양식을 반복적으로 제출하거나 페이지를 새로 고치지 마세요.';//이미 작성된 메시지나 기타 내용을 작성하세요
}
?>
또 다른 방법은 다음과 같습니다.
1: 페이지에서 무작위 코드를 생성합니다. 즉, 제출할 때마다 무작위 코드가 달라집니다. 제출 시 무작위 코드를 확인하세요!
2: 제출 시 데이터가 존재하면 제출되지 않는지 확인하세요.
IP 주소의 반복 제출을 방지하려는 경우 처리하기 전에 데이터베이스에 동일한 레코드가 있는지, IP가 동일한지 확인하는 것이 최선의 방법은 아닙니다.
예시 코드는 다음과 같습니다.
$sql ="select * from table name where buy_tel='telephone' 및 IP= '$ip' ";// 및 $time-buy_date<60
$query = $db->query( $sql )
if( $db->rows( $query ) )
{
echo('<script>alert("이미 제출하셨습니다. 다시 제출하지 마세요!");</script>');
}
그렇지 않으면
{
//입고작업 수행
}
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.