addslashes dans une fonction

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 : addslashes dans une fonction

par supercanard » 22 mai 2007, 11:54

Ah ben c'est mieux comme ça
Pour la fonction je vais priviligier la lisibilitée alors :wink:

par Ryle » 22 mai 2007, 10:33

oui, il y a moyen... ensuite il y a certaines choses qu'il n'est peut être pas nécessaire de simplifier pour garder un peu de lisibilité (je pense à la fonction :))

En attendant, au lieu de ceci
$temp= $nom; 
   $temp= cleantexte($temp); 
   $nom= $temp; 
Tu peux tout aussi bien faire directement ceci :
$nom= cleantexte($nom); 
Quant à ta fonction, tu pourrais la réduire ainsi
function cleantexte($temp) { 
   return addslashes(strip_tags($temp)); 
}
Mais je parle bien de réduire et non de simplifier, car à mon sens, cela devient plus difficile à lire et à maintenir. En revanche, je te ré-invite à regarder du côté de mysql_escape_string() pour protéger les chaines que tu utilises dans des requêtes SQL :)

Encore une grande victoire de ... ;)

par supercanard » 22 mai 2007, 10:17

Peux tu nous montrer les requètes SQL ?
Je suis un boulet... en fait ça marche bien, j'avais juste une erreur, j'inserais la variable non modifié par ma fonction à la place de la nouvelle.
Ceci dit j'ai une autre question : Y'a t'il un moyen de simplifier tout celà ? :

Code : Tout sélectionner

$temp= $nom; $temp= cleantexte($temp); $nom= $temp; $req= mysql_query("INSERT INTO admin2007_imagesproduits (id_image,marque_image,nom_image,url_image) VALUES ('','$marque','$nom','$url')");
et la fonction :

Code : Tout sélectionner

// NETOYAGE function cleantexte($temp) { $temp= strip_tags($temp); $temp= addslashes($temp); return $temp; }

par Sékiltoyai » 21 mai 2007, 23:15

Peux tu nous montrer les requètes SQL ?

par supercanard » 21 mai 2007, 22:55

BSD ?
BDD pardon :D

par Sékiltoyai » 21 mai 2007, 21:06

BSD ?

par supercanard » 21 mai 2007, 18:06

Voilà c'est ok. Enfin presque...

Si je tape a pas de problème je le retrouve bien dans ma BSD
Mais si je tape a'a rien dans la BSD. J'ai mis un echo avant l'insertion pour vérifier et j'ai bien a\'a

:roll:

par supercanard » 21 mai 2007, 17:51

Ah zut les variables globales... j'avais encore oublié.
Je vais essayer de réparer :wink:

par Ryle » 21 mai 2007, 17:49

Ta fonction retourne la valeur que contient la variable $temp interne à ta fonction, elle ne modifie en rien la variable externe $temp, puisque celle-ci n'est pas globale :)

Il te faut donc récupérer dans une variable le résultat retourné par ta fonction pour pouvoir l'utiliser :
$nom = cleantexte($nom); 
Par ailleurs, si c'est pour utiliser la valeur dans une requête sql, utilise mysql_escape_string() pour plus de sécurité :)

addslashes dans une fonction

par supercanard » 21 mai 2007, 17:38

Bonjour,
Lors de l'insertion dans ma BSD, si une de mes donées renvoyée par un formulaire contient un apostrophe, l'enregistrement ne se fait pas.
Donc j'ai fait une petite fonction pour ajouter les slas het au passage supprimer le code html :

Code : Tout sélectionner

function cleantexte($temp) { $temp= strip_tags($temp); $temp= addslashes($temp); return $temp; }
Avant l'enregistrement je fait donc ceci :

Code : Tout sélectionner

$temp= $nom; cleantexte($temp); $nom= $temp;
La byzarerie c'est que le code HTML ets bien supprimé mais les apostrophes restent... :cry:

Bonne fin de journée