Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wywołanie POST a przycisk wstecz
Forum PHP.pl > Forum > PHP
Kocurro
Witajcie,

Pamiętam, że gdzieś w jakimś wątku ktoś kiedyś napisał jak rozwiązać ten problem smile.gif

Chodzi o to, że przy przesyłaniu formularza POST'em kiedy użytkownik kliknie Wstecz pojawia mu się pytanie czy chce ponownie wysłać swoje zapytanie. Chcę tego uniknąć.

Pamiętam, że to rozwiązanie polegało na wysłaniu jakiegoś header'a z przekierowaniem.

Czy ktoś może wie o co chodzi i jak to zrobić by było dobrze ?

Z góry dziękuję za pomoc i za podpowiedzi.

Pozdrawiam serdecznie,
Łukasz
Spawnm
może w pliku co zapisuje post daj header ('location : foo.php?bar=true');
i sprawdzaj przed zapisem czy w HTTP_REFERER jest bar .
(nie sprawdzałem , więc nie wiem czy to zadziała )
Kocurro
To było raczej wysyłanie headera location z odpowiednim kodem http.
Fifi209
Przecież to informacja z przeglądarki...
sowiq
Robisz wywołanie pliku POST'em.
W pliku:
  1. <?php
  2. zapisz_dane_post();
  3. header("Location: ".$_SERVER['REQUEST_URI']);
  4. ?>
Po przekierowaniu pójdzie zapytanie GET, a nie POST, więc nie będzie problemu z ew. odświeżaniem.
Kocurro
sowiq: jestem skłonny się z Tobą zgodzić ale wydaje mi się, że tam jeszcze był jakiś kod HTTP Response wysyłany - nie wiem czy to nie był przypadkiem kod Temporary moved
sowiq
Cytat(Kocurro @ 12.06.2009, 13:46:42 ) *
nie wiem czy to nie był przypadkiem kod Temporary moved
Tak na prawdę to objętnie. Czy masz 301, 302 czy zwykłe przekierowanie - finalnie przeglądarka wywoła GET'em podany w nagłówku adres. A na tym się opera ta metoda.
Kocurro
Ok, wierzę na słowo - potem sprawdzę smile.gif

Dziękuję Wam Panowie za pomoc.

Pozdrawiam,
Łukasz
ddiceman
Cytat(sowiq @ 12.06.2009, 13:48:18 ) *
Tak na prawdę to objętnie. Czy masz 301, 302 czy zwykłe przekierowanie - finalnie przeglądarka wywoła GET'em podany w nagłówku adres. A na tym się opera ta metoda.

Mylisz sie - nalezy jeszcze podac kod odpowiedzi HTTP (na podstawie http://us.php.net/manual/en/function.header.php#90050), bo Chrome nie przekieruje:
Cytat
I've just discovered that Chrome doesn't perform a Location: instruction unless it gets a Status: first. It's also sensitive to capitalisation.
<?php

header("Status: 200");
header("Location: /home.php");
exit;
?>
sowiq
Cytat(ddiceman @ 12.06.2009, 15:20:15 ) *
Mylisz sie - nalezy jeszcze podac kod odpowiedzi HTTP [...] bo Chrome nie przekieruje
Cenna wskazówka, dzięki. Bo to znaczy, że wszystkie przekierowania, które kiedyś robiłem na header() nie działają ja Chrome...

BTW. coraz bardziej wkurzają mnie rozbieżności w interpretacji praktycznie wszystkiego pomiędzy przeglądarkami :/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.