Autor Zpráva
JanS
Profil
Potřeboval bych vymazat (stačí nastavit hodnotu na přázdný řetězec) hodnoty u všech indexů v poli POST a připadalo mi zbytečně složité nastavovat je všechny manuálně na "". Zkoušel jsem hodně verzí, jako třěba
function clearpost($post) {
foreach ($post as $clear) {
$post["$clear"] = "";
}
return 1;
}


kdy bych potom zadal clearpost($_POST) a podobné varianty této funkce, ale žádná mi nefungovala. Nevím, jestli už na to nějaká funkce neexistuje (u php bych se tomu moc nedivil), nebo na to možná jdu úplně blbě. Co se s tím dá dělat? Díky za cokoliv.
mike07
Profil *
Ahoj,

tohle bys musel udelat takhle:

function clearpost() {
foreach ($_POST as $key => $value) {
$_POST[$key] = "";
}
return 1;
}

clearpost();


ale jednodussi by to bylo asi tak :-)

unset($_POST);


Myslim ze by to melo fungovat :-)
Taps
Profil
JanS
a header by nestačilo ?
bukaj
Profil
JanS
Nejdřív bych zvážil, je-li takové "promazání" post dat vůbec nutné. Ale jinak dalším způsobem je použít referencí (dá se použít i na jiné pole, ne jen $_POST):
function clearpost(&$post) { // ...
// a možná radši; aby se dovnitř dostala opravdu jen pole
function clearpost(array &$post) { // ...


*EDIT: jelikož nepředpokládám nutnost zachovat klíče v $_POSTu, když jde o "promazání", nebylo by nejjednodušší prosté: $_POST = array();?
mike07
Profil *
Taps: header by asi stacilo, ale bral jsem to tak ze to chce bez presmerovani

bukaj: reference by asi taky sla, ale na druhou stranu proc davat referenci na superglobalni pole?

unset() je podle me nejjednodussi...
Měsíček
Profil
Taky bych se přimlouval za funkci unset(); je na tento účel i přímo určena :)
bukaj
Profil
mike07
reference by asi taky sla, ale na druhou stranu proc davat referenci na superglobalni pole?
Jedním slovem - znovupoužitelnost.
mike07
Profil *
bukaj: :-) to potom jo...
JanS
Profil
Diky, něco si určitě vyberu. :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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