[PHP] Apagar/Drop de $_POST

R.Raposo

Power Member
Bons dias


Há alguma função ou truque para "apagar" o array post?

Exemplo

PHP:
if ($_POST['Boavista'] == 'Campeão'){
        /*Metodo para apagar o post*/
}
 
Última edição:
Era capaz de jurar que com as superglobais $_GET e $_POST, não podias fazer um unset geral.

Mas como nunca cheguei a testar a minha dúvida, acredito
 
e isso nem funcionava porque $chave não tem o nome do indice, mas o valor nele contido. quanto muito seria

Código:
foreach ($_POST as $index => $chave)
unset($_POST[$index]);



Oi? Claro que funciona..

$_POST é um array bi-dimensional, e o foreach passa os valores por fazes, para que é que tu chamas o $chave se não o vais usar e não precisas dele para o unset? o teu é que da mais umas voltas!
 
certeza? em primeiro lugar nada te garante que $_POST seja bidimensional, e mesmo que garantisse, não dá na mesma. ora testa lá com um exemplo simples, tipo

PHP:
<?php

$_POST[1]="texto1";
$_POST[2]="texto2";
$_POST[3][1]="texto3";
$_POST[3][2]="texto4";

echo "ANTES:<br />";
var_dump($_POST);

foreach($_POST as $chave) {
    unset($_POST[$chave]);
}

echo "<br /><br />DEPOIS:<br />";
var_dump($_POST);

?>
o $chave não vai ficar com o nome do indice (neste caso 1, 2, 3) mas sim com o valor nele contido (aqui "texto1", "texto2" e array).
ou seja neste exemplo está a tentar apagar o $_POST['texto1'] que não existe

o ANTES e o DEPOIS nesse exemplo mostram exactamente os mesmos valores e ainda mostra um
Warning: Illegal offset type in unset in C:\xampp\htdocs\teste.php on line 12

porque na terceira vez tentas apagar o $_POST[array(??)], resultado de ter o array bidimensional

ao fazer foreach($_POST as $index => $chave) é que estás a atribuir o valor a $chave e o nome do indice a $index
 
Back
Topo