1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[PHP] Apagar/Drop de $_POST

Discussão em 'Web Development' iniciada por R.Raposo, 30 de Maio de 2008. (Respostas: 7; Visualizações: 3870)

  1. R.Raposo

    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: 30 de Maio de 2008
  2. hostmake

    hostmake Power Member

    unset($_POST['Boavista']);
     
  3. hostmake

    hostmake Power Member

    Ai, o array todo.

    foreach ($_POST as $chave)
    unset($_POST[$chave]);
     
  4. Re

    oi então fazes só unset($_POST); n sendo preciso fazer o for each, pk este apaga a variável $_POST.:001:
     
  5. hostmake

    hostmake Power Member

    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
     
  6. MPalhas

    MPalhas Power Member

    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]);
     
  7. hostmake

    hostmake Power Member



    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!
     
  8. MPalhas

    MPalhas Power Member

    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
     

Partilhar esta Página