Избегайте повторной отправки данных при обновлении страницы

Я пишу простую систему входа & Я хотел бы сделать «GET» самонаправленное перенаправление, чтобы избежать повторной отправки данных при обновлении (шаблон POST-Redirect-GET). Как я знаю, есть несколько способов сделать это:

  1. header('Location:main.php');
  2. echo '<body onload="window.location = \''.$HTTP_SERVER_VARS['PHP_SELF'].'\'">body</body>';

  3. echo '<meta http-equiv="refresh" content="0;url='.$HTTP_SERVER_VARS['PHP_SELF'].'">';

Есть мои вопросы:

  1. Какой метод является наиболее правильным?
  2. Почему 3. метод не работает? Это делает перенаправление, но после
    что, когда я нажимаю кнопку «обновить», я все еще получаю «Вы хотите
    «отправить данные» сообщение?

1

Решение

«Самый правильный» 1. потому что это HTTP, просто убедитесь, что вы возвращаете временный код перенаправления, иначе пользователи с прокси в конечном итоге не смогут использовать вашу систему. Другие два полагаются на реализацию браузера (ну, технически 1. тоже) и не гарантированно работают.

Однако вам следует подумать об использовании AJAX и не беспокоиться о проблемах прошлого века.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]