>  기사  >  백엔드 개발  >  페이지 새로 고침 시 의도하지 않은 데이터 삽입을 방지하는 방법은 무엇입니까?

페이지 새로 고침 시 의도하지 않은 데이터 삽입을 방지하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-25 00:40:17566검색

How to Prevent Unintentional Data Insertion on Page Refresh?

페이지 새로 고침 시 의도하지 않은 데이터 삽입 방지

웹 애플리케이션 개발에서는 사용자가 페이지를 새로 고칠 때 의도하지 않은 데이터 삽입을 방지하는 것이 중요합니다. 양식을 제출하는 중입니다. 이 문제에 대한 일반적인 접근 방식 중 하나는 양식 제출 후 사용자를 다른 페이지로 리디렉션하는 것입니다.

데이터베이스에 데이터를 삽입하기 위해 양식을 사용하는 다음 코드 조각을 고려하세요.

<?php
    if (isset($_POST['name'])) {
        // Operation on database, such as inserting $_POST['name'] into a table
        echo "Operation Done";
        die(); // Die() is used to prevent further processing, which would otherwise cause the form to be resubmitted on page refresh.
    }
?>

<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'])) {
        // Operation on database, such as inserting $_POST['name'] into a table
        // Set a success flash message (assuming you are using a framework).
        header('Location: /path/to/record'); // Redirects the user to a different page upon successful form submission.
        exit; // Die() is not necessary here since the header redirect will send the user away from the page.
    }
?>

<form action='page.php' method='post' name="myForm">
    <input type="text" maxlength="50" name="name" class="input400" />
    <input type="submit" name="Submit" />
</form>

양식 제출 후 사용자를 다른 페이지로 리디렉션하면 페이지 새로 고침 시 의도하지 않은 데이터 삽입 위험이 제거됩니다.

위 내용은 페이지 새로 고침 시 의도하지 않은 데이터 삽입을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.