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 ?

A voir également:

12 réponses

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
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
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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
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
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
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
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
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
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