| Autor | Správa |
camo
 Zablokovaný užívateľ
 Založený: 05.09.2009 Príspevky: 1176 Bydlisko: Lehota pod Vtáčnikom
 | Zaslal: So 03.09.11 14:41 |   |
Mám pár formulárov urobených takýmto štýlom:
odoslať -> spracovať + vypísať OK.. -> pomocou meta refresh presmerovať.
Myslel som že to bude fungovať, ale nefunguje. Pred tým než to prerobím na header(location) by som chcel vedieť, či to naozaj cez ten meta refresh nepôjde. |
| |
    |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3684 Bydlisko: Nitra Vek: 18
 | Zaslal: So 03.09.11 14:45 |   |
tazko zistit, co od nas chces.. skus inak. nazov temy voebc nezodpoveda obsahu. |
_________________ Pocity popi*i, keď víš že všetko hrá jak má, vychádza to všetko pekne, tak jak má, hovorim si ná ne, musíš vedeť plánovať | |
    |
 |
camo
 Zablokovaný užívateľ
 Založený: 05.09.2009 Príspevky: 1176 Bydlisko: Lehota pod Vtáčnikom
 | Zaslal: So 03.09.11 14:48 |   |
No chcem zabrániť viacnásobnému odoslaniu formulára. Myslel som že to pôjde aj cez html meta refresh, ale zdá sa, že nie.
Nejako to nechápem... |
| |
    |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3684 Bydlisko: Nitra Vek: 18
 | Zaslal: So 03.09.11 16:03 |   |
co znamena viacnasobne odoslanie formulara? ked niekto po odoslani formu stlaci f5 alebo sa vrati spat? |
_________________ Pocity popi*i, keď víš že všetko hrá jak má, vychádza to všetko pekne, tak jak má, hovorim si ná ne, musíš vedeť plánovať | |
    |
 |
1daemon1
 Užívateľ
 Založený: 14.04.2009 Príspevky: 824
 | Zaslal: So 03.09.11 17:36 |   |
Refresh pomocou meta ti predsa znova formular neodosle. Chybu mas inde. |
| |
   |
 |
Ďuri
 Administrátor
 Založený: 11.08.2007 Príspevky: 3785 Bydlisko: Brno
 | Zaslal: So 03.09.11 18:26 |   |
| camo napísal: | No chcem zabrániť viacnásobnému odoslaniu formulára. Myslel som že to pôjde aj cez html meta refresh, ale zdá sa, že nie.
Nejako to nechápem... | Nechapem to ani ja. Nepouzivam sice <meta http-equiv=refresh>, ale normalnu HTTP hlavicku Refresh, a vyzera to tak, ze aj ked po uplynuti casu stanoveneho hlavickou Refresh vytvori Firefox GET request, odniekial vyhrabe tie POST data a snazi sa ich pri obnoveni stranky opatovne odoslat. Chyba sa neprejavuje, ked v HTTP hlavicke Refresh pouzijes parameter URL s hodnotou inou ako je sucasna adresa. Internet Explorer sa chova u mna spravne vo vsetkych pripadoch. |
| |
    |
 |
1daemon1
 Užívateľ
 Založený: 14.04.2009 Príspevky: 824
 | Zaslal: So 03.09.11 19:33 |   |
<meta http-equiv="refresh"> mi vo ff blbne ale takto to funguje uplne normalne:
| kód: | <html>
<head>
<?php
if( isset( $_GET['spracuj'] ) ) {
echo "<meta http-equiv=\"refresh\" content=\"2;url=\">";
}
?>
</head>
<body>
<?php
echo print_r( $_POST );
?>
<form action="?spracuj" method="post">
<input type="name" name="hodnota">
<input type="submit">
</form>
</body>
</html> |
|
| |
   |
 |
camo
 Zablokovaný užívateľ
 Založený: 05.09.2009 Príspevky: 1176 Bydlisko: Lehota pod Vtáčnikom
 | Zaslal: So 03.09.11 19:37 |   |
emer:
Presne tak.
Ďuri:
Takže to je chyba FF. Ako vypisuješ hlášky o spacovaní formulára? Posielaš to ako get v URL, alebo inak?
Skúsil som to riešiť tak, že som do toho refreshu dal inú URL a na tej novej URL som to presmeroval na tu starú URL. Vyzerá, že to funguje.
Len mi trochu vadí, že kým sa zobrazuje tá "OK" hláška(kým to nerefreshne), tak sa ten form dá odoslať viac krát. Som si dal na tých hláškach záležať a nerád by som to prerábal. Ale asi to tak musí byť... |
| |
    |
 |
Ďuri
 Administrátor
 Založený: 11.08.2007 Príspevky: 3785 Bydlisko: Brno
 | Zaslal: So 03.09.11 19:45 |   |
camo
Toto som zbuchal. Odosli formular, po odoslani dorazi ta hlavicka Refresh, pockas 5 sekund, ono sa to presmeruje na seba same. To presmerovanie robi kazdy prehliadac GET requestom, cize POST data z predosleho requestu by mali byt davno prec, ale ak si skusis stlacit F5, vo Firefoxe vyskakuje to okienko, aby si potvrdil znovuodoslanie POST dat (pricom tam nemaju byt nijake).
Preco nechces pouzit hlavicku Location? |
| |
    |
 |
camo
 Zablokovaný užívateľ
 Založený: 05.09.2009 Príspevky: 1176 Bydlisko: Lehota pod Vtáčnikom
 | Zaslal: So 03.09.11 20:07 |   |
Ďuri:
Nechce sa mi do toho headeru, lebo som tie hlášky moc prešpekuloval. Majú ešte aj vlastnú šablonu...
A ešte mám voči tomu headeru jednu takú vec. Ono to neposiela session id ak sú zakázané cookies. Je to síce len malá pravdepodobnosť, ale stále mám pri tom takú nechuť k tomu.
1daemon1:
http://www.linuxsoft.cz/article.php?id_article=357
Na konci to máš vysvetlené. |
| |
    |
 |
chrono
 Skúsený užívateľ
 Založený: 13.11.2007 Príspevky: 808
 | Zaslal: So 03.09.11 21:08 |   |
To, že sa neposiela session id nie je problém (keď sa cookie nezmení, tak sa posielať nemusí, prehliadač ho predsa pozná). |
| |
  |
 |
camo
 Zablokovaný užívateľ
 Založený: 05.09.2009 Príspevky: 1176 Bydlisko: Lehota pod Vtáčnikom
 | Zaslal: So 03.09.11 21:36 |   |
No ale keď žiadne cookie nastavné neni tak ani žiadne nepozná, nie? |
| |
    |
 |
chrono
 Skúsený užívateľ
 Založený: 13.11.2007 Príspevky: 808
 | Zaslal: So 03.09.11 21:39 |   |
Kto nepozná?
Prehliadač bude cookie posielať počas celej platnosti a server zvyčajne cookies posiela len keď sa cookie zmení, keď chce cookie vymazať (a teda sa zmení čas expirácie)... |
| |
  |
 |
camo
 Zablokovaný užívateľ
 Založený: 05.09.2009 Príspevky: 1176 Bydlisko: Lehota pod Vtáčnikom
 | Zaslal: So 03.09.11 21:43 |   |
No však, ale keď sú od samého začiatku cookies zakázané, tak prehliadač žiadne nenastaví ani nepošle. Veď SID sa musí vždy najprv nastaviť. A keďže sa to serveru neporadí, tak posiela SID v URL. Až kým nenarazí na ten header() o ktorom sa bavíme. |
| |
    |
 |
chrono
 Skúsený užívateľ
 Založený: 13.11.2007 Príspevky: 808
 | Zaslal: So 03.09.11 21:53 |   |
Nie je problém pridať SID do url "ručne". |
| |
  |
 |
|