triple antislash

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 : triple antislash

Re: triple antislash

par Mazarini » 28 févr. 2011, 14:52

Bonjour,

Dans la chaine "\'", \' n'est pas considéré comme un caractère spécial, donc \ pas comme un caractère d'échappement d'où le \\\'.

echo "\'" => \'
echo '\'' => '
echo "\\" => \
echo "\" => erreur PHP

C'est en regardant ce qu'il y a dans ta variable que tu pourras deviner ce va faire addslash.

De même, "\n" => retour chariot et '\n' => \n

Pour les affectations :
Dans une chaine avec quotes, seul \' est modifié en '
Dans une chaine avec double quotes, \n, \t, \\, \" sont interprétés avant de renseigner la variable (je ne connais pas la liste exhaustive des \x)

Re: triple antislash

par xTG » 28 févr. 2011, 07:26

Faut appeler Ghostbuster ! :o

Re: triple antislash

par AB » 27 févr. 2011, 23:23

Je dirais qu'il faut deux antislash pour protéger un antislash
Et qu'est ce qui échappe l'antislash qui échappe l'antislash qui échappe l'antislash ?
Non parce que tant qu'à faire du récursif on peut aller loin comme ça. :P

Pour échapper un antislash il suffit d'un seul antislash. :)
Nan ... mais le AB qu'à dit ça c'est pas moi, ça doit être un fantôme du dimanche après midi qu'a squatter ma chaise :lol:

Re: triple antislash

par clasie » 27 févr. 2011, 22:55

Je pense que xTg a raison. Il faut ajouter juste que deux antislashes dans le string de départ n'égalent pas une barre avec un caract d'échappement mais deux barres obliques inversées (g viens de lire ça dans un liv sur php). C'est ok donc....merci pour votre aide.

Re: triple antislash

par clasie » 27 févr. 2011, 22:26

...bon si j'en mets 2 s'affichent 2 antsl. Mais si j'en mets 3 -> s'affichen 4 antsl!
->
$t = "\\ ";
echo addslashes($t); // affiche -> \\

$t = "\\\ ";
echo addslashes($t); // affiche -> \\\\

je ne comprends pas trop la règle...

Re: triple antislash

par clasie » 27 févr. 2011, 22:22

si je fais ceci:

$t = "\ ";
echo addslashes($t);

s'affiche: \\

... donc il semble bien qu'un antisl demande deux....mais pq?

Re: triple antislash

par xTG » 27 févr. 2011, 20:51

Je dirais qu'il faut deux antislash pour protéger un antislash
Et qu'est ce qui échappe l'antislash qui échappe l'antislash qui échappe l'antislash ?
Non parce que tant qu'à faire du récursif on peut aller loin comme ça. :P

Pour échapper un antislash il suffit d'un seul antislash. :)

Re: triple antislash

par moogli » 27 févr. 2011, 20:24

Un slashe qui echappe le slashe qui echappe ?

Je pencherais pour la solution de xTG par contre la doc est pas tres claire a ce sujet :/ fr2.php.net/addslashes

@+

Re: triple antislash

par AB » 27 févr. 2011, 19:47

Je dirais qu'il faut deux antislash pour protéger un antislash

Re: triple antislash

par xTG » 27 févr. 2011, 19:45

Un pour l'antislash et un pour l'apostrophe. :)
Cette fonction est incapable de savoir si les caractères sont déjà échappés ou non.

triple antislash

par Manipulation d'addslashes() » 27 févr. 2011, 19:16

Bonjour,

Qqu'un pourrait-il m'expliquer pq lorsque j'écris ceci comme code:


$t = "\' ";
echo addslashes($t);


S'affiche à l'écran un striple slash avant l'apostrophe ?:

\\\'

Y en aurait-il un pour l'antislash et un pour l'antislash lié à l'apostrophe?

Merci.
Clasie