Requete SQL et stripslashes

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 : Requete SQL et stripslashes

par Ryle » 15 sept. 2007, 00:29

Ce n'est pas une question de compatibilité, mais simplement une question de chaines. Affiches la requête SQL généré et regarde si les chaines sont bien délimitées... ça ne sera à mon avis pas le cas si l'une des valeurs contient une apostrohpe...

Si les magic quotes sont activés, alors php va par défaut ajouter des antislashes devant les apostrophes et guillemets de toutes les chaines qu'il reçoit en get ou post pour les protéger.
En faisant un stripslahes() tu les retires, il te faut pourtant bien protéger les chaines que tu insères dans tes requêtes sql. Le mieux pour cela est d'utiliser la fonction mysql_real_escape_string() sur chacune des chaines que tu utilises dans tes requêtes :)

Requete SQL et stripslashes

par agité » 14 sept. 2007, 21:16

Bonjour j'envoie un mail de confirmation aux nouveaux inscrits, une fois qu'ils ont rentré l'url l'inscription est confirmée dans la base de donnée.

Maintenant j'ai reussi a faire mon stripslashes et le echo $pseudo marche bien par contre des que je le passe dans la requete sql il me retourne une erreur et seulement la.

j'ai tenter de mettre dans une variable a côté $Stripseudo ou de mettre le stripslashes dans la requete et même erreur.

Le stripslashes pas compatible avec les requete sql ?

require ("admin/conf.php");
						if (isset($_GET['pseudo'])) {
						$pseudo = $_GET['pseudo'];
						$Stripseudo = stripSlashes($pseudo);
						$verif = mysql_query("SELECT * FROM `membre`  WHERE Pseudo = '".$Stripseudo."' AND Confirm LIKE 'non' ");
						$row=mysql_fetch_array($verif);
						$cle = md5($row['Pseudo'].$row['Passe'].$row['Email']);

						if ($cle == $_GET['cle']) {
						$valide = "UPDATE membre SET Confirm = 'oui' WHERE Pseudo = '".stripslashes($_GET['pseudo'])."' ";
						$test = mysql_query($valide) or die("erreur ! ".mysql_error());
						echo "<b>Inscription finalisée avec succès !<br /><br />
						 <a href=\"../index.php\">Retour a l'index</a>";
						}else{
						echo "lien incorrect : <a href=".$_SESSION['UrlBase']."index.php>Retour a l'index</a>";
						}

						}else{
						echo "lien incorrect : <a href=".$_SESSION['UrlBase']."index.php\">Retour a l'index</a>";
						}