Autor Zpráva
Honza Hučín
Profil
Superglobální pole $_POST obsahuje data zaslaná skriptu metodou POST, např. z formulářů. Lze ale v obslužném skriptu hodnotu pole $_POST měnit či přidávat další položky pole?

V manuálu se o tom nic nepíše, z čehož usuzuju, že to zakázané asi není. Ale nemůže to způsobit nějaký problém?

Není to teoretický dotaz, má to (aspoň pro mě) praktický význam.
Hugo
Profil
Honza Hučín

Pole $_POST je stejné, jako jakékoliv jiné pole, takže s ním můžeš dělat co chceš.
mila
Profil
Měnit určutě jde (stačí vyzkoušet) ale nepřijde mi to jako příliš dobrý nápad. Použil bych to pouze nízkoúrovňově, pokud mi všeobecně nevyhovuje, co v $_POST je. Například pokud nemůžu změnit nastavení magic quotes.
Jinak mi přijde dobrý zvyk do jednotlivých fcí předávat parametry a ne v nich přímo tahat data z $_POST, natož je upravovat. Používání globálních proměných je zpravidla špatně, a že jde $_POST na tom nic nemění...
Honza Hučín
Profil
Díky. Podle všeho to opravdu jde. Teď vysvětlím účel, proč jsem se ptal.

Mám funkční aplikaci, která zpracovává data z nějakého formuláře. Na to zpracování mám třídu, která načte data z $_POST, ošetří magic_quotes, data podle potřeby oslashuje atd. atd.

Aplikace využívá sessions. Tedy se může stát, že přihlášenému uživateli vyprší platnost přihlášení, než odešle data z formuláře (i když časový limit je dostatečný). Protože chci být na něho hodný i v takovém případě, chci odeslaná data z $_POST někde uschovat ($_SESSION, databáze), dotyčného nechat znovu přihlásit a pak mu data vrátit a rovnou zpracovat.

Chci využít existující třídu, takže se mi hodí uschovaná data načíst zpátky do $_POST a pak nechat zpracovat běžným způsobem.
Toto téma je uzamčeno. Odpověď nelze zaslat.