Correction php MySQL
Fermé
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
-
7 juil. 2011 à 22:51
le père - 9 juil. 2011 à 16:37
le père - 9 juil. 2011 à 16:37
A voir également:
- Correction php MySQL
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Correction orthographe - Guide
- Telecharger clavier français avec correction - Télécharger - Divers Utilitaires
- Mode correction word - Guide
5 réponses
Bonjour,
Je n'ai pas tout regardé en détail, mais je vois déjà un gros malaise au niveau des redirections.
header ('Valide.php'); : 'Valide.php' n'est pas un header http correct. Il faudrait faire header ('Location: Valide.php');
De plus, cette instruction ne provoque pas l'arrêt du script. Donc, comme tu n'as pas de exit() derrière, les autres tests sont effectués et éventuellement d'autres instructions 'header' sont exécutées. Le navigateur de ton visiteur recevra plusieurs "Location: ", je ne sais pas comment il réagira
Il faudrait donc faire (je ne donne que le premier) :
Je n'ai pas tout regardé en détail, mais je vois déjà un gros malaise au niveau des redirections.
header ('Valide.php'); : 'Valide.php' n'est pas un header http correct. Il faudrait faire header ('Location: Valide.php');
De plus, cette instruction ne provoque pas l'arrêt du script. Donc, comme tu n'as pas de exit() derrière, les autres tests sont effectués et éventuellement d'autres instructions 'header' sont exécutées. Le navigateur de ton visiteur recevra plusieurs "Location: ", je ne sais pas comment il réagira
Il faudrait donc faire (je ne donne que le premier) :
if ( $nb > 0 ) { header ('Location: Valide.php'); //Ouvre la page si conditions OK exit(); }
JoJoeyM
Messages postés
60
Date d'inscription
vendredi 18 mars 2011
Statut
Membre
Dernière intervention
8 juillet 2011
5
8 juil. 2011 à 17:14
8 juil. 2011 à 17:14
Bonjour,
En passant, ton script est vulnérable à l'injection SQL. Il faut que tu protèges ta variable $valid. Plus d'info: https://fr.wikipedia.org/wiki/Injection_SQL
En passant, ton script est vulnérable à l'injection SQL. Il faut que tu protèges ta variable $valid. Plus d'info: https://fr.wikipedia.org/wiki/Injection_SQL
JoJoeyM
Messages postés
60
Date d'inscription
vendredi 18 mars 2011
Statut
Membre
Dernière intervention
8 juillet 2011
5
8 juil. 2011 à 17:36
8 juil. 2011 à 17:36
C'est un vrai fléau ces SQLi. J'espère qu'ils mettent pas l'adresse de leur site ;-)
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
8 juil. 2011 à 18:55
8 juil. 2011 à 18:55
Merci à tous les deux.
Alors voici la modification :
Lorsque je met
Aussi, lorsque les
Merci encore pour votre aide !
Alors voici la modification :
<?php if (isset($_POST["Valid"])) {$Valid = $_POST["Valid"]; mysql_connect("127.0.0.1", "root", ""); mysql_select_db("computracekey"); $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 ) {header ('Location: Validite.php'); } //Puis insert dans la base la clé inscrite dans $Valid dans le ValidKey } ?>
Lorsque je met
exit();à chaque condition, il ne fonctionne pas. J'ai essayé de l'enlever et il fonctionne. Je voudrais savoir si c'est normal.
Aussi, lorsque les
ExistKey = 1 | VerifKey = 0 = YES, comment je peux ajouter $Valid dans la table ?
Merci encore pour votre aide !
Bonjour
Ce n'est pas normal que ça ne marche pas avec exit(). Ou alors, c'est que la page que tu nous montres est elle-même KeyProduct.php, mais alors je ne vois pas l'intérêt de refaire une redirection.
Qu'est-ce qui ne fonctionne pas quand tu ajoutes le exit() ? S'il te plaît, chaque fois que tu dis qu'il y a quelque chose qui ne va pas, décris exactement quoi.
Dans ton premier script, il y avait une redirection vers Valide.php qui me semblait assez logique; c'est devenu KeyProduct.php. Je ne comprends pas pourquoi.
Enfin, pour mettre à jour ta dernière clé, la syntaxe serait (à mettre DANS le if)
Ce n'est pas normal que ça ne marche pas avec exit(). Ou alors, c'est que la page que tu nous montres est elle-même KeyProduct.php, mais alors je ne vois pas l'intérêt de refaire une redirection.
Qu'est-ce qui ne fonctionne pas quand tu ajoutes le exit() ? S'il te plaît, chaque fois que tu dis qu'il y a quelque chose qui ne va pas, décris exactement quoi.
Dans ton premier script, il y avait une redirection vers Valide.php qui me semblait assez logique; c'est devenu KeyProduct.php. Je ne comprends pas pourquoi.
Enfin, pour mettre à jour ta dernière clé, la syntaxe serait (à mettre DANS le if)
$ligne=mysql_fetch_array($req); // pour récupérer enregistrement avec Validkey=0 $requete="UPDATE key_computrace SET Verifkey =ExistKey WHERE id=$ligne[id]"; mysql_query($req) or die (mysql_error());
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
9 juil. 2011 à 10:33
9 juil. 2011 à 10:33
Bonjour,
Effectivement, ma page est KeyProduct.php
Pardonne moi, je suis tellement nouveau en php que je me perd encore même dans mes explications.
Voilà par fini ce qui en est du code :
Pour la vérification des requettes, il fonctionne, mais lorsqu'il arrive à ajouter dans la table les enregistrements, là il "saute", pourtant il vérifie bien
Je suis perdu je te promet !
Effectivement, ma page est KeyProduct.php
Pardonne moi, je suis tellement nouveau en php que je me perd encore même dans mes explications.
Voilà par fini ce qui en est du code :
<?php if (isset($_POST["Valid"])) {$Valid = $_POST["Valid"]; mysql_connect("127.0.0.1", "root", ""); mysql_select_db("Key_Computrace"); $delai=1; $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'); } } ?>
Pour la vérification des requettes, il fonctionne, mais lorsqu'il arrive à ajouter dans la table les enregistrements, là il "saute", pourtant il vérifie bien
$req=mysql_query("select * from Key_Computrace where ExistKey='$Valid' and VerifKey='0'");
Je suis perdu je te promet !
Je ne comprends toujours pas ce que tu dis
là il "saute" Qu'est-ce que ça veut dire ? Ton PC se met à faire des bonds ?
pourtant il vérifie bien
$req=mysql_query("select * from Key_Computrace where ExistKey='$Valid' and VerifKey='0'"); Qu'est-ce que ça veut dire ? Une ligne de code PHP ne se vérifie pas. Elle s'exécute ou ne s'exécute pas, Elle produit une erreur ou non, la requête retourne un résultat ou pas.. Il y a 36 interprétations possible. Et qui est ce "il" qui "vérifie bien" ?
D'autre part, je t'ai expliqué au début pourquoi il fallait mettre exit. Visiblement tu n'en tiens pas compte. Et si tu dis que ça ne marche pas avec, moi je te répète que ça devrait. Si ça ne marche pas avec, c'est qu'il y a un autre problème et ça n'est pas en le négligeant que ton script marchera mieux.
là il "saute" Qu'est-ce que ça veut dire ? Ton PC se met à faire des bonds ?
pourtant il vérifie bien
$req=mysql_query("select * from Key_Computrace where ExistKey='$Valid' and VerifKey='0'"); Qu'est-ce que ça veut dire ? Une ligne de code PHP ne se vérifie pas. Elle s'exécute ou ne s'exécute pas, Elle produit une erreur ou non, la requête retourne un résultat ou pas.. Il y a 36 interprétations possible. Et qui est ce "il" qui "vérifie bien" ?
D'autre part, je t'ai expliqué au début pourquoi il fallait mettre exit. Visiblement tu n'en tiens pas compte. Et si tu dis que ça ne marche pas avec, moi je te répète que ça devrait. Si ça ne marche pas avec, c'est qu'il y a un autre problème et ça n'est pas en le négligeant que ton script marchera mieux.