MySQL et php - Urgent svp !

Fermé
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - Modifié par Sinistrus le 9/07/2011 à 00:08
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 9 juil. 2011 à 10:40
Bonjour,

Aidez moi à corriger ce code svp !
Il n'enregistre pas dans ma base de données :'( !!!
<?php  
if (isset($_POST["Valid"])) {$Valid =  $_POST["Valid"];  

mysql_connect("127.0.0.1", "root", ""); mysql_select_db("Key_Computrace");  

$req=mysql_query("select * from Key_Computrace where ExistKey='$Valid' and VerifKey='$Valid'"); // ExistKey = 1 | VerifKey = 1 = NO  
$nb=mysql_num_rows($req); if ( $nb > 0 ) {header ('Location: KeyProduct.php'); }  

$req=mysql_query("select * from Key_Computrace where ExistKey<>'$Valid'");       // ExistKey = 0 | VerifKey = 0 = NO  
$nb=mysql_num_rows($req); if ( $nb > 0 ) {header ('Location: KeyProduct.php'); }  

$req=mysql_query("select * from Key_Computrace where ExistKey<>'$Valid' and VerifKey='0'");   // ExistKey = 0 | VerifKey = 0 = NO  
$nb=mysql_num_rows($req); if ( $nb > 0 ) {header ('Location: KeyProduct.php'); }  

$req=mysql_query("select * from Key_Computrace where ExistKey='$Valid' and VerifKey='0'");   // ExistKey = 1 | VerifKey = 0 = YES  
$nb=mysql_num_rows($req); if ( $nb > 0 ) {  
$req=mysql_query("INSERT INTO Key_Computrace (VerifKey, Nom, Email, Vente) VALUES ('$Valid','&Nom','&Email','$Vente')");  
header ('Location: Validite.php'); }  

}  
?>


A voir également:

9 réponses

Utilisateur anonyme
9 juil. 2011 à 00:17
Salut !
Pourquoi dans le insert into, c'est "&Nom" et pas "$Nom" ?
Ensuite, s'il n'enregistre pas, c'est qu'il y a une erreur dans la bdd. Pour tester, remplace la ligne header("location... par echo mysql_error(); et vois ce qu'il te dit : si il y a marqué quelque chose, c'est ta chaine qui est mauvaise !
0
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
9 juil. 2011 à 00:20
J'ai remplacé header ('Location: Validite.php'); } par echo mysql_error(); }
Pour le $Nom j'ai pas compris
Mais sinon il ne me dis rien, aucun message d'erreur ne s'affiche :s
0
Utilisateur anonyme
9 juil. 2011 à 00:29
Tu as marqué ça comme code :

$req=mysql_query("INSERT INTO Key_Computrace (VerifKey, Nom, Email, Vente) VALUES ('$Valid','&Nom','&Email','$Vente')");
Mais ça ne soit pas être comme ça ?

$req=mysql_query("INSERT INTO Key_Computrace (VerifKey, Nom, Email, Vente) VALUES ('$Valid','$Nom','$Email','$Vente')");
Bon s'il n'enregistre pas et qu'il n'y a pas d'erreur, c'est qu'il ne traite même pas la ligne... Remplace tout les header("location...") par echo "num de ton choix"... teste ce code tout fait et dis moi ce qui en ressort :

<?php  
if (isset($_POST["Valid"])) {$Valid =  $_POST["Valid"];  
echo "$_POST[Valid] valide<br/>";
mysql_connect("127.0.0.1", "root", ""); mysql_select_db("Key_Computrace");  

$req=mysql_query("select * from Key_Computrace where ExistKey='$Valid' and VerifKey='$Valid'"); // ExistKey = 1 | VerifKey = 1 = NO  
$nb=mysql_num_rows($req); if ( $nb > 0 ) {echo('Location: KeyProduct.php ligne 7<br/>'); }  

$req=mysql_query("select * from Key_Computrace where ExistKey<>'$Valid'");       // ExistKey = 0 | VerifKey = 0 = NO  
$nb=mysql_num_rows($req); if ( $nb > 0 ) {echo('Location: KeyProduct.php ligne 10br/>'); }  

$req=mysql_query("select * from Key_Computrace where ExistKey<>'$Valid' and VerifKey='0'");   // ExistKey = 0 | VerifKey = 0 = NO  
$nb=mysql_num_rows($req); if ( $nb > 0 ) {echo('Location: KeyProduct.php ligne 13<br/>'); }  

$req=mysql_query("select * from Key_Computrace where ExistKey='$Valid' and VerifKey='0'");   // ExistKey = 1 | VerifKey = 0 = YES  
$nb=mysql_num_rows($req); if ( $nb > 0 ) {
echo "Query traitée<br/>";
$req=mysql_query("INSERT INTO Key_Computrace (VerifKey, Nom, Email, Vente) VALUES ('$Valid','&Nom','&Email','$Vente')");  
echo('Location: Validite.php<br/>'); } else{
	echo "Query non teste<br/>";
}

}else{
	echo "$_POST[Valid] invalide<br/>";
}  
?>
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 9/07/2011 à 00:38
Désolé, je l'avais testé sur le serveur sans changer les paramètres de connexion :

PA0B8-I5PMC-JT90S-0B9PO-01VGP valide
Location: KeyProduct.php ligne 10br/>Location: KeyProduct.php ligne 13
Query traitée
Location: Validite.php


Voici le résultat
0

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

Posez votre question
Utilisateur anonyme
9 juil. 2011 à 00:40
Ah ba voila pourquoi ca marche pas, il n'arrive même pas a se connecter à mysql ! tu est sur que tu a le bon trio serveur login et mot de passe ? Ca semble être les mauvais...
0
Utilisateur anonyme
9 juil. 2011 à 00:44
J'ai pas vu ton dernier post
0
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
9 juil. 2011 à 00:47
Oui, je suis sûr (enfin je penses) puisque il vérifie la clé comme ceci :
Clé 1- Si je l'ai pas dans la table dans ExistKey et VerifKey il reste sur la page
Clé 2- Si je l'ai dans la table dans ExistKey et VerifKey il reste sur la page
Clé 3- Si je l'ai dans la table dans ExistKey et VerifKey = 0 alors il ajoute les enregistrements et va sur Validite.php

Or là il fait toutes les conditions normalement et pars si la clé est 1/0 sur la page Validite.php

Condition de validité :
ExistKey/VerifKey
1/0

Conditions de refus :
ExistKey/VerifKey
0/0
1/1

Structure de la table :
CREATE TABLE IF NOT EXISTS 'Key_Computrace' (
  'id' int(10) NOT NULL auto_increment,
  'ExistKey' varchar(29) character set utf8 collate utf8_bin NOT NULL,
  'VerifKey' varchar(29) character set utf8 collate utf8_bin NOT NULL,
  'Nom' varchar(50) NOT NULL,
  'Email' varchar(50) NOT NULL,
  'Vente' varchar(50) NOT NULL,
  PRIMARY KEY  ('id')
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4014 ;
0
Utilisateur anonyme
9 juil. 2011 à 00:48
Voila pourquoi rien est ajouté dans ta base de donnée. le code s'arrête à la ligne 10 puis 13, parce que la redirection vers KeyProduct.php. Le code n'as pas le temps de s'occuper de $req=mysql_query("INSERT INTO Key_Computrace (VerifKey, Nom, Email, Vente) VALUES ('$Valid','&Nom','&Email','$Vente')"); puisqu'il est redirigé avant... Maintenant à toi de voir comment tu peux changer ton programme pour qu'il redirige seulement après cette ligne ? Je ne sais pas très bien ce que tu veux faire... Par contre je suis désolé, mais là, je vois l'écran flou XD ! Bon courage et bonne nuit !
0
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
9 juil. 2011 à 00:49
Merci, désolé pour tes yeux :$
Je laisserai le résultat final et si ça ne te dérange pas trop de voir ça demain :$
0
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
9 juil. 2011 à 10:40
Non, toujours pas de résultat satisfaisant !
Voici ce qu'est devenu mon code :
<?php
if (isset($_POST["Valid"])) {$Valid =  $_POST["Valid"];

mysql_connect("127.0.0.1", "root", ""); mysql_select_db("Key_Computrace"); 

$delai=0;
$url='http://mondomaine.com/KeyProduct.php';

$req=mysql_query("select * from Key_Computrace where ExistKey='$Valid' and VerifKey='$Valid'");
$nb=mysql_num_rows($req); if ( $nb > 0 ) {header("Refresh: $delai;url=$url"); }

$req=mysql_query("select * from Key_Computrace where ExistKey<>'$Valid'"); 
$nb=mysql_num_rows($req); if ( $nb > 0 ) {header("Refresh: $delai;url=$url"); }

$req=mysql_query("select * from Key_Computrace where ExistKey<>'$Valid' and VerifKey='0'");
$nb=mysql_num_rows($req); if ( $nb > 0 ) {header("Refresh: $delai;url=$url"); }

$req=mysql_query("select * from Key_Computrace where ExistKey='$Valid' and VerifKey='0'");
$nb=mysql_num_rows($req); if ( $nb > 0 ){
$req=mysql_query("INSERT INTO Key_Computrace (VerifKey, Nom, Email, Vente) VALUES ('$Valid','$Nom','$Email','$Vente')");  
header ('Location: Validite.php'); }
}
?>


Ce qui m'étonne c'est qui lis les conditions et valide la redirection si le code est erroné ou valide ! Mais alors pourquoi il n'enregistre pas dans la table ???
0