현재 위치: > 최신 기사 목록> PHP 방지 기술의 적용 : 형태의 반복 제출 방지 및 사용자 경험 향상

PHP 방지 기술의 적용 : 형태의 반복 제출 방지 및 사용자 경험 향상

M66 2025-07-01

PHP 방지 기술의 적용 : 형태의 반복 제출 방지 및 사용자 경험 향상

인터넷이 개발되면서 양식 제출은 웹 응용 프로그램에서 필수 기능이되었습니다. 그러나 반복 된 양식 제출은 네트워크 지연 또는 사용자 오용으로 인한 데이터 오류 또는 프로그램 예외를 초래할 수 있습니다. 이 문제를 해결하기 위해 PHP 방지 기술은 양식 제출의 정확성을 보장하고 반복적 인 제출을 피할 수 있습니다.

안티 셰이크 기술이란 무엇입니까?

방지 기술은 운영 주파수를 제어하는 ​​기술로, 지정된 시간 간격 내에서 작동이 한 번만 수행되도록합니다. 양식 제출 조치가 트리거되면, 방지 기술은 지정된 시간 내에 새로 제출 트리거가 없을 때만 제출 작업이 수행 될 수 있도록 타이머를 설정합니다. 타이머 기간 동안 제출 버튼을 다시 클릭하면 타이머가 재설정되므로 반복적 인 제출을 피합니다.

PHP에서 셰이크 방지 기술을 구현하는 방법은 무엇입니까?

다음으로, 우리는 구체적인 예제를 사용하여 PHP에서 셰이크 방지 기술을 구현하는 방법을 보여줍니다. 이름과 사서함 필드가 포함 된 사용자 등록 양식이 있다고 가정합니다. 사용자가 양식을 제출 한 후에는 데이터를 데이터베이스에 저장해야합니다. 양식을 제출할 때 버튼의 빈번한 클릭으로 인해 사용자가 반복적으로 제출하지 않도록하기 위해 양식을 제출할 때 셰이크 방지 기술을 사용할 수 있습니다.

PHP 백엔드 코드 예 :

<?php
// 데이터베이스에 연결하십시오
$mysqli = new mysqli("localhost", "username", "password", "database");

// 연결이 성공했는지 확인하십시오
if ($mysqli-> connect_error) {
    다이 ( "연결 실패 :". $ mysqli-> connect_error);
}

// 게시물 데이터를 가져옵니다 $ name = $ _post [ &#39;name&#39;];
$ email = $ _post [ &#39;이메일&#39;];

// 레코드가 이미 존재하는지 확인하십시오 $ query = "select * name = &#39;$ name&#39;및 이메일 = &#39;$ email&#39;";
$ result = $ mysqli-> query ($ query);

if ($ result-> num_rows> 0) {
    에코 "레코드는 이미 존재한다";
} 또 다른 {
    // 새 레코드 삽입 $ insert = "사용자에 삽입 (이름, 이메일) 값 ( &#39;$ name&#39;, &#39;$ email&#39;)";
    $ mysqli-> query ($ insert);
    Echo "레코드 저장을 성공적으로 저장하십시오";
}

// 데이터베이스 연결을 닫습니다 $ mysqli-> close ();
?>

프론트 엔드 HTML 및 JavaScript 코드 예제 :

<form id="myForm" action="form_submit.php" method="POST">
    <input type="text" name="name" required>
    <input type="email" name="email" required>
    <button type="submit" id="submitButton">제출하다</button>
</form>

<script>
var form = document.getElementById("myForm");
var submitButton = document.getElementById("submitButton");
var debounceTimer = null;

form.addEventListener("submit", function(e) {
    e.preventDefault(); // 기본 제출 동작을 취소하십시오

    if (debounceTimer) {
        clearTimeout(debounceTimer);
    }

    debounceTimer = setTimeout(function() {
        form.submit(); // 양식 제출 지연
    }, 1000); // 지연 시간이 설정됩니다1두번째
});
</script>

요약

PHP와 JavaScript의 조합을 통해 양식의 반복 제출을 효과적으로 피하고 데이터의 정확성과 프로그램의 정상 작동을 보장 할 수 있습니다. 이 셰이크 방지 기술은 사용자 경험을 향상시킬뿐만 아니라 오해로 인한 오류를 줄입니다.