Autor Zpráva
quatzael
Profil
Potřeboval bych nějak zrušit ve zmíněných prohlížečích to otravný upozorňování na přesměrování. Kdekoliv mám header s url, tak tohle to dělá (dokonce mám i podezření, že snad i tam, kde žádný přesměrování není..).
Nevíte někdo jak na to?
Chamurappi
Profil
Reaguji na quatzaela:
Asi vůbec nevím, o čem mluvíš. Jaké upozornění? Nemáš v počítači nějakou breberku? Nedělá to třeba antivir?
CZghost
Profil
quatzael:
V nastavení prohlížeče. Zejména Firefox má volbu upozornění na přesměrování, nevím jak Opera nebo Chrome (oboje prohlížeče používají stejné jádro).

Chamurappi:
Jaké upozornění?
Tím myslí vyskakovací okénko, které plivá prohlížeč pokaždé, když se stránka pokusí přesměrovat někam jinam. Většinou si to tak nastaví sám uživatel, aniž by věděl, co přesně to dělá.

Nemáš v počítači nějakou breberku? Nedělá to třeba antivir?
I to je možné, proto je vhodné se podívat i tam. V případě breberky může být podobné okno podvrh, jsou i takové, co umí podvrhnout i upozorňovací okno antiviru, který má uživatel nainstalovaný na svém počítači.
Chrome a Opera se snaží implicitně zabránit nákaze, takže, pokud se pokusíš přejít na stránku, která je v databázi vedená jako nakažená, vyhodí ti to hlášku, že přejít na tu stránku může znamenat nakažení počítače virem. Takto vedená stránka je většinou nahlašována uživateli a v databázi se často drží i po vyčištění nákazy. Takže bych se moc nespoléhal na podobná upozornění...

quatzael:
Jestli ti to dělá v hlavičce HTML všude tam, kde je URL, mohlo by to znamenat chybu v prohlížeči (URL je totiž také odkaz na CSS, ikonu a javascript). V takovém případě bych doporučil aktualizovat prohlížeč, případně projet počítač antivirem, jestli se tam náhodou neskrývá nějaký parazit. Ten bude relativně neškodný, ale jistota je jistota. Hlavička HTTP požadavku (v PHP) má jako URL jedině přesměrování, takže tam to vidím jako logické a bude stačit, když se podíváš do nastavení prohlížeče, jestli to nemáš aktivované...
quatzael
Profil
Chamurappi:
Samozřejmě mám na mysli tohle (Opera):



V chromu to taky upozorňuje na přesmyčku, ale jen asi ve starší verzi. Nevím, zkoušel jsem to na jiným počítači a tam to hodilo tohle upozornění a k tomu zahodilo všechny proměnný POST, protože Chrome nějak 307 ignoruje.. (to je asi ten největší problém)

Na mým počítači je chrome v tomhle ok..

Někdo mi tady radil řešení 3xx redirect pro odesílání formulářů.. Tak to teda není moc dobrý řešení když to dělá tohle..
juriad
Profil
Nevím, o co se snažíš, ale na funkcionalitu 307 bych nespoléhal; nikdy jsem tento status nepotřeboval použít.
Postem odeslaný formulář se zpracuje a pak se přesměruje (303, 302, viz popis v článku) na nějakou stránku.
Tak se dělá od nepaměti a všude to funguje.

http://en.wikipedia.org/wiki/Post/Redirect/Get

Pokud použiješ tu 307, možná se tak prohlížeč může chovat; ono to i dává smysl.
quatzael
Profil
juriad:
To je sice hezký, ale jak při tom zabráním, aby tam ten prohlížeč neházel uživatelům ty hlášky o přesměrování?
Fisir
Profil
Reaguji na quatzaela:
Evidentně nijak, je to nějaké bezpečnostní opatření prohlížečů. Zdá se ale, že se to vyvolává jen, když přesměrováváš i s daty z formuláře. Jak konkrétně (tedy kdy se data zpracovávají a jakým způsobem přesměrováváš) provádíš přesměrování?
quatzael
Profil
Fisir:
No to je různě, ale ve většině případů přesměrovávám úplně jednoduše bez dat se status kódem 301 a stejně to dělá..:o(
CZghost
Profil
quatzael:
Jak už jsem naznačil, někde v nastavení prohlížeče by mělo být zaškrtávací políčko s popiskem typu Upozorňovat, když se mě stránka pokusí přesměrovat. Firefox tohle rozhodně má, Nevím jak Chrome a Opera...
juriad
Profil
CZghost:
Irelevantní. Na jiných webech se mu to zřejmě neděje, to by se ptal jinak. Chyba tedy je v jeho webu.
Navíc stejný problém budou mít všichni jeho návštěvníci a po nich nemůžeš chtít, aby si přenastavovali prohlížeč.

quatzael:
Dodej odkaz na web, kde se problém projevuje; bez reálné ukázku nelze už lépe poradit.
quatzael
Profil
juriad:
Už je to asi vyřešeno. Opravdu to dělá ten status kód 307. S tou 301 jsem se asi spletl.
A co mám teda radši používat 302 nebo 303 pro přesměrování se zachováním proměnných POST?
juriad
Profil
Ty nikdy nechceš přesměrovávat se zachováním POSTových proměnných. To, že to děláš, je chyba. Naopak, přesměrování se provádí, aby ses těch proměnných zbavil.
quatzael
Profil
juriad:
Já hlavně potřebuju přesměrování, tak aby se ten dotyčný nemohl vrátit zpátky a formulář odeslat znovu..
Ale ty POST proměnný se mi taky hodí, protože někdy chci ještě zobrazit potvrzení akce a její popis, a k tomu potřebuju ty hodnoty z POST.
Co mám teda použít? 302 nebo 303?
juriad
Profil
To se neřeší pomocí POSTu. Přesměrování a zároveň vypsání hlášky
Správně je 303. Dokud tento kód neexistoval, používalo se 302, takže prohlížeče chápou oba stejně.

Vaše odpověď

Mohlo by se hodit

Nezapomeňte na odkaz na živou ukázku problému.

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0