Autor | Zpráva | ||
---|---|---|---|
quatzael Profil |
#1 · Zasláno: 18. 9. 2016, 15:58:52
Ahoj, mám prosím jeden rychlej dotaz.
Když budu mít ve scriptu třikrát po sobě zadanej header, nějak takto: header("Location: /sranka1/index.php", true, 303); header("Location: /sranka2/index.php", true, 303); header("Location: /sranka3/index.php", true, 303); Můžu se spolehnout, že to vždy přesměruje na stranka1 a ostatní bude ignorovat? |
||
Alphard Profil |
Proč bys to dělal?
RFC to zakazuje „A sender MUST NOT generate multiple header fields with the same field name in a message unless either the entire field value for that header field is defined as a comma-separated list [i.e., #(values)] or the header field is a well-known exception (as noted below).“ Chování bude nedefinované, nemůžeš se na to spolehnout. juriad [#5]: Dobrá připomínka, zapomněl jsem, že PHP dělá před odesláním hlaviček ještě tuto mezivrstvu. |
||
Fisir Profil |
#3 · Zasláno: 18. 9. 2016, 16:15:36
Reaguji na quatzaela:
Ne. |
||
TomášK Profil |
#4 · Zasláno: 18. 9. 2016, 16:17:27
Ne, porušuješ protokol (Location header může být v odpovědi jen jednou).
|
||
juriad Profil |
#5 · Zasláno: 18. 9. 2016, 16:22:48
quatzael:
Je to přesně naopak. Tím true říkáš, že nahrazuješ předchozí hodnotu hlavičky Location, tedy by se měla odeslat jen ta poslední, nikoli ta první.
|
||
quatzael Profil |
Mám tam ve skutečnosti nějaký podmínky if a úplně to nejde vyřešit pomocí elseif, protože je to různě v includovaných skriptech.
Nějak takto: if (neco) header("Location: /sranka1/index.php", true, 303); header("Location: /sranka2/index.php", true, 303); Ještě by to asi šlo vyřešit tím, že bych za každý ten header dal exit; , ne? Může to tak být?
|
||
Keeehi Profil |
#7 · Zasláno: 18. 9. 2016, 18:50:40
quatzael:
„Ještě by to asi šlo vyřešit tím, že bych za každý ten header dal exit; , ne? Může to tak být?“
Dost často se to tak dělá. |
||
Časová prodleva: 9 let
|
0