
Estaba trabajando en OpenSuse 11.3 migrando algunas aplicaciones webs corporativas, mientras realizaba las pruebas en el navegador web para ver como quedaba la migracion me encontre con un error en la pagina web:
Error: $error_login_ms[$error]</b> ?>
Despues de investigar y ver el codigo fuente de la pagina en cuestion, me di cuenta que apache me mostraba todo el contenido de PHP como comentarios dentro del codigo HTML. Con esto supe que Apache no interpretaba las etiquetas "<?" y no habia problemas cuando comenzaban con las etiquetas "<?php" (etiqueta recomendada por PHP).
Esto se debe a que no estaba activado la etiqueta "short-open-tag" en el archivo de configuracion de PHP. Busque el archivo de configuracion con el comando FIND:
# find / -type -f -name php.ini
Modifique el archivo que se encontraba en /etc/php5/apache2/php.ini esto para apache pero puedes modificar los otros archivos php.ini y en la opcion en cuestion "short-open-tag = Off" por "short-open-tag = On". Despues reinicie Apache y las paginas funcionaron sin problemas.
Conclusion:
Existen cuatro tipos de pares de etiquetas de apertura y de fin de bloque que se pueden usar en PHP. Que son; <?php ?> y <script language="php"></script>, siempre disponibles y las etiquetas cortas <? ?> y <?= ?> al estilo ASP y se pueden activar o desactivar desde el fichero de configuracion php.ini, son menos portables y generalmente no recomendadas.
En PHP 5.2 y anteriores, no se permite que un fichero contega unicamente la etiqueta de inicio de bloque <?php . En PHP 5.3 si se permite. Puedes ver la version de tu PHP ejecutando en un terminal.
# php -v
Saludos y espero que les sea de utilidad.
Fuente y mas info en http://docs.php.net/manual/es/language.basic-syntax.phpmode.php