What's the bug ?

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 : What's the bug ?

par iclo » 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.

par Hubert Roksor » 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.

par Genova » 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.

par iclo » 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.

par Hubert Roksor » 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 ""\\"\\\\"";

par zeus » 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 ?

par iclo » 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... ;)

par zeus » 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 ") ;)

par Hubert Roksor » 24 févr. 2008, 00:36

Sékiltoyai l'a plutôt bien résumé : il faut juste pouvoir l'exécuter, si besoin en rajoutant <?php et ?>

Par exemple, ceci ne marchera pas dans PHP, et sera "mal" coloré

Code : Tout sélectionner

[php]<?php $a = \\\\\\\\\\\"bug"; if mal coloré then endif; ?>[/php]
<?php $a = \\\\\\\\\\\"bug"; if mal coloré then endif; ?>

par iclo » 24 févr. 2008, 00:28

Je suis pas sûr de bien comprendre:

Pour pouvoir poster du code php dans les tag bbcode php, il faut qu'il soit valide en commençant par "<?php" , etc ??

Je ne trouve pas que c'est vraiment fonctionel, on a souvent besoin de poster une ligne de code, sans avoir besoin de poster tout le code.

Ce serait pas plutôt un petit bug ?? :mrgreen:

par Sékiltoyai » 23 févr. 2008, 17:37

Oui, par code valide, on entend code qui ne donnerait pas d'erreur de syntaxe s'il était exécuté tel quel ou bien entouré de balises <?php et ?>.

par Elie » 23 févr. 2008, 16:59

Il vous a mouché le Hubert Roksor !

par Hubert Roksor » 23 févr. 2008, 16:57

Ben oui, mais ce n'est pas du code PHP, c'est pour ça... Si quelqu'un veut poster quelque chose qui n'est pas du PHP,

Code : Tout sélectionner

est fait pour ça.

par Genova » 23 févr. 2008, 16:50

Justement, dans son exemple :

Code : Tout sélectionner

[php]value=\"".$nom."\"[/php]
est transformé en
value=\"".$nom."\"
il manque le premier antislash.

par Hubert Roksor » 23 févr. 2008, 16:45

Si vous constater du code PHP valide qui ne s'affiche pas correctement, postez-le ici.