70 votes

PHP echo vs PHP balises courtes

Sont-ils égaux en sécurité? J'ai été informé qu'en utilisant

 <?=$function_here?>
 

était moins sûr et que cela ralentissait les temps de chargement des pages. Je suis strictement favorable à l'utilisation de l'écho.

Quels sont les avantages / inconvénients?

102voto

Pascal MARTIN Points 195780

<? et <?= sont appelées à court balises ouvertes, et ne sont pas toujours activés (voir l' short_open_tag directive) avec PHP 5.3 ou en dessous (mais depuis PHP 5.4.0, <?= est toujours disponible).

En fait, dans le php.ini-production de fichiers fourni avec PHP 5.3.0, ils sont désactivés par défaut:

$ grep 'short_open' php.ini-production
; short_open_tag
short_open_tag = Off

Donc, de les utiliser dans une application pour laquelle vous souhaitez distribuer peut-être pas une bonne idée: votre application ne fonctionnera pas si elles ne sont pas activées.

<?php, de l'autre côté, ne peut pas être désactivé -- donc, il est plus sûr d'utiliser celui-ci, même si c'est plus long à écrire.


Sauf le fait que la court ouvert les tags ne sont pas nécessairement activé, je ne pense pas qu'il y est beaucoup de différence.

31voto

carl Points 25879

Echo est généralement préférable d'utiliser parce que...

  1. Il prend en charge bon style de programmation.
  2. Il ne peut pas être éteint en php.ini (balises courtes peut être)
  3. Les balises courtes seront supprimés dans PHP 6)

Mais, ils sont généralement les mêmes. Voir aussi:

  1. http://stackoverflow.com/questions/200640/are-php-short-tags-acceptable-to-use
  2. http://stackoverflow.com/questions/234241/how-are-echo-and-print-different-in-php

21voto

Blouarf Points 18

http://php.net/manual/en/language.basic-syntax.phpmode.php => "Depuis PHP 5.4, bref écho étiquette est toujours reconnu et valide, quel que soit le short_open_tag".

short_open_tag Off ou on n'a pas de mater plus.

Alors maintenant, vous pouvez, sans crainte, mettre des balises comme ceci dans vos templates :

    <?=(($test))?"val1":"val2")> 

C'est maintenant officiel, le "court-tag echo" est quelque chose de très différent de la "balise courte".

20voto

Frank Points 151

Outre le débat semi-religieux sur la question de savoir si l’utilisation d’étiquettes courtes est une bonne idée et si elle doit être considérée comme dépréciée, la question initiale était de savoir dans quelle mesure ils doivent être utilisés en toute sécurité.

En termes simples, si vous utilisez des balises courtes sur un serveur qui ne les prend pas en charge, des parties de votre code PHP peuvent être exposées, ce qui peut être considéré comme une faille de sécurité.

0voto

Ritey Points 27

Alors pourquoi ne pas simplement supprimer l’option permettant de désactiver la balise ouverte courte et de la laisser être activée par défaut.

C'est un geste très dangereux de PHP. La raison en est que si vous placez votre code existant contenant de courtes balises sur un serveur PHP6 et que quelqu'un visualise cette page, il obtiendra le code brut téléchargé sur son navigateur que vous pourrez visualiser. Cela pourrait sérieusement tuer PHP.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X