PHP에서 양식 제출 시 다중 삽입 방지
사용자가 제출 버튼을 여러 번 누르면 양식을 제출할 때 다중 삽입이 발생할 수 있습니다. 이로 인해 의도하지 않은 데이터 중복이 발생할 수 있습니다. 이 문제를 해결하는 방법에는 여러 가지가 있습니다.
JavaScript 제출 버튼 비활성화:
이 방법은 JavaScript를 사용하여 제출 버튼을 비활성화한 후 클릭했습니다. 그러나 버튼을 사용하지 않거나 JavaScript를 비활성화한 상태에서 양식을 제출할 수 있으므로 신뢰할 수 없습니다.
PHP 세션 타임스탬프:
이 접근 방식 양식 제출 시 세션 변수($_SESSION['posttimer'])를 현재 타임스탬프로 설정합니다. 양식 처리 중에 변수가 존재하는지 확인하고 현재 타임스탬프와 비교합니다. 시간 차이가 사전 정의된 임계값(예: 2초)보다 작으면 이중 제출이 감지됩니다.
고유 토큰 포함:
이 방법에는 각 양식에 고유한 토큰이 포함됩니다. 세션 변수는 양식에 사용되는 토큰을 보유합니다. 양식을 제출하면 새 토큰이 생성됩니다. 제출된 토큰이 세션 토큰과 일치하지 않으면 이중 제출로 간주됩니다. 예:
// 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에서 양식을 제출할 때 여러 삽입을 효과적으로 방지하여 데이터 무결성을 보장하고 의도하지 않은 중복을 방지할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3