What's the bug ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 févr. 2008, 10:42

pas besoin des balises, mais il faut que la ligne soit valide
value="".$nom."\" 
est invalide
echo "value="".$nom."\";
l'est (j'ai juste rajouté echo ") ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 2144 Messages

24 févr. 2008, 12:17

Oui, mais dans les deux cas, il y a un \" qui est remplacé par un " à l'affichage du message, ce qui semble bien être un bug... ;)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 févr. 2008, 12:27

ah oui tiens ... pourtant, plus tot j'ai réussi à l'afficher ce \ ... :-k
serait-ce un cas de prévisualisation ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

24 févr. 2008, 12:49

Si vous constatez du code PHP valide qui ne s'affiche pas correctement, postez-le ici.
Et par "valide" j'entends "quelque chose que vous venez de tester en local" et qui ne vous a pas répondu Parse error: syntax error, unexpected '"', expecting ',' or ';' in...

Code : Tout sélectionner

[php]echo '"\"\\"\\\"\'\\';[/php]
echo '"\"\\"\\\"\'\\';
http://www.chezmoicamarche.com/

Code : Tout sélectionner

[php]echo ""\\"\\\\"";[/php]
echo ""\\"\\\\"";

ViPHP
ViPHP | 2144 Messages

24 févr. 2008, 14:44

Hubert, c'est bien le cas.
Lorsqu'on a un code php qui contient \", celui-ci est remplacé par ".

Je comprends bien qu'il faut qu'un code soit valide pour que la coloration syntaxique puisse correctement s'afficher, mais je ne vois pas pourquoi le code php est modifié par l'usage des balises BBcode php.

Si un membre nous poste du code, c'est souvent parce qu'il contient une erreur, si le code affiché dans le message n'est pas exactement ce que le membre a posté, ça va poser un problème pour qu'on puisse découvrir l'erreur.

ViPHP
ViPHP | 928 Messages

24 févr. 2008, 14:48

Iclo, le "bug" vient de la fonction highlight_string() de PHP (utilisée dans le BBcode PHP ici même), fait le test :

Code : Tout sélectionner

highlight_string('<?php $a = \\\\\\\\\\\"bug"; if mal coloré then endif; ?>');
tu verras que les antislash disparaitront.

Donc à moins de corriger cette fonction interne à PHP il n'y a pas de solution. En soit c'est pas gênant, les cas de figure où on affiche du code PHP invalide et contenant des antislash en dehors du code (rendant celui ci invalide) sont rares.

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

24 févr. 2008, 17:31

ça va poser un problème pour qu'on puisse découvrir l'erreur.
Pour peu qu'il poste le message d'erreur correspondant, on devrait s'en sortir
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in ...
Quant à ceux qui postent du code PHP invalide, ne lisent pas les règles et ne postent pas le message d'erreur correspondant, mon conseil est de les ignorer ou de leur demander gentiment de formuler leur question comme indiqué dans les règlements généraux.

ViPHP
ViPHP | 2144 Messages

24 févr. 2008, 17:48

Si on ne peut rien faire pour corriger ce bug on fera avec, ;) mais je trouve ça gênant. Car ça veut dire que si on ne fait pas attention, on va aiguiller le membre vers une piste de faux bug, pour peut qu'il vienne avec un bug d'erreur de syntaxe dans un print ou un echo.

Je ne comprends pas en quoi le fait que le code soit valide ou non, devrait provoquer une modification du code en lui-même lors de l'affichage. Si la coloration syntaxique ne peut pas s'effectuer parce que la syntaxe n'est pas bonne, ce serait logique qu'il affiche le code "incompréhensible" en rouge, mais en aucun cas le modifier.