Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5366 connectés 

 


Dernière réponse
Sujet : Probleme addslashes, stripslashes ?
ethernal article intéressant
http://www.phpinfo.net/?p=articles&rub=magic-quotes
 
le but est d'arriver à des fonctions du style  
function MyStripSlashes( $chaine ) {
  return( get_magic_quotes_gpc() == 1 ?  
          stripslashes($chaine) :  
          $chaine );
}
 
d'après ce qu'ils disent...

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
ethernal article intéressant
http://www.phpinfo.net/?p=articles&rub=magic-quotes
 
le but est d'arriver à des fonctions du style  
function MyStripSlashes( $chaine ) {
  return( get_magic_quotes_gpc() == 1 ?  
          stripslashes($chaine) :  
          $chaine );
}
 
d'après ce qu'ils disent...
youdontcare houla :D pas touche donc :D
ethernal en runtime ? hum je pense pas :(
(je suis en off)
phpmyadmin a dans le script de configuration (dernière ligne)
"set_magic_quotes_runtime(0);" qui semblerait être une option de configuration en runtime.
 
pourtant, il refuse de valider une requête qui contient des ' dans le texte d'une variable même qd je le passe à 1.
 
évite d'y toucher le résultat est grave :D
il met des \ avant tout " ou ' même dans le code html... :lol:

 

[edtdd]--Message édité par ethernal--[/edtdd]

youdontcare

ethernal a écrit a écrit :

lors de l'envoi d'info avec post/get php rajoute des slashes (il fait addslahes() ) pour éviter cela met "magic_quotse_gpc" à off dans php.ini


:jap: effectivement, les deux serveurs ont des valeurs différentes pour magic quotes.
 
on peut le changer en runtime ? ie, est-ce affecté par le safe mode ? (comme set_time_limit())

ethernal lors de l'envoi d'info avec post/get php rajoute des slashes (il fait addslahes() ) pour éviter cela met "magic_quotse_gpc" à off dans php.ini
 
si tu n'as pas envie ou que tu ne peux pas le faire faudrait tester sans addlashes puisque il les rajoutes automatiquement.
 
ça sert pour la sécurité je pense ;)
et "faciliter" aussi la tâche du programmeur qui ne doit pas s'occuper du contenu de la variable postée
 
-- trop tard ;) --

 

[edtdd]--Message édité par ethernal--[/edtdd]

Kyle ha, oki boss ! :D
Merci encore !
youdontcare

kyle a écrit a écrit :

de faire un stripslashes() suivit d'un addslashes() !
 
A moins que j'ai mal compris...  



à ce que le même code marche sur deux serveurs différents, ie le premier qui ajoute les slash automatiquement, le deuxième qui ne les ajoute pas :D (y'a sûrement plus clean, c'est du vieux code :D)

Kyle Bon, je viens de trouver ! :)
 
Manquais bien un addslashes !
 
J'ai rajouter la ligne :
 
$resultsurnom = addslashes($result[surnom]);
 
apres :
 
$result = mysql_fetch_array($req);
 
:)
Kyle de faire un stripslashes() suivit d'un addslashes() !
 
A moins que j'ai mal compris...
youdontcare

kyle a écrit a écrit :

donc a quoi cela peur servir ?  



à quoi quoi peut servir ? :??:

Kyle J'ai essayer avec ou sans addslashes() et bien, meme résultat :(
 
Par ailleur, j'ai tester l'inscription avec un stripslashes puis addslashes, et bien dans ma table, le nom est : l'enfoire et non l\'enfoire... donc a quoi cela peur servir ?
youdontcare pour info, tout ce que je récupère d'un formulaire pour ensuite l'insérer dans mysql subit un stripslashes() puis un addslashes(). ce n'est pas optimal, mais comme je bosse avec deux serveurs différents ça permet de récupérer les mêmes infos sur les deux et de ne pas faire deux scripts différents.
youdontcare regarde bien ce que te sort le formulaire lors de l'inscription d'un membre. suivant les versions / options de php, les slashs sont rajoutés ou non. si php les rajoute, tu n'as pas besoin de le faire.  
 
car si tu fais insert .... 'l\'enfoiré' tu te retrouveras avec l'enfoiré dans ta table.
 
là, tu dois sûrement faire un addslashes() en trop, ta requête doit ressembler à 'l\\'enfoiré', et tu te retrouves avec l\'enfoiré dans ta table (ce qui n'est pas nécessaire, et plutôt redondant).
Kyle Le voilou, si vous voyez une erreur ! :)
 
if(isset($submit)){
$cryptedPwd = md5($pass);
$surnom = addslashes($surnom);
$query = "select * from $table_membre where surnom = '".$surnom."' and pass = '".$cryptedPwd."'";
$req = mysql_query($query);
$result = mysql_fetch_array($req);
if($surnom != $result[surnom] || $cryptedPwd != $result[pass]) {
$non = "<script>
  function redirect()
  {
  window.location.replace(\"?menu=membre&rubriqu
 
e=identification&membre=login&%s\" );
  }
  setTimeout(\"redirect();\", 1250);
  </script>Identification refusée.";
} else {
$email_session = $result[email];
session_register("surnom" );
session_register("email_session" );
$oui = "<script>
  function redirect()
  {
  window.location.replace(\"?menu=membre&rubriqu
 
e=index&membre=membre&%s\" );
  }
  setTimeout(\"redirect();\", 1250);
  </script>Identification réussie.";
}
}

 

[edtdd]--Message édité par kyle--[/edtdd]

Kyle bon, dans phpmyadmin me retourne le résultat lorsque je met :
 
select * from membre where surnom = 'l\\\'enfoire'
 
bien vu, youdontcare ! ;)
 
Donc, le prob se situe dans mon script :(
stef_dobermann je crois aussi qu'il y a PHP qui rajout des \, j'ai déjà eu le problème  et c super chiant  :pt1cable:
youdontcare he bien essaye la deuxième soluce :) le \ devant le ' dit à mysql de ne pas prendre en compte le '. donc l\\'enfoiré revient à chercher l\'enfoiré.
 
après, je ne sais pas s'il faut rajouter un \ devant le premier \, c'est comme ça en C, PHP est plutôt tolérant sur la chose, et mysql je n'en sais rien. essaye les deux.
stef_dobermann il PHPMyAdmin te retourne 'aucun resultat' c que le pseudo 'l'enfoiré' n'a pas été stocké comme ça dans ta bdd.
 
affiche tous les enregistrements et vérifie tous trouvera peu-etre la réponse tout seul  :D
Kyle c'est l\'enfoire qui est dans ma table vu que je fais un addslashes lorsque le membre s'inscrit.
youdontcare ça dépend de ce que tu stockes dans ta bdd. si tu stockes :
 
* l'enfoiré , la requête sera celle que tu as mis : 'l\'enfoiré'
 
* l\'enfoiré, il faudra mettre un truc style 'l\\'enfoiré' ou 'l\\\'enfoiré'
Kyle Salut !
 
Dans ma table de membres, j'ai un champs surnom.
 
Lorsqu'un membre s'inscrit avec un surnom du type l'enfoire :D, j'ai fais un addslashes pour éviter les erreurs de requetes.
 
Le probleme se situe lorsqu'il s'identifie !
Meme dans phpmyadmin avec la requete suivante, ca ne marche pas  :??:  
 
select * from membre where surnom = 'l\'enfoire'
 
Il ne me retourne aucun résultat alors que la requete est bonne !
Aurais-je omis une fonction php spécifique ?

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)