Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wywołanie POST a przycisk wstecz
Kocurro
post
Post #1





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Spawnm
post
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




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 )
Go to the top of the page
+Quote Post
Kocurro
post
Post #3





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


To było raczej wysyłanie headera location z odpowiednim kodem http.
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Przecież to informacja z przeglądarki...


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
sowiq
post
Post #5





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Kocurro
post
Post #6





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
sowiq
post
Post #7





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Kocurro
post
Post #8





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Ok, wierzę na słowo - potem sprawdzę smile.gif

Dziękuję Wam Panowie za pomoc.

Pozdrawiam,
Łukasz
Go to the top of the page
+Quote Post
ddiceman
post
Post #9





Grupa: Zarejestrowani
Postów: 326
Pomógł: 121
Dołączył: 23.07.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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;
?>
Go to the top of the page
+Quote Post
sowiq
post
Post #10





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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 :/

Ten post edytował sowiq 12.06.2009, 14:27:57
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 19:11