Bouton confirmation php

Résolu
salut
j'ai développer un bout de code (php) qui permet le vérification d'un nom dans une base de donne, si le nom existe il affiche un message "nom existant" si nom il enregistre le nouveau nom dans la base mon problème c'est que je veut que l'utilisateur confirme avant d'enregistré le nouveau nom, comment faire pour sa voici mon code :
-----------------------------------------------------------------------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>

<body>
<form method= "post" name="2" > nom <input type= "text" name="nom" ><br>
<input type= "submit" name= "submit" value= "OK" ><br>

<?php

if (isset($_POST['submit']))
{
if (empty($_POST['nom']))
{
echo "saisir le nom";
echo "<br>" ;
}
else
{
echo $_POST['nom'] ;
echo " <br> " ;

//connection au serveur .
mysql_connect ( "localhost" , "root" , "" ) or die ( "connection au serveur impossible" );
//selection de la base .
mysql_select_db ( "amin" ) or die ( "impossible de ce connecter a la base de donnee" );
$req = " select nom from user ";
$res = mysql_query ($req) ; //execution de la requete "req"

$ok=false;
while ($tab = mysql_fetch_array ( $res ) ) //tester l'exsistance du nom
{
if ($tab['nom'] == $_POST['nom'])
$ok=true;
}

if ( $ok == true )
echo "nom exsistant" ;
else
{
echo "nom non exsistant" ;
echo "<br>" ;
echo "enregistrer ?";
$a=$_POST['nom'] ;
$eq = " INSERT INTO user VALUES (NULL,'$a',545) " ;
$es = mysql_query ($eq) ;
}
}

}

?>

</form>
</body>
</html>
-----------------------------------------------------------------------------------------------------------------
merci d'avance

16 réponses

  1. Javascript peux t'aider.

    if (confirm("Etes vous sûr ?"))    
     // Execution du code Php    
    else    
     // Si l'utilisateur n'a pas confirmé    
    


    Ou alors, tu refait tout simplement un <form> à ce niveau :

    if ( $ok == true )   
        echo "nom exsistant" ;   
    else {   
        echo "nom non exsistant" ;   
        echo "<br>" ;   
        echo "enregistrer ?";  
        echo "<form method=\"post\">  
                 <input type=\"hidden\" name=\"verif\" value=".$_POST['nom']." />  
                 <input type=\"submit\" name=\"envoi\" value=\"Envoyer\" />
             </form>";  
        if(isset($_POST['envoi'])){  
            $a=$_POST['verif'] ;   
            $eq = " INSERT INTO user VALUES (NULL,'$a',545) " ;   
            $es = mysql_query ($eq);   
        }  
    }    
    


    Et pense à sécuriser tes requete SQL ... La n'importe quoi peux rentrer.
    Regarde la fonction mysql_real_escape_string()
    1. sa n'a pas marcher
      -------------------------------------------------------------------------------------------------------

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <title>Document sans titre</title>
      </head>

      <body>
      <form method= "post" name="2" > nom <input type= "text" name="nom" ><br>
      <input type= "submit" name= "submit" value= "OK" ><br>

      <?php

      if (isset($_POST['submit']))
      {
      if (empty($_POST['nom']))
      {
      echo "saisir le nom";
      echo "<br>" ;
      }
      else
      {
      echo $_POST['nom'] ;
      echo " <br> " ;

      //connection au serveur .
      mysql_connect ( "localhost" , "root" , "" ) or die ( "connection au serveur impossible" );
      //selection de la base .
      mysql_select_db ( "amin" ) or die ( "impossible de ce connecter a la base de donnee" );
      $req = " select nom from user ";
      $res = mysql_query ($req) ; //execution de la requete "req"

      $ok=false;
      while ($tab = mysql_fetch_array ( $res ) )
      {
      if ($tab['nom'] == $_POST['nom'])
      $ok=true;
      }

      if ( $ok == true )
      echo "nom exsistant" ;
      else
      {
      echo "nom non exsistant" ;
      echo "<br>" ;
      echo "enregistrer ?";

      echo "<form method='post'>
      <input type='hidden' name='verif' value=".$_POST['nom']." > <input type='submit' name='envoi' value='Envoyer' >
      </form>";
      if(isset($_POST['envoi']))
      {
      $a=$_POST['verif'] ;
      $eq = " INSERT INTO user VALUES (NULL,'$a',545) " ;
      $es = mysql_query ($eq) ;
      }
      }
      }
      }

      ?>

      </form>
      </body>
      </html>
      1. Qu'est ce qui n'a pas marché ?
        Le bouton ? Ton code ?
    2. comment peut on afficher un message a la fin de l'enregistrement "nom enregistrer"
      merci d'avance
      1. if ( $ok == true )    
            echo "nom exsistant" ;    
        else {    
            echo "nom non exsistant" ;    
            echo "<br>" ;    
            echo "enregistrer ?";   
            echo "<form method=\"post\">   
                     <input type=\"hidden\" name=\"verif\" value=".$_POST['nom']." />   
                     <input type=\"submit\" name=\"envoi\" value=\"Envoyer\" /> 
                 </form>";   
            if(isset($_POST['envoi'])){   
                $a=$_POST['verif'] ;    
                $eq = " INSERT INTO user VALUES (NULL,'$a',545) " ;    
                $es = mysql_query ($eq); 
                if($es) 
                    echo "Nom enregistré !"; 
                else 
                    echo "Erreur. Nom non enregistré !"; 
            }
        1. sa ne fonctionne pas je pence qu'il y a une erreur quelque part ,aucun enregistrement et fait
          1. et lorque j'enlève echo "<form method=\"post\">
            <input type=\"hidden\" name=\"verif\" value=".$_POST['nom']." />
            <input type=\"submit\" name=\"envoi\" value=\"Envoyer\" />
            </form>";
            if(isset($_POST['envoi'])){

            sa fonctionne
            1. Et si tu fait :

              $nom = $_POST['nom'];
              echo "<form method=\"post\">   
                           <input type=\"hidden\" name=\"verif\" value=\"$nom\" />   
                           <input type=\"submit\" name=\"envoi\" value=\"Envoyer\" /> 
                       </form>";  
              


              Ca marche ?
              1. on utilise TeamViewer ?si vous pouvez?
                1. Si tu veux. Mp moi l'ID et le pass dans ce cas.
                2. je vous envoi un message perso
              2. Probleme résolu.
                Form a l'interieur d'un form + condition if du deuxieme formulaire a sortir du premier.