PHP 세션을 사용하여 양식을 제출할 때 다중 삽입을 방지할 수 있습니다. PHP 세션은 POST의 현재 타임스탬프를 설정하는 세션 변수(예:$_SESSION['posttimer'])를 설정합니다. PHP에서 양식을 처리하기 전에 $_SESSION['posttimer'] 변수가 있는지 확인하고 특정 타임스탬프 차이(예:2초 또는 3초)를 확인합니다. 이렇게 하면 실제로 중복된 삽입을 식별하고 제거할 수 있습니다.
간단한 형태 -
// form.html <form action="my_session_file.php" method="post"> <input type="text" name="bar" /> <input type="submit" value="Save"> </form>
위의 'my_session_file.php'에 대한 참조는 다음 코드 줄을 갖습니다 -
예시
if (isset($_POST) && !empty($_POST)) { if (isset($_SESSION['posttimer'])) { if ( (time() - $_SESSION['posttimer']) <= 2) { // less then 2 seconds since last post } else { // more than 2 seconds since last post } } $_SESSION['posttimer'] = time(); }
출력
이것은 다음과 같은 출력을 생성합니다 -
The unique form submitted data.
posttimer 세션 변수가 설정되어 있으며 마지막 POST 작업 이전에 2초 이하의 시간 차이가 있는 경우 제거할 수 있습니다. 그렇지 않으면 저장됩니다. time 함수가 호출되고 값이 posttimer 세션 변수에 할당됩니다.