Guia9 php1

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 24

PHP

GUIA9: PHP

Autor: Ernesto Verdugo

Contenido

Tareas principales del lenguaje PHP ................................................................................................... 2


Instalación ........................................................................................................................................... 4
XAMPP: instalación y primeros pasos ............................................................................................. 4
Panel de control de XAMPP ............................................................................................................ 5
Ajustar XAMPP ................................................................................................................................ 7
PHP básico: la sintaxis del lenguaje de scripts .................................................................................... 8
“Hola mundo!” – Así puedes crear texto con echo ......................................................................... 9
Operadores de concatenación ...................................................................................................... 11
Cómo enlazar PHP en HTML .......................................................................................................... 12
Las superglobals $_GET y $_POST ................................................................................................. 14
El constructor if y los operadores de comparación de PHP .......................................................... 17
Bucles (while, for).......................................................................................................................... 22
Durante las siguientes guías cubriremos los aspectos más básicos del lenguaje más utilizado para el
desarrollo de aplicaciones web del lado del servidor.

A lo largo de las siguientes guías conocerán los principios básicos de la programación en PHP, como
su sintaxis, estructuras de control, funciones, etc. Además explorarán un nutrido conjunto de
características y funcionalidades, las necesarias para desarrollar la mayoría de las aplicaciones, como
el acceso a bases de datos, el sistema de archivos del servidor, sesiones, envío de email, etc.

Aparte de la programación en PHP también aprenderán las alternativas más interesantes para
instalar PHP en su computador y disponer de todo lo necesario para comenzar a desarrollar.
Encontrarán diversos medios que les ayudarán a disponer de un entorno de desarrollo adaptado a
sus necesidades, de lo más sencillo a lo más profesional.

Este capítulo consta de dos partes. En la primera veremos todo lo básico para entender PHP y
comenzar a programar sitios web. Luego tenemos una parte dedicada por completo a la orientación
a objetos con PHP, que evolucionó considerablemente en PHP 5 y se ha mantenido en PHP 7 y PHP
8.

Tareas principales del lenguaje PHP

Aunque en un principio PHP fue diseñado para realizar poco más que un contador y un libro de
visitas, el lenguaje experimentó en poco tiempo una verdadera revolución. Fue gracias a su rico
juego de funciones proveídas por el propio lenguaje, con las que se pueden realizar una multitud de
tareas útiles para el desarrollo del web. Sin embargo, todas estas funciones ya aparecieron en su
mayor medida en PHP 3 y PHP 4. PHP 5 supuso una madurez del lenguaje y su paradigma de
programación orientada a objetos y ahora, en versiones como PHP 7, estamos ante un lenguaje de
programación potente, rápido y capaz de hacerle frente a las plataformas de ejecución más
exigentes.
En este artículo vamos a exponer una pequeñísima muestra de las cosas que PHP te ofrece para el
desarrollo de aplicaciones web, (recuerden que no son las únicas). Simplemente las hemos
seleccionado por ser las tareas que resultan más habituales en cualquier tipo de proyectos y que
han sido resueltas en PHP tradicionalmente de una manera sencilla y al alcance de cualquier
persona, incluso sin demasiados conocimientos de programación.
Funciones de correo electrónico
Podemos con una facilidad asombrosa enviar un e-mail a una persona o lista parametrizando toda
una serie de aspectos tales como el e-mail de procedencia, asunto, persona a responder...

Otras funciones menos frecuentes pero de indudable utilidad para gestionar correos electrónicos
son incluidas en su librería.

Gestión de bases de datos


Resulta difícil concebir un sitio actual, potente y rico en contenido que no es gestionado por una
base de datos. El lenguaje PHP ofrece interfaces para el acceso a la mayoría de las bases de datos
comerciales y por ODBC a todas las bases de datos posibles en sistemas Microsoft, a partir de las
cuales podremos editar el contenido de nuestro sitio con absoluta sencillez.

Gestión de archivos
Crear, borrar, mover, modificar...cualquier tipo de operación más o menos razonable que se nos
pueda ocurrir puede ser realizada a partir de una amplia librería de funciones para la gestión de
archivos por PHP. También podemos transferir archivos por FTP a partir de sentencias en nuestro
código, protocolo para el cual PHP ha previsto también gran cantidad de funciones.

Tratamiento de imágenes
Evidentemente resulta mucho más sencillo utilizar Photoshop para una el tratamiento de imágenes
pero...¿Y si tenemos que tratar miles de imágenes enviadas por nuestros internautas?

La verdad es que puede resultar muy tedioso uniformar en tamaño y formato miles de imágenes
recibidas día tras día. Todo esto puede ser también automatizado eficazmente mediante PHP.

También puede parecer útil el crear botones dinámicos, es decir, botones en los que utilizamos el
mismo diseño y solo cambiamos el texto. Podremos por ejemplo crear un botón haciendo una única
llamada a una función en la que introducimos el estilo del botón y el texto a introducir obteniendo
automáticamente el botón deseado.

A partir de la librería de funciones graficas podemos hacer esto y mucho más.

Y mucho más...
Muchas otras funciones pensadas para Internet (tratamiento de cookies, accesos restringidos,
comercio electrónico...) o para propósito general (funciones matemáticas, explotación de cadenas,
de fechas, corrección ortográfica, compresión de archivos...) son realizadas por este lenguaje.

PHP ha crecido todavía más en funcionalidades creadas por un inmenso grupo de desarrolladores
independientes. Antes, instalar librerías de terceros resultaba en un trabajo bastante manual, pero
ahora gracias a Composer se han vuelto muy fáciles de instalar y de mantener actualizadas.

Como puede verse, las posibilidades que se nos presentan son sorprendentemente vastas. Lo único
que se necesita es un poco de ganas de aprender y algo de paciencia en nuestros primeros pasos.
Instalación
PHP tiene innumerables formas de instalación. Queremos resumirlas mediante una guía completa
para crear de tu entorno de desarrollo con PHP (Windows, Linux y Mac), válidas tanto para personas
que se inician como para desarrolladores experimentados.

Para aprender PHP es recomendable usar el paquete completo de XAMPP, que contiene la instalación
local del servidor web Apache, el sistema de bases de datos MariaDB y los lenguajes de programación
Perl y PHP.

XAMPP: instalación y primeros pasos


XAMPP es una distribución de Apache que incluye varios software libres. El nombre es un acrónimo
compuesto por las iniciales de los programas que lo constituyen: el servidor web Apache, los
sistemas relacionales de administración de bases de datos MySQL y MariaDB, así como los lenguajes
de programación Perl y PHP. La inicial X se usa para representar a los sistemas operativos Linux,
Windows y Mac OS X.

• Apache: el servidor web de código abierto es la aplicación más usada globalmente para la
entrega de contenidos web. Las aplicaciones del servidor son ofrecidas como software libre
por la Apache Software Foundation.
• MySQL/MariaDB: conMySQL, XAMPP cuenta con uno de los sistemas relacionales de gestión
de bases de datos más populares del mundo. En combinación con el servidor web Apache y
el lenguaje PHP, MySQL sirve para el almacenamiento de datos para servicios web. En las
versiones actuales de XAMPP esta base de datos se ha sustituido por MariaDB, una
ramificación (“Fork”) del proyecto MySQL.
• PHP: es un lenguaje de programación de código de lado del servidor que permite crear
páginas web o aplicaciones dinámicas. Es independiente de plataforma y soporta varios
sistemas de bases de datos.
• Perl: este lenguaje de programación se usa en la administración del sistema, en el desarrollo
web y en la programación de red. También permite programar aplicaciones web dinámicas.
Además de estos componentes principales, esta distribución gratuita también incluye, según el
sistema operativo, otras herramientas como el servidor de correo Mercury, el programa de
administración de bases de datos phpMyAdmin, el software de analítica web Webalizer, OpenSSL,
Apache Tomcat y los servidores FTP FileZilla o ProFTPd.

Paso 1: Descarga
Las versiones con PHP 5.5, 5.6 o 7 se pueden descargar gratuitamente desde la página del proyecto

https://www.apachefriends.org/es/download.html

Paso 2: Ejecutar el archivo .exe


Una vez descargado el paquete, puedes ejecutar el archivo .exe haciendo doble clic en él. (ejecutarlo
como administrador)
Paso 3: Desactivar el programa antivirus
Se recomienda desactivar el programa antivirus hasta que todos los componentes estén instalados,
ya que puede obstaculizar el proceso de instalación.
Antes
de iniciar la instalación de XAMPP es recomendable desactivar temporalmente el antivirus

Paso 4: Configurar Firewall


Durante el proceso de instalación es frecuente que el asistente avise del bloqueo de Firewall. En la
ventana de diálogo puedes marcar las casillas correspondientes para permitir la comunicación del
servidor Apache en una red privada o en una red de trabajo. Recuerda que no se recomienda usarlo
en una red pública.

Panel de control de XAMPP


En la interfaz de usuario del panel de control se protocolan todas las acciones y es posible activar o
desactivar los módulos por separado con un simple clic. Además, se dispone de diversas utilidades
como:

• Config: para configurar XAMPP así como otros componentes aislados.


• Netstat: muestra todos los procesos en funcionamiento en el ordenador local
• Shell: lanza una ventana de comandos UNIX
• Explorer: abre la carpeta XAMPP en el explorador de Windows
• Services: muestra todos los servicios en funcionamiento
• Help: incluye enlaces a foros de usuarios
• Quit: se usar para salir del panel de control

En el Panel de Control el usuario puede iniciar o finalizar los diferentes módulos por separado
Iniciar módulos
En la parte superior se pueden iniciar o interrumpir los módulos de XAMPP por separado mediante los
comandos “Start” y “Stop” bajo “Actions”. Los módulos que se activaron aparecen marcados en verde.

Los módulos activos aparecen en el Panel de Control marcados en verde


Si uno de ellos no pudiera ser iniciado por un error, se mostrará marcado en rojo. Las notificaciones de
error protocoladas en la parte de abajo ayudan a encontrar las causas del error.

Ajustar XAMPP
Una causa frecuente de fallos en el uso de Apache es un puerto bloqueado. La configuración estándar
XAMPP suele asignar al servidor web el puerto principal 80 y el puerto SSL 443, pero suelen estar
bloqueados por otros programas. En la figura anterior se muestra un conflicto con el programa de
mensajería instantánea Skype, que está usando los puertos 80 y 443, por lo que el servidor no se puede
iniciar. Existen tres posibles soluciones:

a. Cambiar el puerto en Skype: para ello se abre Skype y en “Herramientas” > “Opciones” > “Avanzada”
> “Conexión” se desmarca la casilla donde se indica “Usar los puertos 80 y 443 para las conexiones
entrantes adicionales”.

b. Cambiar las configuraciones de los puertos en Apache: haz clic en la configuración del módulo
Apache (“Config”) y abre los archivos httpd.conf y httpd-ssl.conf. En httpd.conf cambia el puerto 80 por
el puerto que deseas usar y lo mismo se realiza en httpd-ssl.conf con el puerto 443. Guarda los
archivos. En la tecla “Config” de la derecha selecciona “Ajustar puertos” para poder introducir los
cambios realizados en los archivos conf.

c. Finalizar Skype: el método más sencillo de evitar conflictos con Skype consiste en cerrarlo y volver a
iniciarlo solo cuando el servidor Apache ya esté en funcionamiento.
PHP básico: la sintaxis del lenguaje de scripts
Una vez hayas configurado tu servidor web local (por ejemplo, con ayuda de XAMPP), tienes que
comprobar que PHP esté instalado correctamente y pueda ejecutar scripts.

Definición
un script es un programa informático en general de pequeñas dimensiones que no se compila en
código binario previamente. Los scripts se escriben en un lenguaje de programación como PHP, Perl o
JavaScript y son ejecutados por un intérprete en el servidor web (del lado del servidor) o por un motor
de renderizado en el navegador web (del lado del cliente).

Abre tu editor de código preferido e introduce el siguiente script de PHP:

<?php
phpinfo();
?>

Los scripts de PHP siempre se basan en el mismo esquema. La etiqueta PHP de apertura <?php señaliza
que se va a iniciar un entorno de scripts. A esto le sigue el propio código PHP en forma de órdenes o
instrucciones. En el ejemplo se trata de la llamada a la funciónphpinfo().La mayoría de funciones
requieren uno o varios parámetros situados entre paréntesis. En el caso de phpinfo(), estos son
opcionales: phpinfo( INFO_ALL ). Cada función termina con un punto y coma (;) y para cerrar el script
entra en juego la etiqueta PHP de cierre, es decir, ?>.

Guarda el archivo de texto con el nombre test en formato .php (script PHP) y abre el servidor web.
Siempre y cuando utilices el entorno de prueba de XAMPP, coloca test.php en el directorio de XAMPP
en htdocs (C:\xampp\htdocs).

Se puede acceder al archivo del ejemplo introduciendo el siguiente URL en el navegador web:
http://localhost/test.php.
En caso de utilizar otro servidor web o la configuración personalizada del software de XAMPP, selecciona
el URL de la ruta del archivo correspondiente.
“Hola mundo!” – Así puedes crear texto con echo

Si la instalación de PHP se lleva a cabo sin ningún tipo de errores, ya se pueden escribir los primeros
scripts propios. Para ello es apropiada la instrucción echo. A diferencia de phpinfo(),echo no representa
una función, sino que se trata, más bien, de una construcción del lenguaje que permite distribuir el
siguiente string como texto.
Crea un nuevo archivo PHP para tu primer script propio y escribe el siguiente código:

<?php
echo 'Hola mundo!';
?>

La etiqueta de apertura <?php da comiezo a un entorno de script. A esta le sigue tanto la palabra
reservada echo como el string Hola mundo! entre comillas simples. Con la etiqueta ?> se cierra el
script. En este sentido hay que prestar atención al punto y coma que va detrás de la instrucción. En
lugar de Hola mundo! se puede utilizar cualquier otro texto.

Guarda el script con el nombre de hello.php en la carpeta htdocs de tu servidor web y accede al archivo
a través del URL

localhost/hello.php

Cada texto que se emite con echo puede estar formado por etiquetas HTML en caso de ser necesario,
las cuales son interpretadas por parte del navegador web tras la correspondiente especificación de
HTML. Puedes comprobarlo tú mismo, por ejemplo, con el siguiente script:

<?php
echo '<h1>Hola mundo!</h1>
<p>This is my first PHP page.</p>';
?>

Variables

La palabra reservada echo resulta de una utilidad mayor que la propia emisión de texto, la cual puede
implementarse también sin PHP y tomando HTML como base. La verdadera plusvalía de echo está
basada en el hecho de que la instrucción permite generar textos de manera dinámica con ayuda de
variables.

Los usuarios de PHP se pueden encontrar con variables que tienen, por ejemplo, la siguiente forma:

$ejemplo

Cada variable consta del símbolo del dólar($), seguido del nombre de la variable. Las variables se
utilizan en los scripts de PHP para integrar datos externos en páginas web. En este sentido se puede
hablar de valores muy variados que van desde números simples y cadenas de caracteres hasta textos
completos o estructuras de documentos HTML.

PHP diferencia entre siete tipos de variables:


Tipos de
variables Descripción

String Un string es una secuencia de caracteres, que puede tratarse de una palabra, de una frase,
de un texto o de la totalidad del código HTML de una página web.

Integer Un integer es un número entero y sin decimales que puede ser positivo o negativo.

Float Un float es un número de punto flotante, es decir, un valor numérico con decimales. En los
lenguajes de programación, la coma se escribe con un punto (.). PHP permite colocar hasta
14 caracteres detrás de la coma.

Boolean Las variables booleanas son el resultado de una operación lógica y solo comprenden dos
constantes: TRUE (verdadero) y FALSE (falso). Este tipo de variables se aplica cuando se
trabaja con condiciones.

Array Un array es una variable que puede albergar varios elementos. Se trata de una agrupación
de diversos datos estructurados formando una matriz.

Object La variable object permite a los programadores definir tipos de datos propios y se aplica en
la programación orientada a objetos. Las variables del tipo object no se incluyen en nuestro
tutorial de PHP.

NULL NULL representa una variable sin valor. Para las variables del tipo NULL, este es el único
valor.

La administración central de los contenidos tiene lugar, en general, con ayuda de sistemas de bases de
datos. Los valores para las variables pueden definirse directamente en el script. Este tipo de
clasificación se realiza según el esquema siguiente:

$ejemplo = "Valor";

El característico símbolo del dólar va seguido del nombre de la variable (en este caso ejemplo), el cual
se une al valor entrecomillado con el símbolo de igualdad(=).
Atención
los valores para las variables del tipo integer y float no se escriben entre comillas (p. ej., $ejemplo =
24; o $ejemplo = 2.7;)

PHP te da la libertad de designar variables según tu arbitrio, pero surgen aquí ciertas limitaciones:

• Cada variable comienza con el símbolo del dólar.

• El nombre de las variables es una secuencia de caracteres formada por letras, números y
guiones (p.ej., $ejemplo_1).
• Un nombre de variable válido siempre comienza con una letra o con un guion bajo
($ejemplo1 o $_ejemplo), pero nunca con un número (incorrecto: $1ejemplo).

• PHP distingue entre mayúsculas y minúsculas ($ejemplo ≠ $Ejemplo).

• Los nombres de las variables no pueden contener espacios o saltos de línea


(incorrecto: $ejemplo 1)

• El usuario no puede hacer uso libre de las secuencias de caracteres reservadas por PHP para
otros propósitos (p. ej., $this)

Veámoslo en un ejemplo:
<?php
$author = "John Doe";
echo "<h1>Hola mundo!</h1>
<p>Esta pagina fue creada por $author.</p>";
?>

Si una variable se define varias veces en un script, la nueva definición sobreescribe a la anterior. El
siguiente echo siempre ofrece el valor actual de una variable.

A no ser que la variable se tenga que utilizar dentro de un string, en cuyo caso habrá que recurrir a las
comillas dobles ("). Estas indican al intérprete de PHP que tiene que buscar variables en el string para
sustituirlas con los valores asociados a ellas. Las secuencias de caracteres expresadas entre comillas
simples (') serán interpretadas y reproducidas como información puramente textual incluso cuando si
son variables. Lo puedes comprobar tú mismo con la siguiente secuencia de código:

<?php
$author = "John Doe";
echo '<h1>Hola mundo!</h1>
<p>Esta pagina fue creada por $author.</p>';
?>

Los mensajes de error contienen, en la mayoría de los casos, información acerca de la ubicación de los
errores, ofreciendo, así, datos importantes para su erradicación.

Operadores de concatenación
Si se quiere incluir más de una variable en un script de PHP de manera simultánea, se puede hacer uso
de lo aprendido hasta ahora:

<?php
$author1 = "John Doe";
$author2 = "Max Mustermann";
echo "<h1>Hola mundo!</h1>
<p>Esta pagina fue creada por $author1 and $author2.</p>";
?>
Ambas variables se escriben con el resto del texto que se va a visualizar en el string señalado con las
comillas dobles. PHP reconoce automáticamente las variables mediante el símbolo del dólar ($) y
coloca tras ellos los valores correspondientes.

Al trabajar con variables siempre entran en juego varios elementos que deben estar interconectados
entre sí. Para ello entra en juego el operador de concatenación (.).

Si se programa un código “limpio”, este debería tener el siguiente aspecto para el ejemplo mencionado
anteriormente:

<?php
$author1 = "John Doe";
$author2 = "Max Mustermann";
echo '<h1>Hello World!</h1>
<p>This dynamic web page was created by ' . $author1 . ' and ' . $author2 . '.</p>';
?>

Es importante señalar que un operador de concatenación une strings o variables sin espacios. Si se
quiere incluir un espacio, este tiene que escribirse, al igual que en el ejemplo, en el string y con
comillas.

Los programadores no solo hacen uso de los operadores de concatenación para vincular strings y
variables, sino también para prolongar las variables. Veamos cómo funciona con el siguiente ejemplo:

<?php
$example = 'Hello ';
$example .= 'World';
echo $example;
?>
Para prolongar el valor de una variable es necesario definirlo de nuevo, pero colocando el operador de
concatenación punto(.) delante del signo de igualdad. Se trataría de la abreviación habitual
para $example = $example . 'World' ($ejemplo = $ejemplo . 'Mundo').

PHP agrega el nuevo valor al ya previamente definido. Si se quiere incluir un espacio entre ambos
valores, este debe ir al final del primer string, tal y como se muestra en el ejemplo.

Cómo enlazar PHP en HTML


El intérprete de PHP solo se interesa, en principio, por el código colocado entre una etiqueta de PHP de
apertura y otra de cierre:
Se puede imaginar al intérprete de PHP como el colega perezoso del servidor web que solo trabaja
cuando se le exige explícitamente por medio de, por ejemplo, una etiqueta de apertura de PHP.

Si quieres combinarHTML y PHP, escribe la página HTML en su forma habitual conforme a la estructura
clásica del documento y guárdala con la terminación .php.

<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<title>My first PHP page</title>
</head>
<body>
<h1>Hello World</h1>
<p>What is the current time and date?</p>
<p>Your current time and date is:
<?php
echo date("d.m.Y H:i:s");
?>.</p>
</body>
</html>

La función de PHP para los comentarios


Al igual que el código HTML, PHP también da la posibilidad de incluir comentarios. El intérprete de PHP
ignora los comentarios en el código fuente siempre y cuando estos tengan unas características
adecuadas para la sintaxis. Para ello, PHP pone a disposición tres alternativas diferentes.

Si se quiere destacar toda una línea como comentario y excluirla de la interpretación, se utilizará
la almohadilla (#) o las dos barras(//). En el siguiente ejemplo de código se emplean ambas
posibilidades:

<?php
#This is a single-line comment!
echo '<h1>Hello World!</h1>
<p>This is my first PHP page.</p>';
//This is also a single-line comment!
?>
Asimismo, también se pueden insertar comentarios que comprenden varias líneas. Para ello, se puede
marcar el inicio de una sección con comentarios con una barra seguida de un asterisco(/*) y el final con
un asterisco seguido de una barra (*/).

Realización de cálculos con variables


En nuestro tutorial para aprender a utilizar PHP ya has podido familiarizarte con las variables, a las que
se han asignado en primera instancia valores string (cadenas de caracteres). Ahora pasaremos a
ocuparnos de variables que representan números enteros (integers) o números de punto
flotante (floats).

Si las variables almacenan valores numéricos, PHP ofrece la posibilidad de realizar cálculos con ellas.
Veamos a continuación la traducción de una suma sencilla de dos números enteros:

<?php
$numero1 = 237;
$numero2 = 148;
$resultado = $numero1 + $numero2;
echo "Resultado: " . $resultado;
?>
En primer lugar, a las variables $numero1 y $numero2 se les asigna los números enteros 237 y 148 y, a
continuación, se define una variable del tipo $resultado, la cual alberga la suma de las
variables $numero1 y $numero2. Para ello se emplea el operador aritmético + (más). Por último se
emite el resultado de la suma con ayuda del constructor echo como texto. Hay que tener en cuenta en
este sentido que en la asignación de valores numéricos a las variables no son necesarias las comillas.

Como los lenguajes de programación más habituales, PHP también soporta operadores para aumentar
o disminuir en el valor 1 losvalores numéricos. En este sentido, se puede diferenciar entre el operador
de preincremento, el de predecremento, el de postincremento y el de postdecremento.

Las superglobals $_GET y $_POST


Una vez han conocido los fundamentos de PHP y ya saben manejar con las variables, pueden
concatenarlas y realizar cálculos. En este apartado veremos por qué las variables son un factor esencial
a la hora de programar scripts.

Una función importante de los lenguajes de programación es que estos ofrecen la posibilidad de
analizar las entradas de los usuarios y de transferir los valores a otros scripts. Para ello, PHP se basa en
las superglobals $_GET y $_POST, variables de sistema predefinidas que están disponibles en todos los
ámbitos de validez. Como arrays asociativos (campos de datos), $_GET y $_POST almacenan un
conjunto de variables en forma de strings en una variable.

Los arrays pueden imaginarse como si fueran un armario con varios cajones, cada uno de los cuales
ofrece la posibilidad de archivar datos. Para poder saber posteriormente lo que alberga cada uno de
dichos cajones, estos reciben un nombre de variable, que, en función del tipo de array, se puede tratar
de un index o de una key (llave). Mientras que en el caso de los arrays indexados se le otorga a cada
cajón un índice en forma de número, a los cajones de un array asociativo se les asigna una key en
forma de string (secuencia de caracteres).

Las superglobals $_GET y $_POST contienen una serie de variables en forma de llaves que permiten
llegar a los valores vinculados a dichas llaves. Hablaremos en detalle de este tema cuando nos
centremos en las superglobals $_GET y $_POST.

Transferencia de datos vía $_GET


La superglobal $_GET representa un array de variables que se transfiere a un script PHP con ayuda de
un URL.

Si visitas weblogs, tiendas online o foros de Internet, es posible que te hayan llamado la atención los
peculiares URL que aparecen en ellos. Suelen generarse siguiendo el esquema siguiente:

nombredeequipo/carpeta/nombredearchivo.php

variable
En un weblog, el esquema puede tener la siguiente apariencia:

www.ejemplo-blog.es/index.php

Si un URL contiene más de un parámetro, estos se unen entre sí con el símbolo et (&).

www.ejemplo-blog.es/index.php?page=article&id=1

No es necesario recurrir a una base de datos para entender cómo se emplea $_GET en un ejemplo de
código. En el siguiente script se utiliza la superglobal $_GET para interpretar los valores de las
variables nombre y apellido (forename y surname) de una cadena de consulta HTTP y para escribirlos
en las variables PHP $variable1 y $variable2:

<?php
$variable1 = $_GET['nombre'];
$variable2 = $_GET['apellido'];
echo "Hello " . $variable1 . " " . $variable2 . "!";
?>
Para abrir el script usamos el siguiente URL:

localhost/hello.php?nombre=John&apellido=Doe

La transmisión de datos vía $_GET da lugar inevitablemente a que los datostransferidos se puedan
visualizar en la línea de direcciones. En todo momento puede comprobarse cuáles son los parámetros
que se van a entregar, lo que tiene la ventaja de que las variables pueden guardarse en hiperenlaces.
Además, los usuarios de Internet también tienen la posibilidad de depositar los URL e incluso el query
string de HTTP como marcador en el navegador.

El hecho de que el parámetro GET se ejecute en el URL como texto sin codificar, descalifica, sin
embargo, a este método para la entrega de datos sensibles como los que albergan los formularios
online. Asimismo, el volumen de datos que se puede entregar por medio de la superglobal $_GET está
limitado a la longitud máxima de los URL, limitaciones que pueden evitarse con el método POST de
HTTP. Los datos transferidos con él se encuentran en la superglobal $_POST.

Transferencia de datos vía $_POST


Mientras que los datos que se transfieren mediante el método GET se entregan como parámetros URL,
la transferencia de datos vía $_POST se realiza en el cuerpo de una petición HTTP. Esto permite a los
desarrolladores transferir grandes cantidades de datos de un script a otro.

Un campo de aplicación esencial del método HTTP-POST es la transmisión de datos de formularios


HTML. Veámoslo con el ejemplo de una suscripción a una newsletter.

Para ello, crea un nuevo archivo PHP con el nombre page1.php e incluye el siguiente bloque de código:

<form method="post" action="page2.php" >


Por favor, envía la newsletter a: <br />
Tu nombre: <input type="text" name="nombre" /><br />
Tu apellido: <input type="text" name="apellido" /><br />
Tu correo electrónico: <input type="text" name="email" /><br />
<input type="submit" value="Enviar formulario" />
</form>

En la creación de formularios entra en juego el elemento HTML <form>. Este incluye en la etiqueta de
inicio dos atributos: method y action. Con el primero se pueden definir los métodos de transmisión, en
este caso el método POST de HTTP. En el atributo action se deposita el URL de un script que recibe
todos los datos registrados a través de los siguientes campos de entrada. El ejemplo muestra
un formulario HTML con tres elementos de entrada (input type="text") y un botón de envío (input
type="submit"). Como receptor de los datos, se define el archivo page2.php.
Para entender la transferencia de datos por medio de $_POST, recurrimos a un script sencillo para el
análisis de los datos del formulario que almacena los valores introducidos como variables PHP en
formato de texto. Crea para ello un archivo page2.php e inserta el siguiente código de programación:

<?php
$nombre = $_POST["nombre"];
$apellido = $_POST["apellido"];
$email = $_POST["email"];
echo "Hola " . $nombre . " " . $apellido . ", <br />
Te has registrado con el siguiente correo electrónico: " . $email . ".";
?>

Guarda los dos archivos PHP en la carpeta htdocs de tu servidor de prueba y abre page1.php con el
siguiente URL en el navegador web: http:// localhost/ page1.php. El navegador muestra entonces la
interfaz web interactiva de tu formulario HTML.
El constructor if y los operadores de comparación de PHP
Hasta ahora hemos definido las variables, pero también hemos mostrado cómo se transmiten estas de
un script a otro y se emiten en forma de strings. A continuación te mostramos cómo se puede vincular
la ejecución de los fragmentos de código con unas condiciones determinadas.

El constructor if brinda la posibilidad de escribir scripts de tal manera que las instrucciones surten efecto
cuando el usuario cumple una de las condiciones previstas, como puede ser, por ejemplo, la introducción
de una contraseña correcta.

Las condiciones se pueden definir en PHP según la siguiente estructura básica:

<?php
if(expression)
{
statement;
}
?>
Esta se lee de la siguiente manera: solo en aquellos casos en los que se cumpla la condición
en expression se podrá ejecutar el statement. Una condición se ha cumplido cuando el constructor if da
como resultado TRUE (verdadero). De no ser así, este se interpreta como FALSE (falso), en cuyo caso se
omitirá la instrucción.

Por regla general, el constructor if compruebasi el valor de una variable se corresponde con lo definido
en la condición. Esta estructura de control tiene lugar normalmente en base a losoperadores de
comparación.

Operadores de comparación
Los operadores de comparación se utilizan a la hora de formular condiciones, con el objetivo de poner
dos argumentos en una relación lógica que se puede evaluar como verdadera (TRUE) o falsa (FALSE). Si
se emplean los operadores de comparación en las estructuras de control de PHP, estos pueden
implementarse con dos variables en la expression de un constructor if:

if ($a == $b)
{
statement;
}
Expresemos la estructura de control con palabras: las condiciones definidas se llevan a cabo en caso de
que la variable $a sea equivalente a la variable $b.

Los operadores de comparación de PHP se basan en el lenguaje de programación C y se diferencian


considerablemente de los símbolos matemáticos clásicos en su escritura. En la tabla siguiente te
ofrecemos una lista detallada de los mismos:

Operador de
comparación Descripción Condiciones

== Igual La condición se cumple si $a y $b muestran el mismo valor.


Operador de
comparación Descripción Condiciones

=== Idéntico La condición se cumple si $a y $b muestran el mismo valor y


pertenecen al mismo tipo de datos. Esto se puede visualizar en un
ejemplo en el que se compara un íntegro (1) con un string ("1"): 1 ==
"1" //TRUE 1 === "1" //FALSE. Lo más recomendable es utilizar
siempre el operador de comparación === (idéntico) para aquellas
condiciones que requieren dos variables.

!= Diferente La condición se cumple si $a y $b tienen valores diferentes.

!== No idéntico La condición se cumple si $a y $b tienen valores que no son iguales o


que pertenecen a tipos de datos diferentes.

< Menor que La condición se cumple si el valor de $a es menor que el de $b.

> Mayor que La condición se cumple si el valor de $a es mayor que el de $b.

<= Menor o igual La condición se cumple si el valor de $a es menor que el valor de $b


que o si $a y $b tienen el mismo valor.

>= Mayor o igual La condición se cumple si el valor de $a es mayor que el valor de $b


que o si $a y $b tienen el mismo valor.

El siguiente script debe arrojar luz a esta estructura de control, en la que se comparan dos números
enteros. El operador de comparación que se utiliza es < (menor que):

<?php
$numero1 = 10;
$numero2 = 20;
if($numero1 < $numero2) {
echo "Se cumple la condición";
}
En este caso, se definen las variables $numero1 y $numero2 y se les asignan los valores 10 y 20. A
continuación se establece una condición: si $numero1 es menor que $numero2, se emitirá el string
mencionado en la condición de echo.

El resultado de la ejecución del script contiene la respuesta: 10 es menor que 20. El


constructor if devuelve el resultado TRUE. Tras ello, se puede decir que la condición se ha cumplido
(The condition is fulfilled).
Si quieres definir instrucciones que se ejecuten en el caso de que una condición no se cumpla puedes
complementar el constructor if con la sentencia elsesegún el esquema siguiente:

<?php
if(condición a)
{
instrucción b;
}
else
{
instrucción c
}
?>
Este script también comprueba si la condición a devuelve el resultado TRUE o FALSE. Si se cumple
la condición a (TRUE) se ejecutará la instrucción b. Si no se cumple la condición a(FALSE), se saltará
la instrucción b y, en su lugar, se ejecutará la instrucción c.

A continuación ampliamos nuestro script con el constructor else y cambiamos el operador de


comparación < (menor que) por == (igual):

<?php
$numero1 = 10;
$numero2 = 20;
if($numero1 == $numero2)
{
echo "La condición se cumple";
}
else
{
echo "La condición no se cumple";
}
?>
En este caso, el constructor if ofrece como resultado FALSE. El valor de la variable $numero1 no es igual
que el valor de la variable $numero2. La condición no se cumple (The condition is not fulfilled). Por lo
tanto, no se ejecuta bajo la instrucción if, sinobajo la definida por else.

La negación de las condiciones tiene lugar mediante un signo de exclamación (!) dentro de
la expression.

<?php
$numero1 = 10;
$numero2 = 20;
if ($numero1 == $numero2)
{
echo "Los números son iguales.";
}
if (!($numero1 == $numero2))
{
echo "Los números no son iguales.";
}
?>
El ejemplo muestra la condición $numero1 == $numero2 y su negación. !($numero1 ==
$numero2) equivale a ($numero1 != $numero2).

Una aplicación práctica de if y else es, por ejemplo, la solicitud de contraseña en un formulario HTML.
A continuación, veamos una simulación con ayuda de los ficheros PHP page1.php y page2.php.

Abre el fichero page1.php e introduce el siguiente código de formulario:

<form action="page2.php" method="post">


Por favor, introduce tu contraseña: <input type="password" name="contraseña" />
<input type="submit" value="Enviar" />
</form>
La estructura se corresponde con el formulario ya creado. En este caso solo es necesario un campo de
entrada: la solicitud de la contraseña. Como se ha descrito anteriormente, las entradas del usuario se
comunican al script page2.php.Este puede adaptarse con el siguiente código de manera que la
introducción de la contraseña se compare con una contraseña ya facilitada:

<?php
$contrasena = $_POST["contrasena"];
if($contrasena=="qwertz123")
{
echo "La contraseña es correcta";
}
else
{
echo "La contraseña es incorrecta";
}
?>
El código puede leerse de la siguiente manera: en primer lugar le asignamos un valor a la
variable $contrasena en la línea 2, al que se accede a través del método POST de HTTP. A continuación,
se define la siguiente estructura de control: el constructor if de la línea 3 debe verificar si el valor de la
variable $contrasena coincide con el string qwertz123. En caso de ser así, se obtiene el string The
password was correct (La contraseña es correcta). Si el constructor if da como resultado FALSE, entra
en juego enla línea 7 el constructor else y se emite el string The password was incorrect (La contraseña
es incorrecta).

Se puede acceder al script page1.php a través del URL http:// localhost/ page1.php.

Operadores lógicos
Las condiciones que se definen con ayuda de los operadores de comparación en la expression del
constructor if pueden enlazarse, en caso necesario, con otras condiciones en la misma expression. PHP
se basa, para ello, en los operadores lógicos AND y OR.

Operadores lógicos:
Vínculo estrecho Vínculo débil Descripción

&& AND Las dos condiciones vinculadas con el operador deben estar definidas por el valor

// OR Una de las condiciones vinculadas por el operador tiene que ser TRUE.

Para enlazar condiciones, PHP cuenta con operadores lógicos que establecen vínculos estrechos o
débiles. El hecho de decidirse por una u otra opción no plantea diferencias en la práctica. Si estas se
combinan, sin embargo, es fácil darse cuenta que OR y || establecen un vínculo más estrecho
que AND y OR. Además, el vínculo creado por AND y && es más estrecho que OR y ||. Esto es
comparable con la jerarquía de operadores, tal como se conoce por los operadores matemáticos (por
ejemplo, los operadores de multiplicación y división tienen precedencia sobre los de adición y
sustracción: * establece un vínculo más estrecho que +).

Un ejemplo práctico de esto es el que ofrece la solicitud de contraseña. Por lo general, los datos de
registro se componen de una contraseña secreta y de un nombre de usuario. Solo se podrá llevar a
cabo el registro en aquellos casos en los que tanto un dato como el otro coincidan con los facilitados en
el sistema.

En este caso, volvemos a abrir el formulario para la solicitud de la contraseña en la page1.php y


añadimos un campo de entrada para el nombre de usuario:

<form action="page2.php" method="post">


Nombre de usuario: <input type="text" name="username" /><br />
Contraseña: <input type="password" name="password" /><br />
<input type="submit" value="Enviar" />
</form>
En el paso siguiente hay que adaptar la estructura de control del constructor if. Para ello es necesario
recurrir al operador lógico AND y enlazar, así, la condición para la solicitud de la contraseña con una
condición para la solicitud del nombre de usuario.

<?php
$username = $_POST["username"];
$password = $_POST["password"];

if($username=="John Doe" AND $password=="qwertz123")


{
echo "Bienvenido al área interna " . $username . "!";
}
else
{
echo "Acceso denegado";
}
?>
El script page2.php recibe los valores para nombre de usuario y contraseña y los almacena en las
variables $username y $password. La expression del constructor if contiene dos condicionesque están
vinculadas con el operador lógico AND. Solo cuando se hayan cumplido ambas condiciones
(username=="John Doe" y $password=="qwertz123"), el constructor if ofrecerá como resultado TRUE.

Debido a que el nombre de usuario se obtiene a través del campo de entrada username, este puede
utilizarse directamente para publicar el texto vía echo: a Welcome to the internal área (Bienvenido al
área interna) le sigue el valor de la variable $username.Si no se cumple una de las dos condiciones, se
recibirá el texto Access denied (Acceso denegado).

Bucles (while, for)


A veces es necesario que un script recorra un determinado segmento de código varias veces antes de
que se ejecute el resto del código del programa. Para ello, los lenguajes de programación utilizan el
concepto de bucle. Aquí se pueden diferenciar tres tipos:

• bucles while
• bucles do-while
• bucles for

Bucles while
Los bucles while son los bucles más sencillos de PHP. Su estructura base obedece al siguiente esquema:

while (condición)
{
Paso del bucle y otras instrucciones
}
Los bucles while instan a PHP a ejecutar instrucciones subordinadas en tanto que la condición while se
cumpla. Para ello, el intérprete de PHP comprueba la condición al principio de cada vuelta del bucle. La
ejecución del código subordinado se para cuando la condición while ya no se cumple.

Se puede visualizar este principio con un sencillo script con números. A continuación, la versión en
español:

<?php
$numero = 1;
while ($numero <= 10) {
echo $numero++ . "<br />";
}
?>
En el apartado “Realización de cálculos con variables” anterior ya se introdujo el principio del
incremento. En el siguiente script recurrimos a dicho principio, pero utilizamos un operador de
postincremento para aumentar en 1 el valor del integer de la variable $number ($numero) cada vez que
el bucle dé una vuelta tras la publicación del texto vía echo. Como condición para el
bucle while definimos que $numbersea menor/igual a 10. La instrucción echo se repetirá tantas veces
como sea necesario para que $number reciba un valor superior a 10.

El resultado de la ejecución del script es un string que, cada vez que el bucle da una vuelta, emite el
valor de la variable $number antes de que este se incremente. El script cuenta de 1 a 10 y finaliza la
ejecución del código en cuanto no se cumple la condición while.
Bucles do-while
La construcción de los bucles do-while se asemeja a la de los bucles while. La diferencia solo radica en
que la condición no se comprueba al principio de cada vuelta del bucle, sino al final. El esquema básico
de un bucledo-while se corresponde con el siguiente ejemplo:

do {
Paso del bucle y otras instrucciones
}
while (Condición)
Cuando se programa un bucle do-while, el script resultante tiene el siguiente aspecto:

<?php
$numero = 1;
do {
echo $numero++ . "<br />";
}
while ($numero <= 10);
?>
En este caso, el resultado es el mismo. Lo peculiar en el bucle do-while es que este se ejecuta al menos
una vez, aun cuando la condición no se cumpla en ninguna ejecución del bucle.

Bucles for
Básicamente, los bucles for tienen la misma funcionalidad en un script de PHP que los bucles while. A
diferencia de estos, sin embargo, el valor inicial, la condición y la instrucciónse anotarán dentro de
una línea y no se distribuirán a lo largo de tres o más líneas.

La estructura base del bucle for tiene el siguiente esquema:

for (valor inicial; condición; paso del bucle)

instrucciones

Este ejemplo en español puede entenderse como bucle for en forma compacta:

<?php
for($numero = 1; $numero <= 10; $numero++) {
echo $numero . "<br /> ";
}
?>
En primer lugar, se define el valor 1 para la variable $numero. Posteriormente, PHP comprueba si se
cumple la condición $numero <= 10. Si es correcto, el bucle continúa y se ejecutan las instrucciones por
debajo del bucle (en este caso, la instrucción echo). Solo entonces se ejecuta el bucle, en cuyo caso no
tiene importancia si se ha optado por el preincremento o por el postincremento, puesto que esta
instrucción se realiza con anterioridad a la emisión. Si el paso del bucle ha concluido, dará comienzo la
siguiente vuelta.

El valor inicial, la condición o el paso del bucle son elementos opcionales de un bucle for. En teoría, son
posibles incluso los bucles vacíos, aunque serían redundantes.
Básicamente, tomar una decisión acerca de si los scripts PHP deben incluir bucles for o while depende
de cada uno. Existe, sin embargo, un argumento que demuestra que los bucles for ganan la partida: si
se aplican bucles for, se pueden controlar mejor los datos fundamentales del bucle. Esto contribuye a
prevenir el peligro de escribir un bucle que funcione hasta que la memoria del intérprete esté llena.
Esto ocurre en referencia al ejemplo mencionado si se olvida incrementar el valor de la
variable $numero.

En caso de que el bucle tenga que funcionar al menos una vez independientemente de la condición, el
bucle do-while es el bucle que habría que elegir.

break y continue
Se puede influir en el transcurso de un bucle while-, do-while o for por medio de las
instrucciones break y continue. Se usa break para interrumpir el transcurso de un bucle en cualquier
lugar y continue para omitir una vuelta del bucle. Tanto una instrucción como la otra están conectadas
a una condición por medio del constructor if. En el ejemplo siguiente, tanto el original como la
traducción muestran un script numérico con un break:

<?php
for ($numero = 1; $numero <= 10; $numero++) {
if ($numero== 5) {
echo "El script se para al llegar a 5";
break;
}
echo $numero . "<br /> ";
}
?>
En el bucle for hemos definido que el valor de la variable $numero ($number) se incremente en 1 en
cada vuelta hasta que la variable haya alcanzado el valor 10. Ahora, con la instrucción break, el bucle se
puede interrumpir con anticipación en cuanto $numero ($number) haya alcanzado el valor 5. El
constructor echo solo ofrece los números comprendidos entre el 1 y el 4.

También podría gustarte