Saltar la navegación

3.4.- Programación web con PHP.

Imagen de un óvalo de fondo violeta y las letras php en el medio
Colin Viebrock (CC BY-SA)

PHP es un lenguaje de guiones de propósito general, pero diseñado para el desarrollo de páginas web dinámicas utilizando código embebido dentro del lenguaje de marcas. Su sintaxis está basada en la de C / C++, y por lo tanto es muy similar a la de Java. Aunque lo puedes hacer de otras formas, los delimitadores recomendados para incluir código PHP dentro de una página web son <?php y ?>.

El código se ejecuta por un entorno de ejecución con el que se integra el servidor web (normalmente utilizando Apache con el módulo mod_php). La configuración tanto del servidor web Apache, como de PHP, se realiza por medio de ficheros de configuración. El de Apache es httpd.conf, y el de PHP es php.ini. Este fichero, php.ini, puede encontrarse en distintas ubicaciones. La función phpinfo() que ejecutaste antes te informa, entre otras muchas cosas, del lugar en que se encuentra almacenado el fichero php.ini en tu ordenador. En nuestro caso es en /etc/php/php7.x/apache2/php.ini. (php7.x es la versión de PHP,  en la fecha de elaboración de este manual y con Ubuntu 20.04 la 7.3 )

Dependiendo de cómo se integre PHP con Apache, los cambios que realices en su fichero de configuración se aplicarán en un momento o en otro. Si como es nuestro caso, utilizamos mod_php para ejecutar PHP como un módulo de Apache, las opciones de configuración de PHP se aplicarán cada vez que se reinicie Apache. Por tanto, no te olvides de hacerlo cada vez que hagas cambios en php.ini. Por ejemplo: sudo systemctl restart apache2

Algunas de las directivas más utilizadas que figuran en el fichero php.ini son:

  • short_open_tags. Indica si se pueden utilizar en PHP los delimitadores cortos <? y ?>. Es preferible no usarlos, pues puede causarnos problemas si utilizamos páginas con XML. Para prohibir la utilización de estos delimitadores con PHP le asignamos a esta directiva el valor Off. Por defecto suelen estar a On.

  • max_execution_time. Permite que puedas ajustar el número máximo de segundos que podrá durar la ejecución de un script PHP. Evita que el servidor se bloquee si se produce algún error en un script.

  • display_errors. Permite visualizar los errores que se produzcan en el código PHP, Para ver el nivel de detalles de los errores mostrados se complementa con la directiva siguiente,los valore recomendados por defecto son: Para un entorno en producción a Off, para un entorno en desarrollo a On. Por defecto suele estar en On.

  • error_reporting. Indica qué tipo de errores se mostrarán en el caso de que se produzcan. Por ejemplo, si haces error_reporting = E_ALL, te mostrará todos los tipos de errores. Si no quieres que te muestre los avisos pero sí otros tipos de errores, puedes hacer error_reporting = E_ALL & ~E_NOTICE.

  • file_uploads. Indica si se pueden o no subir ficheros al servidor por HTTP.

  • upload_max_filesize. En caso de que se puedan subir ficheros por HTTP, puedes indicar el límite máximo permitido para el tamaño de cada archivo. Por ejemplo, upload_max_filesize = 1M.

  • post_max_size. Complementa la directiva anterior, establece el tamaño máximo de un archivo subido por POST, Por ejemplo, post_max_size = 1M.

Iremos viendo otras directivas a lo largo del módulo cuando las vayamos necesitando. Realiza la siguiente actividad para comprobar si recuerdas las que acabamos de ver.

Actividad de repaso

Responde verdadero o falso a los siguientes supuestos.

Pregunta 1

Caso 1:  Para mi proyecto necesito subir pdf de hasta 5M de tamaño. Las subidas serán todas por formularios (POST), he revisado la directiva siguiente y su valor, siendo esta: upload_max_filesize = 15M.

¿Podré subir mis archivos?

Sugerencia

Piensa si debemos modificar alguna otra directiva.

Pregunta 2

Caso 2: En un un archivo php que debo modificar he visto el código siguiente:

<? 
    $var=45;
    echo $var;
?>

El valor de la directiva short_open_tags es Off. 

¿Funcionará dicho código?

Pregunta 3

Caso 3: Acabo de cambiar mi proyecto PHP, de producción a desarrollo, el valor de la directiva display_errors es el que viene por defecto.

¿Lo he hecho bien?

Para saber más

En la documentación de PHP se incluye una lista completa de las directivas que se pueden utilizar en php.ini.

A medida que vayas escribiendo código en PHP, será útil que introduzcas en el mismo algunos comentarios que ayuden a revisarlo cuando lo necesites. En una página web los comentarios al HTML van entre los delimitadores <!-- y -->. Dentro del código PHP, hay tres formas de poner comentarios:

  • Comentarios de una línea utilizando //. Son comentarios al estilo del lenguaje C. Cuando una línea comienza por los símbolos //, toda ella se considera que contiene un comentario, hasta la siguiente línea.
  • Comentarios de una línea utilizando #. Son similares a los anteriores, pero utilizando la sintaxis de los scripts de Linux.
  • Comentarios de varias líneas. También iguales a los del lenguaje C. Cuando en una línea aparezcan los caracteres /*, se considera que ahí comienza un comentario. El comentario puede extenderse varias líneas, y acabará cuando escribas la combinación de caracteres opuesta: */.

Recuerda que cuando pongas comentarios al código PHP, éstos no figurarán en ningún caso en la página web que se envía al navegador (justo al contrario de lo que sucede con los comentarios a las etiquetas HTML).

Autoevaluación

Relaciona cada parámetro de la configuración de PHP con su finalidad:
Ejercicio de relacionar
Parámetro Relación Finalidad

file_uploads

1. Indica si se pueden subir ficheros al servidor web.

max_execution_time

2. Indica qué tipo de delimitadores se pueden usar para al código PHP.

upload_max_filesize

3. Limita el tamaño máximo de los ficheros que se suben al servidor.

short_open_tags

4. Limita el tiempo máximo de ejecución de un guión PHP.

Habilitar JavaScript