"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > PHP에서 양식을 제출할 때 다중 삽입을 방지하는 방법은 무엇입니까?

PHP에서 양식을 제출할 때 다중 삽입을 방지하는 방법은 무엇입니까?

2024-11-08에 게시됨
검색:835

How to Prevent Multiple Inserts When Submitting Forms in PHP?

PHP에서 양식 제출 시 다중 삽입 방지

사용자가 제출 버튼을 여러 번 누르면 양식을 제출할 때 다중 삽입이 발생할 수 있습니다. 이로 인해 의도하지 않은 데이터 중복이 발생할 수 있습니다. 이 문제를 해결하는 방법에는 여러 가지가 있습니다.

  1. JavaScript 제출 버튼 비활성화:

    이 방법은 JavaScript를 사용하여 제출 버튼을 비활성화한 후 클릭했습니다. 그러나 버튼을 사용하지 않거나 JavaScript를 비활성화한 상태에서 양식을 제출할 수 있으므로 신뢰할 수 없습니다.

  2. PHP 세션 타임스탬프:

    이 접근 방식 양식 제출 시 세션 변수($_SESSION['posttimer'])를 현재 타임스탬프로 설정합니다. 양식 처리 중에 변수가 존재하는지 확인하고 현재 타임스탬프와 비교합니다. 시간 차이가 사전 정의된 임계값(예: 2초)보다 작으면 이중 제출이 감지됩니다.

  3. 고유 토큰 포함:

    이 방법에는 각 양식에 고유한 토큰이 포함됩니다. 세션 변수는 양식에 사용되는 토큰을 보유합니다. 양식을 제출하면 새 토큰이 생성됩니다. 제출된 토큰이 세션 토큰과 일치하지 않으면 이중 제출로 간주됩니다. 예:

    // form.php
    $_SESSION['token'] = md5(session_id() . time());
    
    echo '
    '; // foo.php if (isset($_SESSION['token'])) { if (isset($_POST['token']) && $_POST['token'] != $_SESSION['token']) { // Double submit detected } }

이러한 방법 중 하나를 구현하면 PHP에서 양식을 제출할 때 여러 삽입을 효과적으로 방지하여 데이터 무결성을 보장하고 의도하지 않은 중복을 방지할 수 있습니다.

릴리스 선언문 이 글은 1729517478에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3