PHP if(isset($_POST['...'])) FAIL

Salve, ho provata a costruire questo prototipo di codice per capire

perchč un secondo submit non risulti funzionante in un sistema login/logout

che sto realizzando per un altro sito: pił specificatamente se premo il tasto

cancella esso non cancella per niente il record interessato dal database, ma 

risulta quasi essere un pulsante per tornare indietro al form di inserimento dato.

Possa essere colpa del fatto io stia usando 2 volte un action vuoto facente

riferimento alla stessa pagina? Per lo pił dunque ogni istruzione nella 
if(isset($_POST['delete'])) viene totalmente ignorata: qualcuno sa dirmi il perchč?

GRAZIE MILLE

<html>
<header>
<body>


<!-- INIZIO PHP -->
<?php

        //SE NON HO ANCORA PREMUTO IL TASTO INVIA RENDERIZZO IL FORM
        //CONTENENTE IL TASTO INVIA
         if(!isset($_POST['invia'])){
                
?>
                <form name="invia" action="" method="POST">
                <input type="text" name="dato" value=""/>
            <input type="submit" name="invia" value="invia" />
        </form>
        
<?php
         }
         //ALTRIMENTI VORRA' DIRE CHE IL TASTO SARA' STATO PREMUTO
         //ED AGIRO' DI CONSEGUENZA, INSERENDO $dato NEL DB.<br />
         //INOLTRE RENDERIZZO IL TASTO CHE PERMETTA DI CANCELLARE
         //IL DATO [NB. IL TUTTO E' UN EQUIVALENZA LOGIN/LOGOUT]
         else{
                
                $conn= mysql_connect('localhost','root','');
                mysql_select_db('db_prova',$conn ) or die(mysql_error());
                $dato=$_POST['dato'];
              
                mysql_query(" INSERT INTO test (valore) VALUES ('$dato') ") or die(mysql_error());
                echo "Dato '".$dato."' inserito";
              
      
                //ORA RENDERIZZO IL PULSANTE LOGOUT...
?>
                <form name="cancella" action="" method="GET">
            <input type="submit" name="cancella" value="cancella" />
        </form>
<?php

                //...E SE LO PREMO NON  FA NULLA DI QUELLO ORDINATOGLI<
                //MA RITORNA SEMPLICEMENTE AL FORM DI INSERIMENTO
                if(isset($_POST['cancella'])){
                      
                        mysql_query(" DELETE FROM test WHERE valore='$dato' ") or die(mysql_error());
                        echo "<br>Dato '".$dato."' cancellato";
                      
                }
      
              
              
         }


?><!-- FINE PHP -->


</body>
</header>
</html>
inviato 4 anni fa
Hextar13
X 0 X

Nel secondo form hai messo method="GET", quindi non puoi torvare 'cancella' nel POST.

risposto 4 anni fa
gbenfe
gbenfe
16
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda