[RESOLU] Impossible de jouer avec ma BDD.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Impossible de jouer avec ma BDD.

Re: Impossible de jouer avec ma BDD.

par les_zalpes » 24 juil. 2013, 09:19

Code : Tout sélectionner

Bonjour tout le monde. Bon, j'ai trouvé mon soucis. Vous aller rigoler mais ce sont vraiment les choses les plus idiotes qui font galérer un max de temps... J'avais tout simplement omis de nommer mes boutons, donc impossible pour l'appel de ces derniers de savoir quoi faire. En tout cas, merci AB pour les conseils sur la protection des variables :) A plus !

Re: Impossible de jouer avec ma BDD.

par les_zalpes » 23 juil. 2013, 18:12

Code : Tout sélectionner

OK, merci pour cette précision. Pour le moment, tout est sur ma machine et fermée sur l'extérieur donc je vais dans un premier temps m'occuper de mon code et de mes requêtes... J'ai vraiment l'impression que mes bouton sont inactifs car en séparant le tout avec des blocs, ça fonctionne. C'est quand je réuni mes bout de code que plus rien ne marche...

Re: Impossible de jouer avec ma BDD.

par AB » 23 juil. 2013, 18:01

Oui il faut utiliser cette fonction pour un usage interne également. D'une part cela évite d'éventuels injection de code mais cela permet aussi d'ajouter automatiquement des anti-slash pour éviter de rompre la requête sur des ' ou des ".
Evidemment si la variable est un entier et que tu as pris soin de la caster en entier pour être sûr (genre : $id = intval($_GET['id']), c'est pas la peine d'utiliser cette fonction car dans ce cas précis elle n'apportera rien, mais d'un autre côté comme cela ne gêne pas (ou très très rarement), il vaut mieux prendre l'habitude d'utiliser mysql_real_escape_string pour protéger toutes les variables et dans tous types de requêtes (insert, update, delete).

Re: Impossible de jouer avec ma BDD.

par les_zalpes » 23 juil. 2013, 17:45

Code : Tout sélectionner

Bonjour, Merci pour la réponse rapide :) [quote]Utilise le bouton "php" pour formater ton code.[/quote] J'ai eu un soucis disant que mon post était du spam, j'ai donc chercher sur le fofo pour trouver cette mini solution qui est de laisser le post entre les balise CODE, je vais regarde ça ensuite. Effectivement, je n'ai pas forcément pensé à balancer des echos un peu partout mais ce qui est bizarre, c'est que plus rien ne fonctionne depuis que j'ai rajouté le bouton de suppression de users... Je vais me pencher la dessus... [quote]je vois pas trop à quoi sert la définition des variables qui précèdent vu que tu n'utilise que $_GET['id'] dans ta requête.[/quote] C'est effectivement la réflexion que je me suis faite une fois que j'ai posté mon premier message, du coup, c'est supprimé :) Pour ce qui est de la protection des variables, cela est-il aussi le cas pour un usage strictement Interne ? EDIT : J'ai toujours le soucis de postage avec le Spam : /

Re: Impossible de jouer avec ma BDD.

par AB » 23 juil. 2013, 17:28

Bonjour,

Utilise le bouton "php" pour formater ton code.

Pour le reste faut te mettre en mode débug. C'est à dire par exemple faire des écho à différents endroits de ton code pour voir où le code passe et où il ne passe pas. Faire aussi afficher les variables (toujours avec un echo) que tu utilise dans tes requêtes pour voir si elles sont bien renseignées.

Dans ton code de suppression ce n'est pas la peine de définir des variables que tu n'utilise pas. Genre si ta requête est :
$sql3 = "DELETE FROM utilisateur WHERE id = '".$_GET['id']."'" ;
je vois pas trop à quoi sert la définition des variables qui précèdent vu que tu n'utilise que $_GET['id'] dans ta requête.
Au passage les variables externes d'une requête doivent TOUJOURS être protégées. Pour mysql cf "mysql_real_escape_string"

Impossible de jouer avec ma BDD.

par les_zalpes » 23 juil. 2013, 17:01

Code : Tout sélectionner

Bonjour tout le monde. Voilà, je suis en train de faire une page d'administration de compte présent dans une base de données mais impossible de comprendre pourquoi cela ne fonctionne pas. A l'origine, et avant d'implémenter le bouton "supprimer", les modifications marchaient bien. Mais depuis que j'ai voulu rajouter le bouton supprimer, impossible de faire quoi que ce soit, plus rien ne marche et je suis incapable de voir mon erreur, ça fait pourtant un long moment que je suis dessus. Voici mon code : [php]<meta charset="ISO-8859-1"> <?php require_once('connect_compte.php'); if (!isset($_GET['id'])) { echo( "<table class=\"bottomBorder\" align=\"center\">\n" ); echo( "<tr> <td><b><div align=\"center\"> Nom </div></td></b> <td><b><div align=\"center\"> Pr&eacute;nom </div></td></b> <td><b><div align=\"center\"> Login</div></td></b> <td><b><div align=\"center\">T&eacute;l&eacute;phone</div></td></b> <td><b><div align=\"center\">Mot de Passe</div></td></b> <td><b><div align=\"center\">Niveau</div></td></b> <td><b><div align=\"center\">Domaine 1</div></td></b> <td><b><div align=\"center\">Domaine 2</div></td></b> <td><b><div align=\"center\">Domaine 3</div></td></b> <td><b><div align=\"center\">Modification / Suppression</div></td></b> </tr>" ); $requete = mysql_query('SELECT id, nom, prenom, login, tel, pwd, niveau, domaine1, domaine2, domaine3 FROM utilisateur ORDER BY nom'); while( $result = mysql_fetch_object( $requete ) ) { echo( "<tr>\n" ); echo( "<td><div align=\"center\">".$result->nom."</div></td>\n" ); echo( "<td><div align=\"center\">".$result->prenom."</div></td>\n" ); echo( "<td><div align=\"center\">".$result->login."</div></td>\n" ); echo( "<td><div align=\"center\">".$result->tel."</div></td>\n" ); echo( "<td><div align=\"center\">".$result->pwd."</div></td>\n" ); echo( "<td><div align=\"center\">".$result->niveau."</div></td>\n" ); echo( "<td><div align=\"center\">".$result->domaine1."</div></td>\n" ); echo( "<td><div align=\"center\">".$result->domaine2."</div></td>\n" ); echo( "<td><div align=\"center\">".$result->domaine3."</div></td>\n" ); echo( "<td><div align=\"center\"><a href=\"?id=".$result->id."\">Modification</a></td></div>\n" ); echo( "</tr>\n" ); } } if(isset($_GET['id']) && isset($_POST['supprimer'])) { $id = $_POST["id"] ; $nom = $_POST["nom"] ; $prenom = $_POST["prenom"] ; $login = $_POST["login"] ; $pwd = $_POST["pwd"] ; $tel = $_POST["tel"] ; $niveau = $_POST["niveau"] ; $domaine1 = $_POST["domaine1"] ; $domaine2 = $_POST["domaine2"] ; $domaine3 = $_POST["domaine3"] ; $sql3 = "DELETE FROM utilisateur WHERE id = '".$_GET['id']."'" ; $requete3 = mysql_query($sql3) or die( mysql_error() ) ; if($requete3) { echo("La supression &agrave; &eacute;t&eacute; correctement effectu&eacute;e") ; } else { echo("La supression a &eacute;chou&eacute;e") ; } } if(isset($_GET['id']) && isset($_POST['modifier'])) { $id = $_POST["id"] ; $nom = $_POST["nom"] ; $prenom = $_POST["prenom"] ; $login = $_POST["login"] ; $pwd = $_POST["pwd"] ; $tel = $_POST["tel"] ; $niveau = $_POST["niveau"] ; $domaine1 = $_POST["domaine1"] ; $domaine2 = $_POST["domaine2"] ; $domaine3 = $_POST["domaine3"] ; $sql2 = "UPDATE utilisateur SET nom = '".$nom."', prenom = '".$prenom."', login ='".$login."', pwd = '".$pwd."', tel = '".$tel."', niveau = '".$niveau."', domaine1 = '".$domaine1."', domaine2 = '".$domaine2."', domaine3 = '".$domaine3."' WHERE id = '".$id."'" ; $requete2 = mysql_query($sql2) or die( mysql_error() ) ; if($requete2) { echo("La modification &agrave; &eacute;t&eacute; correctement effectu&eacute;e") ; } else { echo("La modification a &eacute;chou&eacute;e") ; } } if (isset($_GET['id'])) $requete = mysql_query("SELECT * FROM utilisateur WHERE id = '".$_GET['id']."'"); if( $result = mysql_fetch_object( $requete ) ) { ?> <form name="insertion" method="POST"> <input type="hidden" name="id" value="<?php echo $result->id; ?>" /> <table width="378" height="333" border="0" align="center" cellpadding="2" cellspacing="2"> <tr align="center"> <td>Nom</td> <td><input type="text" name="nom" value="<?php echo $result->nom; ?>" /></td> </tr> <tr align="center"> <td>Pr&eacute;nom</td> <td><input type="text" name="prenom" value="<?php echo $result->prenom; ?>" /></td> </tr> <tr align="center"> <td>num&eacute;ro de t&eacute;l&eacute;phone</td> <td><input type="text" name="tel" value="<?php echo $result->tel; ?>" /></td> </tr> <tr align="center"> <td>Login</td> <td><input type="text" name="login" value="<?php echo $result->login; ?>" /></td> </tr> <tr align="center"> <td>Mot de Passe</td> <td><input type="text" name="pwd" value="<?php echo $result->pwd; ?>" /></td> </tr> <tr align="center"> <td>Niveau</td> <td><input type="text" name="niveau" value="<?php echo $result->niveau; ?>" /></td> </tr> <tr align="center"><td>Domaine 1</td> <td><strong> <select name="domaine1" size="1"> <option value="">Aucun</option> <option value="facteo">Facteo</option> <option value="sup_serv">Supervision serveurs / réseau</option> <option value="sonate">Sonate</option> <option value="os">Neo / Artic / Irgp</option> <option value="msgrie">Messagerie</option> <option value="tpe">TPE</option> <option value="vigik">Vigik</option> <option value="metro">Métrologie</option> </select> </strong></td> </tr> <tr align="center"><td>Domaine 2</td> <td><strong> <select name="domaine2" size="1"> <option value="">Aucun</option> <option value="facteo">Facteo</option> <option value="sup_serv">Supervision serveurs / réseau</option> <option value="sonate">Sonate</option> <option value="os">Neo / Artic / Irgp</option> <option value="msgrie">Messagerie</option> <option value="tpe">TPE</option> <option value="vigik">Vigik</option> <option value="metro">Métrologie</option> </select> </strong></td> </tr> <tr align="center"><td>Domaine 2</td> <td><strong> <select name="domaine3" size="1"> <option value="">Aucun</option> <option value="facteo">Facteo</option> <option value="sup_serv">Supervision serveurs / réseau</option> <option value="sonate">Sonate</option> <option value="os">Neo / Artic / Irgp</option> <option value="msgrie">Messagerie</option> <option value="tpe">TPE</option> <option value="vigik">Vigik</option> <option value="metro">Métrologie</option> </select> </strong></td> </tr> <tr align="center"> <br><br><br> <td colspan="2"><input type="submit" value="modifier"> ou <input type="submit" value="supprimer"></td> </tr> </table> </form> <?php } ?> <style type="text/css"> table.bottomBorder { border-collapse:collapse; border-width:2px; border-color:#666; } table.bottomBorder td, table.bottomBorder th { border-bottom:1px dotted black;padding:5px; } </style>[/php] Je vous avouerai qu'un peu d'aide serai la bienvenue :) Par avance, merci :)