| 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