PHP에서 양식의 반복 제출을 금지하는 방법: 먼저 양식에 숨겨진 입력 필드를 추가한 다음 해당 값을 사용하여 페이지를 새로 고치면 제출 후 토큰 값이 변경됩니다. , 토큰 값이 올바른지 판단하여 최종적으로 프론트엔드에 제출한 토큰과 백엔드에 제출한 토큰이 일치하지 않으면 중복 제출로 간주됩니다.
PHP에서 양식의 반복 제출을 금지하는 방법:
먼저 프런트 엔드에서 제한을 설정하세요. 이 방법은 단순히 제출 버튼을 여러 번 클릭하는 것을 방지하지만 사용자가 JavaScript 스크립트를 비활성화하면 작동하지 않는다는 단점이 있습니다.
관련 학습 권장 사항: php 프로그래밍(동영상)
두 번째로 제출 후 페이지를 리디렉션할 수 있습니다. 즉, 주로 반복적인 F5 제출을 피하기 위해 제출 후 새 페이지로 이동할 수 있습니다. 단점.
세 번째는 데이터베이스 고유 인덱스 제약 조건을 만드는 것입니다.
네 번째 단계는 세션 토큰을 확인하는 것입니다.
이제 세션 토큰을 사용하여 양식의 반복 제출을 방지하는 간단한 방법에 대해 알아 보겠습니다.
토큰 값을 저장하는 데 사용되는 값인 type="hidden"을 양식에 추가하면 제출 후 토큰 값이 변경됩니다. 토큰 값이 맞는지 프론트 데스크에서 제출한 경우 토큰이 배경과 일치하지 않을 경우 중복 제출로 간주됩니다.
<?php /* * PHP简单利用token防止表单重复提交 */ session_start(); header("Content-Type: text/html;charset=utf-8"); function set_token() { $_SESSION['token'] = md5(microtime(true)); } function valid_token() { $return = $_REQUEST['token'] === $_SESSION['token'] ? true : false; set_token(); return $return; } //如果token为空则生成一个token if(!isset($_SESSION['token']) || $_SESSION['token']=='') { set_token(); } if(isset($_POST['web'])){ if(!valid_token()){ echo "token error,请不要重复提交!"; }else{ echo '成功提交,Value:'.$_POST['web']; } }else{ ?> <form method="post" action=""> <input type="hidden" name="token" value="<?php echo $_SESSION['token']?>"> <input type="text" class="input" name="web" value="www.jb51.net"> <input type="submit" class="btn" value="提交" /> </form> <?php } ?>
관련 학습 권장 사항: 프로그래밍 비디오
위 내용은 PHP에서 양식 반복 제출을 금지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!