새로 고침 시 중복 양식 제출 방지
웹 애플리케이션 개발에서는 양식 제출 후 페이지를 새로 고치면 다음과 같은 상황이 발생하는 경우가 많습니다. 의도하지 않은 다중 제출. 이 동작은 서버측 코드가 양식 제출 처리를 적절하게 처리하지 못할 때 발생할 수 있습니다.
양식이 제출 시 데이터베이스에 데이터를 삽입하도록 의도된 다음 예를 고려하십시오.
<?php if (isset($_POST['name'])) { // Database operation to insert $_POST['name'] echo "Operation Done"; die(); } ?> <form action='page.php' method='post' name="myForm"> <input type="text" maxlength="50" name="name" class="input400" /> <input type="submit" name="Submit" /> </form>
양식을 제출한 후 데이터가 데이터베이스에 성공적으로 삽입되고 "작업 완료" 메시지가 표시됩니다. 그러나 나중에 페이지를 새로 고치면 양식 제출이 반복되어 데이터가 다시 삽입됩니다.
해결책: 성공적인 양식 제출 후 리디렉션
피하려면 이 문제는 양식 제출을 성공적으로 처리한 후 다른 페이지로 리디렉션하는 것이 중요합니다. 이렇게 하면 페이지를 새로 고칠 때 동일한 양식 제출 페이지가 아닌 새 페이지가 로드됩니다.
리디렉션의 예:
<?php if (isset($_POST['name'])) { // Database operation to insert $_POST['name'] header('Location: /path/to/record'); exit; } ?>
헤더 리디렉션을 추가하면 코드는 데이터베이스 작업이 완료된 후 새 경로로 리디렉션이 발생하도록 보장합니다. 사용자가 페이지를 새로 고치면 양식 제출 페이지 대신 새 경로로 이동됩니다.
리디렉션의 이점:
위 내용은 새로 고침 시 양식 제출이 반복되는 것을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!