Enregistrer en bdd, du code source

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 : Enregistrer en bdd, du code source

Re: Enregistrer en bdd, du code source

par Ehplod » 17 avr. 2012, 10:57

Pour ta remarque sur addcslashes, tu confonds avec quelqu'un d'autre, car je n'ai donné aucun exemple d'utilisation, donc, je n'ai pas pu mettre de code sans arguments. :P
Je l'utilise comme sur le sdz, avec l’argument qui va bien.

Heredoc semble en effet très intéressant pour certains cas particulier.
Merci

Re: Enregistrer en bdd, du code source

par moogli » 13 avr. 2012, 12:49

Regarde ton utilisation de addcslashes par rapport à l'exemple du tuto que tu indique, il te manque le second paramètre.


Dans ton expression régulière tu n'a pas besoin d'echapper le backquote, si tu n'échappe pas la quote tu a une erreur de parse ! (tu commence la chaîne de caractère par une ' si tu en met une au milieu c'est le drame !

Si tu veux éviter d'être emmerdé par le fait d'échapper ou pas des caractères utilisé la syntaxe heredoc

@+

Re: Enregistrer en bdd, du code source

par Ehplod » 12 avr. 2012, 20:14

addcslashes() est redondant si tu utilises mysqli_real_escape_string().
Pourtant ils parlent de choses différentes ici : http://www.siteduzero.com/tutoriel-3-64 ... nnees.html

Sinon, je pense avoir cerné mon soucis...

Je souhaites enregistrer un bout de code source dans une bdd. Ce code est au sein d'un article.
Je sécurise l'enregistrement avec mysqli_real_escape_string()
A l'affichage, j'utilise geShi pour colorer et ça me plante mon affichage... Lorsque je commente l'a fonction geShi, tout fonctionne.

Je précise que tout fonctionne correctement avec geShi tant que je ne met pas de caractère d'échappement dans mon code source.

Exemple :
preg_replace('#[^a-z0-9-]|[…,!?.;:“’”’'"&+@_]#','-',$var)
Ca fonctionne et geshi colore. Pas d'échappement des '
preg_replace('#[^a-z0-9-]|[…,!?.;:“’”\’\'"&+@_]#','-',$var)
Ca ne fonctionne pas, geShi plante et je n'affiche pas mon article.

Re: Enregistrer en bdd, du code source

par xTG » 11 avr. 2012, 18:54

addcslashes() est redondant si tu utilises mysqli_real_escape_string().
Ensuite l'utilisation est entièrement fausse.

Voici un exemple correct (avec champ qui est une chaîne de caractère) :
mysqli_query('UPDATE maTable SET champ = "' . mysqli_real_escape_string($champ) . '" WHERE id = ' . mysqli_real_escape_string($id));

Re: Enregistrer en bdd, du code source

par binboum » 11 avr. 2012, 14:51

Salut,

Comment enregistrer dans une bdd, un article avec du code source lorsque l'on sécurise les data via addcslaches et mysqli_real_escape_string ?

Parce que il se passe obligatoirement des choses bizarre avec les caractère d’échappement que l'on peut trouver dans les regex, par exemple.
Bonjour,

Je te montre un exemple :
$email = addslashes($_POST['email']);

mysqli_real_escape_string(mysql_query(' UPDATE membres SET email=' '.$email.' ' WHERE pseudo='test' '));

Enregistrer en bdd, du code source

par Ehplod » 11 avr. 2012, 14:30

Salut,

Comment enregistrer dans une bdd, un article avec du code source lorsque l'on sécurise les data via addcslaches et mysqli_real_escape_string ?

Parce que il se passe obligatoirement des choses bizarre avec les caractère d’échappement que l'on peut trouver dans les regex, par exemple.