L'enregistrement exist-il ?

Fermé
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 5 juil. 2011 à 14:18
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 6 juil. 2011 à 00:37
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

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 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
5 juil. 2011 à 16:29
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
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
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
<?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
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 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
5 juil. 2011 à 17:14
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
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 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
5 juil. 2011 à 17:33
Il a t-il un moyen de remédier à ça ?
0
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 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
Modifié par Sinistrus le 5/07/2011 à 18:04
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
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 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
6 juil. 2011 à 00:37
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