L'enregistrement exist-il ?

Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -  
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaiterai savoir si mon code est juste svp.
Je souhaiterai qu'au submit il me dise si oui ou non la clé que j'ai mis dans la zone de texte existe ou pas dans mase mysql

Voici ma page au complet :

<!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" />
</head>

<body>

<?php
$Valid =  $_POST["Validation"];
mysql_connect("127.0.0.1", "root", ""); // Connexion à MySQL
mysql_select_db("computracekey");  
 
$req=mysql_query("select * from clevalidation where Validation='$Valid'"); 
$nb= mysql_num_rows($req);
echo $nb;
if ( $nb > 0 )
{echo ' en table';}
else
{echo ' non connu';}
?>
<form id="form1" name="form1" method="post" action="">
  <input name="Valid" type="text" id="Valid" value="J9JBK9BQT997JYXJC8MGCMHQG" size="35" maxlength="25" />
  <br />
  <label>
  <input type="submit" name="button" id="button" value="Envoyer" />
  </label>
</form>
</body>
</html>


Pouvez-vous m'aider svp ?

12 réponses

  1. le père
     
    Bonjour

    Désolé, il y a un petit problème.

    Tu commences par $Valid = $_POST["Validation"];, mais, la première fois que tu lances ce script, le formulaire n'a pas encore été posté. donc $_POST["Validation"] n'existe pas.

    Quand on traite le formulaire dans la page même où on le définit, il faut faire if (isset($_POST["Validation"])) { au début pour ne traiter le formulaire que si les variables correspondantes existent vraiment.

    Pour le reste, je ne vois pas d'erreur évidente.
    0
  2. Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
     
    Voilà ce que j'ai fais :
    <?php
    if (isset($_POST["Validation"])) {
    $Valid =  $_POST["Validation"];
    
    mysql_connect("127.0.0.1", "root", ""); // Connexion à MySQL
    mysql_select_db("computracekey");  
    
    $req=mysql_query("select * from clevalidation where Validation='$Valid'"); 
    $nb= mysql_num_rows($req);
    echo $nb;
    if ( $nb > 0 )
    {echo ' en table';}
    else
    {echo ' non connu';}}
    ?>
    <form id="form1" name="form1" method="post" action="">
      <input name="Valid" type="text" id="Valid" value="J9JBK9BQT997JYXJC8MGCMHQG" size="35" maxlength="25" />
      <br />
      <label>
      <input type="submit" name="button" id="button" value="Envoyer" />
      </label>
    </form>


    Mais je n'ai aucun message me disant que l'enregistrement existe ou pas.
    Pouvez-vous m'aider d'avantage svp ?
    0
    1. alfredo
       
      salut,

      dans ton formulaire tu dis que name = valid

       <input name="Valid" type="text" id="Valid" value="J9JBK9BQT997JYXJC8MGCMHQG" size="35" maxlength="25" />


      Donc $_POST['Valid'] et non $_POST["Validation"]
      0
  3. le père
     
    Tu appelles le champ "Valid" dans ton formulaire, la variable que tu récupères s'appelle donc $_POST["Valid"] et non pas $_POST["Validation"]
    0
  4. Doctor3600
     
    <?php
    if (isset($_POST["Valid"])) {
    $Valid = $_POST["Valid"];

    $link = mysql_connect("127.0.0.1", "root", ""); // Connexion à MySQL
    mysql_select_db("computracekey", $link);

    $req = mysql_query("select * from clevalidation where Validation = ' . $Valid . '", $link);
    $nb = mysql_num_rows($req);

    if ( $nb == 1 )
    echo 'La clé "' . $Valid .'" existe en table';
    else
    echo 'La clé "' . $Valid .'" n\'est pas connu en table';

    exit();
    }
    ?>
    <form id="form1" name="form1" method="post" action="">
    <input name="Valid" type="text" id="Valid" value="J9JBK9BQT997JYXJC8MGCMHQG" size="35" maxlength="25" />
    <br />
    <br />
    <input type="submit" name="button" id="button" value="Envoyer" />
    </form>

    voila avec quelque corrections/améliorations...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Doctor3600
     
    tu peux améliorer le script en ajoutant mysql_real_escape_string pour le post ;)
    ceci permettra d'éviter les injection SQL

    $Valid = mysql_real_escape_string(trim($_POST["Valid"]));
    0
  7. Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
     
    Oula, je suis perdu avec tout ça moi !
    Merci à tous en tout cas les gars.

    Donc voilà, lorsque j'actualise la page, j'ai ce message :
    Pour afficher cette page, les informations précédemment transmises par Firefox doivent être renvoyées. Ceci répétera toute action (telle qu'une recherche ou un ordre d'achat) entreprise précédemment.

    Et là j'ai l'écho qui se met en marche.
    Comment je peux sauter cette erreur ?
    0
  8. le père
     
    Ce message n'est pas une erreur.
    Quand tu réactualises une page qui contient un formulaire, tu renvoies ton formulaire. Le message que tu vois, c'est simplement ton navigateur qui te prévient que tu es en train de renvoyer le même formulaire.

    En effet, de nombreux scripts trop simples ne tiennent pas compte de la réactualisation et vont refaire une deuxième fois les actions associées au formulaire, ce qui peut être très gênant.
    0
  9. Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
     
    Il a t-il un moyen de remédier à ça ?
    0
  10. le père
     
    Remédier à quoi ? Tu ne veux pas que ton navigateur te prévienne quand tu es sur le point de faire une bêtise ?
    0
  11. Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
     
    Heuu ça si :D mais éviter qu'au refresh de la page il lance le submit :$ ?
    Qu'il se submit seulement au clique du bouton quoi !
    0
  12. le père
     
    Il semblerait qu'il y ait moyen d'éviter ça.
    http://www.siteduzero.com/tutoriel-3-38553-eviter-le-renvoi-repetitif-d-un-formulaire-en-rafraichissant.html
    Je ne connaissais pas, je vais essayer et l'utiliser moi aussi
    0
  13. Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
     
    Merci à tous pour votre aide.

    Voici maintenant l'étape 2 du projet et j'espère le dernier.

    <?php
    if (isset($_POST["Valid"])) {
    $Valid =  $_POST["Valid"];
    
    mysql_connect("127.0.0.1", "root", ""); // Connexion à MySQL
    mysql_select_db("computracekey");  
    
    $req=mysql_query("select * from clevalidation where Validation='$Valid'"); 
    $nb= mysql_num_rows($req);
    echo $nb;
    if ( $nb > 0 )
    header('Location: Validite.php');
    else
    header('Location: Invalidite.php');
    }
    ?>
    
    <table width="800" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td height="592" align="center" valign="middle" background="Ecran.jpg">
    <form id="form1" name="form1" method="post" action="">
    <input name="Valid" type="text" id="Valid" size="35" maxlength="25" />
    <br /><br />
    <input type="submit" name="button" id="button" value="Installer" />
    <a href="#" class="Verif"></a>
    </form>


    Ici j'ai le bouton submit que je souhaiterai remplacer par mon lien hypertexte.
    <input type="submit" name="button" id="button" value="Installer" />
    <a href="#" class="Verif"></a>


    Pourriez-vous svp me guider encore une fois ?
    0