Curso PHP 7

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

Lenguajes de script - Tutorial de PHP 7 2

INDICE DE CONTENIDOS
1) Iniciación a PHP 7

1.1) Introducción a PHP 7


1.2) Instalación de Software necesario para PHP 7
1.3) Nuestro primer PHP ¡Hola mundo! y algo más
1.4) Comentarios dentro de código PHP 7
1.5) Variables en PHP 7
1.6) Variables reservadas en PHP 7
1.7) Cómo concatenar en PHP 7

2) Operadores en PHP 7

2.1) Operadores aritméticos en PHP 7


2.2) Operadores de comparación PHP 7
2.3) Operadores lógicos en PHP 7

3) Instrucciones en PHP 7

3.1) Condicionales en PHP 7


3.2) Qué son los bucles PHP 7
3.3) Salida función printf PHP 7
3.4) Manejo de cadenas PHP 7

4) Funciones en PHP 7

4.1) ¿Qué son las funciones en PHP 7?

5) Procesado de formularios con PHP 7

5.1) Recuperar datos en métodos GET y POST


5.2) ¿Qué es la función mail en PHP 7?

6) Bases de Datos MySQL en PHP 7

6.1) Crear la base de datos y tabla MySQL en PHP 7


6.2) Conectarse a la Base de Datos de MySQL en PHP 7
6.3) Consultas a la Base de Datos MySQL en PHP 7
6.4) Insertar registros a la Base de Datos MySQL en PHP 7
6.5) Actualizar registros de Base de Datos MySQL en PHP 7
6.6) Borrar registros de la Base de Datos MySQL en PHP 7

7) Sesiones en PHP 7

7.1) ¿Qué son las sesiones en PHP 7?


7.2) Ejemplo de uso de sesiones en PHP 7

8) Cookies en PHP 7

8.1) ¿Qué son las Cookies en PHP 7?


8.2) Ejemplos de cómo usar Cookies en PHP 7
Lenguajes de script - Tutorial de PHP 7 3

9) Expresiones regulares EE.RR en PHP 7

9.1) ¿Qué son las expresiones regulares en PHP 7?


9.2) Veamos 10 ejemplos sobre patrones de expresiones regulares
9.3) Ejemplos de expresiones regulares

10) PHP 7 Orientado a Objetos

10.1) ¿Qué son las clases en PHP 7?


10.2) Los atributos de POO en PHP 7
10.3) ¿Qué es la Herencia POO en PHP 7?
10.4) Veamos el Acceso Public (Público) en POO PHP 7
10.5) Veamos el Acceso Private (Privado) en POO PHP 7
Lenguajes de script - Tutorial de PHP 7 4

Capítulo 1.- Introducción a PHP 7


Este es el primer capítulo de nuestro Tutorial PHP
7, veremos una breve intruducción a PHP 7, vamos a ins-in
talar el software necesario para su ejecución, veremos los
comentarios dentro del código, las variables y como con-
co
catenar.
Lenguajes de script - Tutorial de PHP 7 5

1.1) Introducción a PHP 7


PHP es un lenguaje de programación creado en el año 1995 de uso general de código del lado del
servidor originalmente diseñado para el desarrollo web de contenido dinámico. Fue uno de los primeros
lenguajes de programación del lado del servidor que se podían incorporar directamente en el documento
HTML en lugar de llamar a un archivo externo
ex que procese los datos.

El código es interpretado por un servidor web con un módulo de procesador de PHP que genera la
página Web resultante. PHP ha evolucionado por lo que ahora incluye también una interfaz de línea de
comandos que puede ser usada en n aplicaciones gráficas independientes. Puede ser usado en la mayoría
de los servidores web al igual que en casi todos los sistemas operativos y plataformas sin ningún costo.

PHP se considera uno de los lenguajes más flexibles,


potentes y de alto rendimiento
ento conocidos hasta el día de hoy,
lo que ha atraído el interés de múltiples sitios con gran de-
d
manda de tráfico, como Facebook,
cebook, para optar por el mismo
como tecnología de servidor.

Con las primeras 2 versiones de PHP, PHP 3 y PHP


4, se había conseguido una na plataforma potente y estable
para la programación de páginas del lado del servidor. Estas
versiones han servido de mucha ayuda para la comunidad
de desarrolladores, haciendo posible que PHP sea el lengua-
lengu
je más utilizado en la web para la realización de páginas
avanzadas.

Sin embargo, todavía existían puntos negros en el desarrollo PHP que se han tratado de
solucionar con la versión 5, aspectos que se echaron en falta en la versión 4, casi desde el día de
su lanzamiento. Nos referimos principalmente a lala programación orientada a objetos (POO) que, a
pesar de que estaba soportada a partir de PHP 3, sólo implementaba una parte muy pequeña de
las características de este tipo de programación.

Nota: La orientación a objetos es una manera de programar que trata de modelar los pro-
pr
cesos de programación de una manera cercana a la realidad: tratando a cada componente de un
programa como un objeto con sus características y funcionalidades.

El principal objetivo de PHP 7 ha sido mejorar los mecanismos de POO para


p solucionar las
carencias de las anteriores versiones. Un paso necesario para conseguir que PHP sea un lengua-
lengu
je apto para todo tipo de aplicaciones y entornos, incluso los más exigentes.
Lenguajes de script - Tutorial de PHP 7 6

1.2) Instalación de Software necesario para PHP 7

Como ya hemos leído, PHP es un lenguaje de programación de lado servidor,


servidor lo que significa que
todo el código PHP será interpretado por el Binaro PHP en el Servidor Web, y el resultado será envíado al
cliente, comunmente puede ser:

• HTML
• JavaScript
• CSS
• Imagenes
• Cualquier texto sin formato

Y éste, es entregado por el servidor HTTP web.

Para la realización del tuturial recomedamos instalar un servidor en nuestra misma máquina, a mo-
m
do de pruebas. También puedes hacerlo en tu hosting (si ya lo tienes, aunque para esta altura aún no vale
la pena contratarlo). Para nuestro Tutorial PHP 7 usaremos XAMPP.

¿Qué es XAMPP?

XAMPP es una distribución de Apache completamente gratuita y fácil de instalar que contiene
el servidor web HTTP Apache, Base de Datos MySQL, PHP y Perl.. El paquete de instalación
de XAMPP ha sido diseñado para ser increíblemente fácil de instalar y usar, es muy potente, tanto para
poder desarrollar, probar, hasta para montar un servidor de producción, solo que ésto último no lo reco-
rec
miendo (en lo personal).
A continuación instalaremos XAAMP versión 5.6.8 para Windows 7 32 bits.
bits
La liga para su descarga está aquí:

https://www.apachefriends.org/xampp
.org/xampp-files/5.6.8/xampp-win32-5.6.8-0-VC11
VC11-installer.exe

Una vez descargado, ejecutaremos el instalador xampp-win32-5.6.8-0-VC11


VC11-installer.exe.

Clickeamos en "YES" y continuamos.


Lenguajes de script - Tutorial de PHP 7 7

Clickeamos en "OK" y continuamos.

Clickeamos en "Next >" y continuamos.


ontinuamos.

Lo dejamos tal cual, clickeamos "Next >" y continuamos.


Lenguajes de script - Tutorial de PHP 7 8

Nos preguntara por la ruta de instalación que queremos darle, dejaremos la default que viene (así como
está en pantalla), clickeamos "Next >" y continuamos.

Clickeamos en "Next >" y continuamos.


Lenguajes de script - Tutorial de PHP 7 9

Clickeamos en "Next >" y continuamos.

Comenzará a instalar, esperamos.


Lenguajes de script - Tutorial de PHP 7 10

Una vez finalizado, nos preguntará si deseamos abrir el Panel de Control,


Control seleccionamos la casilla
y clickeamos en "Finish".

Listo. Ya tenemos nuestro paquete de servidores locales instalados. Ahora, se abrirá el Panel de Control.

En el Panel de Control,, tenemos la opción de iniciar, reiniciar o parar el servidor que deseemos,
así como los accesos directos a los archivos de configuración (éstos por el momento no los tocaremos).
Lenguajes de script - Tutorial de PHP 7 11

Arrancamos los servidores Apache (web HTTP) y de Base de datos MySQL.

Nuestra carpeta raíz donde se alojarán todos los archivos PHP está en "C:\xampp
xampp\htdocs\" y yo creé
una nueva carpeta llamada "mis_apps",
"mis_apps" creenla.
Lenguajes de script - Tutorial de PHP 7 12

Abriremos nuestro
stro navegador, e iremos a la dirección http://localhost/mis_apps/.
http://localhost/mis_apps/ Aquí iremos po-
niendo nuestros archivos PHP generados en este Tutorial de PHP 7.
Para acceder a las Bases de Datos MySQL lo puedes hacer
hace desde http://localhost/phpmyadmin/.
http://localhost/phpmyadmin/

Felicidades, ya tenemos nuestro ambiente de desarrollo listo.


Lenguajes de script - Tutorial de PHP 7 13

1.3) Nuestro primer PHP ¡Hola mundo! y algo más


En este capítulo aprenderemos a crear un archivo
archiv PHP que nos devuelva un código dinámico.
Ejemplo, un "Hola mundo"" en conjunto a saber intercalar el código PHP y otros códigos (HTML, JavaS-
Java
cript, CSS, etc).
Para ello, crearemos una carpeta dentro de "C:\xampp\htdocs\mis_apps
" mis_apps\" que se llame "capitu-
lo_1" y dentro de éste, un archivo llamado hola.php.. A continuación escribiremos lo siguiente:

<?php

echo "¡Hola mundo!";

?>

Vamos a abrir nuestro explorador y entraremos en localhost/mis_apps/capitulo_1/hola.php.


Deberemos ver lo siguiente:

Siempre
mpre que vayamos a escribir código PHP 7 debemos comenzar con "<?php"" y terminar con
"?>", echo es una función PHP propia para imprimir en pantalla lo que siga entre " ". Si todo resultó bien,
¡felicidades!. Creaste tu primer código PHP 7 dinámico.
dinámico

La ventaja que tiene PHP 7 sobre otros lenguajes de programación que se ejecutan en el servi- serv
dor (como podrían ser los script CGI Perl),
Perl), es que nos permite intercalar las sentencias PHP 7 en las pagi-
nas HTML, es un concepto algo complicado de entender si no se ha ha visto nunca como funciona unas
paginas PHP, ASP, .NET, etc.

Vamos a ver el siguiente ejemplo para comprenderlo mejor. En otro archivo, llama-
llam
do hola_bucle.php escribiremos lo siguiente:

<html>
<head>
<title>Nuestro primer ejemplo en PHP 7</title>
7</tit
</head>

<body>

<?php

echo "¡Hola mundo! <br>";

for($i = 0; $i < 10; $i++)


{
echo "Línea número: ".$i."<br>"
"<br>";
}
?>

</body>
</html>
Lenguajes de script - Tutorial de PHP 7 14

El código PHP ejecutado tiene dos partes: la primera imprime "¡Hola mundo!" y la segunda es un
bucle que se ejecuta 10 veces de 0 a 9, por cada vez que se ejecuta se escribe una línea, la varivaria-
ble $i contiene el número de línea que se está escribiendo.

No importa si no entiende muy bien el programa este ejemplo solo es para ilustrar como se interca-
la el código HTML y el código PHP.
Lenguajes de script - Tutorial de PHP 7 15

1.4) Comentarios dentro de código PHP 7


En PHP 7 como en todos los lenguajes de programación y de marcado (HTML, XML, CSS, etc)
existen los comentarios. Pero, ¿qué son los comentarios?, bueno los comentarios son fragmentos de texto
dentro de código de programación que a través de algunos carácteres al inicio, el binario de PHP los igno-
rará, en PHP hay tres tipos:

• 1.- De doble barra //


• 2.- Con signo de gato #
• 3.- Con barra y asterisco para apertura y asterisco y barra para cierre /* */

Ahora veamos los ejemplos:

1.- De doble barra //

<html>
<head>
<title>Ejemplo de comentarios en PHP 7</title>
</head>

<body>

<?php

// ¡Este es el primer tipo de comentario!. Podemos agregar tanto texto como queramos sin cam-
biar de renglón.

echo "Dejaremos este echo como ejemplo de ejecución de PHP 7";

?>

</body>
</html>

2.- Con signo de gato #

<html>
<head>
<title>Ejemplo de comentarios en PHP 7</title>
</head>

<body>

<?php

# ¡Este es el segundo tipo de comentario!. Podemos agregar tanto texto como querramos sin cam-
biar de renglón.

echo "Dejaremos este echo como ejemplo de ejecución de PHP 7";

?>

</body>
</html>

3.- Con barra y asterisco para apertura y asterisco y barra para cierre /* */

<html>
<head>
Lenguajes de script - Tutorial de PHP 7 16

<title>Ejemplo de comentarios en PHP 7</title>


</head>

<body>

<?php

/*
¡Este es el segundo tipo de comentario!.
Podemos agregar tanto texto como queramos cambiando de renglón.
Sin importar que escribamos
Bajando de renglones
Hasta su cierre
*/

echo "Dejaremos este echo como ejemplo de ejecución de PHP 7";

?>

</body>
</html>

Usar comentarios dentro de código PHP 7 nos es muy útil ya que podemos dejar descripciones o lo que
deseemos.
Lenguajes de script - Tutorial de PHP 7 17

1.5) Variables en PHP 7


Las variables son uno de los primeros temas que tenemos que conocer en PHP 7 y en la mayoría
de los lenguajes de programación.

Una variable es un contenedor de información, en el que podemos almacenar números enteros,


números decimales, cadenas de texto, etc. El contenido de las variables se puede leer y se puede cambiar
durante la ejecución de una página que tenga PHP 7.

En PHP todas las variables comienzan con el símbolo del dólar $ y no es necesario
necesari definir una va-
riable antes de usarla.

Tampoco tienen tipos, es decir que una misma variable puede contener un número y luego puede
contener carácteres.

OJO: Son sensibles a minúsculas y mayúsculas y tampoco se deben de iniciar con un número
(más abajo especificamos ejemplos inválidos).
Veamos un ejemplo, dentro de nuestra carpeta "mis_apps\capitulo_1" crearemos un archivo llama-
llam
do variables.php con el siguiente código:

<html>
<head>
<title>Ejemplo de tipos de variables en PHP 7</title>
</head>

<body>

<?php

$a = 1;

$b = "3.34";

$c = "Contenedor de código PHP 7.";


7."

// Veamos qué viene

echo $a."<br>".$b."<br>".$c;

?>

</body>
</html>

Un punto importante a resaltar, es que si vamos a utilizar una variable


variable que está especificada afuera
de alguna función que desarrollemos tenemos que anteponer global.. Veamos un ejemplo, crearemos un
archivo llamado variables_funcion.php:
variables_funcion.php

<html>
Lenguajes de script - Tutorial de PHP 7 18

<head>
<title>Ejemplo de tipos de variables en PHP 7</title>
</head>

<body>

<?php

$a = 1;

$b = "3.34";

$c = "Contenedor de código PHP 7 en una función.";


función."

function ejemploVariables()
{

global $a, $b, $c;

// Veamos qué viene

echo $a."<br>".$b."<br>".$c;

// Ejecutamos la función

ejemploVariables();

?>

</body>
</html>

También, podemos almacenar información en variables mediante matrices (las matrices las vere-
ver
mos más adelante), veamos un ejemplo, crearemos un archivo llamado variables_array.php
es_array.php:

<html>
<head>
<title>Ejemplo de tipos de variables en PHP 7</title>
</head>

<body>

<?php

// En primer lugar indicamos que $nuestraVariable es una matriz

$nuestraVariable = array();

// Asignemos valores
Lenguajes de script - Tutorial de PHP 7 19

$nuestraVariable[0] = "Tenemos la pocisión en 0";


0"
$nuestraVariable[1] = "Tenemos la pocisión en 1"
1";
$nuestraVariable[2] = "Tenemos la pocisión en 2"
2";
$nuestraVariable[3] = "Tenemos la pocisión en 3"
3";
$nuestraVariable[4] = "Tenemos la pocisión en 4"
4";

// Recorramos la matriz

echo "<pre>"; // <- HTML que especifica texto sin formato

print_r($nuestraVariable);

echo "</pre >";


?>

</body>
</html>

Con el ejemplo anterior, vemos que también podemos asignarle valores a una variable matriz.

A continuación ejemplos inválidos:

Posible nombre de variable ¿Es válido?


$4variable Nombre de variable inválido.
$_4variable Nombre de variable válido.
$variable4 Nombre de variable válido.
$otra Nombre de variable válido.
$1_otra Nombre de variable inválido.
inválido
$variable_de_nombre_muy_largo Nombre de variable válido.
$ABC Nombre de variable válido.
$ABC Nombre de variable inválido.
inválido
$A_y_B_x_C Nombre de variable válido.
Lenguajes de script - Tutorial de PHP 7 20

1.6) Variables reservadas en PHP 7


Las variables reservadas son aquellas que PHP 7 define con valores en matrices por default, que
están disponibles todo el tiempo sin necesidad de requerir librerías y que no podemos cambiar su conteni-
do. A continuación veremos una tabla descriptiva y después, ya en detalle cada una:

Variable Valor

$_SERVER Información del entorno del servidor y de ejecución.

$_GET Variables en el encabezado HTTP GET

$_POST Variables recibidas en el encabezado HTTP GET

$_COOKIE Variable con la cual podemos crear, accesar, editar o


destruir Cookies.

$_FILES Variables que llegan al servidor con archivos mediante


carga.

$_REQUEST Es una variable de array asociativo que por defecto con-


tiene el contenido de $_GET, $_POST y $_COOKIE.

$_SESSION Variables de sesión.

$_SERVER

La varibale $_SERVER nos devolverá en forma de array (matriz) información de servidor, rutas,
conexiones, información del cliente y distintos headers recibidos. Veamos un ejemplo, dentro de nuestra
carpeta "mis_apps\capitulo_1" crearemos un archivo llamado variables_server.php con el siguiente
código:

<html>
<head>
<title>Ejemplo de variable reservada en PHP 7</title>
</head>

<body>

<pre>

<?php

print_r($_SERVER);

?>

</pre >

</body>
</html>
Lenguajes de script - Tutorial de PHP 7 21
Lenguajes de script - Tutorial de PHP 7 22

$_GET

La variable $_GET nos devolverá en forma de array (matriz) información de variables enviadas a
través del parámetro HTTP GET, es decir, en la dirección de solicitud, variables y asiganciones con &
= (archivo.php?variable-1=valor1&varibale
1=valor1&varibale-2=valor2&varibale-3=valor3).
Veamos
mos un ejemplo, dentro de nuestra carpeta "mis_apps\capitulo_1" crearemos un archivo lla-
mado variables_get.php con el siguiente código y lo ejecutaremos con los siguientes parametros:

http://localhost/mis_apps/capitulo_1/variables_get.php?variable-1=valor1&varibale
http://localhost/mis_apps/capitulo_1/variables_get.php?variable 1&varibale-2=valor2&varibale-
3=valor3

<html>
<head>
<title>Ejemplo de variable reservada en PHP 7</title>
</head>

<body>

<pre>

<?php

print_r($_GET);

?>

</pre >

</body>
</html>

$_POST

La variable $_POST nos devolverá


volverá en forma de array (matriz) información de varibales enviadas a
través del paramatro HTTP POST. Veamos un ejemplo, dentro de nuestra carpe- carp
ta "mis_apps\capitulo_1" crearemos un archivo llamado variables_post.php con el siguiente código:

<html>
<head>
<title>Ejemplo de variable reservada en PHP 7</title>
</head>

<body>

<h2>Ejemplo de variables con protocolo POST</h2>

<form method="post">
Lenguajes de script - Tutorial de PHP 7 23

Escribe tu nombre: <input type="text" name="nombre" value="<?=@$_POST


value=" $_POST['nombre'];?>"> <br>
<br>

Escribe tu edad: <input type="text" name="edad" value="<?=@$_POST['edad'


value=" 'edad'];?>"> <br> <br>

<input type="submit" value="Enviar">

</form>

<pre>

<?php

if($_POST)
{
print_r($_POST);
}

?>

</pre >

</body>
</html>

$_COOKIE

La variable $_COOKIE nos devolverá en forma de array (matriz) información de cookies guardadas
en nuestro cliente. Veamos un ejemplo, dentro de nuestra carpeta "mis_apps\capitulo_1"
capitulo_1" crearemos un
archivo llamado variables_cookie.php con el siguiente código:

<?php

// Establecemos los valores de las Cookies

setcookie("Valor_1", "1");

setcookie("Valor_2", "2");

setcookie("Valor_3", "3");
Lenguajes de script - Tutorial de PHP 7 24

?>

<html>

<head>
<title>Ejemplo de variable reservada en PHP 7</title>
</head>

<body>

<pre>

<?php

print_r($_COOKIE);

?>

</pre >

</body>
</html>

$_FILES

La variable $_FILES nos devolverá en forma de array (matriz) información de archivos que hayan
llegado al servidor a través del protocolo HTTP
HTTP POST. Veamos un ejemplo, dentro de nuestra carpe-
carp
ta "mis_apps\capitulo_1" crearemos un archivo llamado variables_file.php con el siguiente código:

<html>

<head>
<title>Ejemplo de variable reservada en PHP 7</title>
</head>

<body>

<h2>Ejemplo de variables FILES POST</h2>

<form method="post" enctype="multipart/form-data">


enctype="multipart/form

Archivo: <input type="file" name="archivo"> <br> <br>

<input type="submit" value="Enviar">

</form>
Lenguajes de script - Tutorial de PHP 7 25

<pre>

<?php

if($_FILES)
{
print_r($_FILES);
}

?>

</pre >

</body>
</html>

$_REQUEST

La variable $_REQUEST nos devolverá en forma de array (matriz) información en array asociativo
con el contenido de las varibles $_GET, $_POST y $_COOKIE. Veamos un ejemplo, dentro de nuestra
carpeta "mis_apps\capitulo_1" crearemos un archivo llamado variables_request.php con el siguiente
código:

<html>

<head>
<title>Ejemplo de variable reservada en PHP 7</title>
</head>

<body>

<pre>

<?php

print_r($_REQUEST);

?>

</pre >

</body>
Lenguajes de script - Tutorial de PHP 7 26

</html>

$_SESSION

La variable $_SESSION nos devolverá en forma de array (matriz) información de variables estable-
cidas en sesión, estando accesibles en cualquier parte de nuestra aplicación sin necesidad de requerir las
definiciones. Veamos un ejemplo, dentro de nuestra carpeta "mis_apps\capitulo_1" crearemos un archi-
vo llamado variables_session.php con el siguiente código:

<?php

// Siempre que utilicemos sesiones deberemos iniciar con session_start.

session_start();

$_SESSION['variable_de_sesion_1'] = "Algún valor definido";

$_SESSION['variable_de_sesion_2'] = "Algún otro valor definido";


?>

<html>

<head>
<title>Ejemplo de variable reservada en PHP 7</title>
</head>

<body>

<pre>

<?php

print_r($_SESSION);

?>

</pre >

</body>
</html>
Lenguajes de script - Tutorial de PHP 7 27

1.7) Cómo concatenar en PHP 7


En PHP 7 al igual que en mucho lenguajes de programación existe la concatenación, pero ¿qué
es?. La concatenación es pegar información que venga en una varibale o en una función. Veamos un
ejemplo, dentro de nuestra carpeta "mis_apps\capitulo_1"crearemos
crearemos un archivo llama- llam
do concatenacion.php con el siguiente código:

<html>
<head>
<title>Ejemplo de concatenación en PHP 7</title>
</head>

<body>

<?php

$nombre = "Pedro Martínez";

$ciudad = "Bogotá";

$pais = "Colombia";

$edad = "30";

echo "Hola, mi nombre es ".$nombre


$nombre.", vivo en la ciudad de ".$ciudad.",
", en el país ".$pais." y
tengo ".$edad." años.";

?>

</body>
</html>
Lenguajes de script - Tutorial de PHP 7 28

Capítulo 2.- Operadores en PHP 7


En el segundo capítulo de nuestro Tutorial PHP 7
veremos los operadores aritméticos, de comparación y
lógicos.
Lenguajes de script - Tutorial de PHP 7 29

2.1) Operadores aritméticos en PHP 7


Los operadores de PHP 7 son muy parecidos a los lenguajes de programación como C, C++, Ja-
vaScript o Phyton, si conoces estos lenguajes te resultaran muy familiares y fáciles de reconocer. Si no, no
te preocupes, vamos a aprenderlos.

Estos son los operadores que se pueden aplicar a las variables y constantes numéricas.

Operador Nombre Ejemplo Descripción


+ Suma 5+6 Suma dos números
– Resta 7–9 Resta dos números
* Multiplicación 6 * 3 Multiplica dos números
/ División 4/9 Divide dos números
% Módulo 7%2 Devuelve el resto de dividir ambos números, en este
ejemplo el resultado es 1
++ Suma 1 $a++ Suma 1 al contenido de una variable
— Resta 1 $a– Resta 1 al contenido de una variable

Veamos un ejemplo, dentro de nuestra carpeta "mis_apps\capitulo_2"crearemos un archivo lla-


mado operadores_aritmeticos.php con el siguiente código:

<html>
<head>
<title>Ejemplo de operadores aritméticos en PHP 7</title>
</head>

<body>

<?php

$a = 8;

$b = 3;

echo $a + $b."<br>";

echo $a - $b."<br>";

echo $a * $b."<br>";

echo $a / $b."<br>";

echo $a % $b,"<br>";

$a++;
echo $a."<br>";

$b--;
echo $b."<br>";

?>

</body>
Lenguajes de script - Tutorial de PHP 7 30

</html>
Lenguajes de script - Tutorial de PHP 7 31

2.2) Operadores de comparación PHP 7


Los operadores de comparación, como su nombre lo indica, permiten comparar dos valores. Veá-
mos la siguiente tabla:

Operador Nombre Ejemplo Devuelve cierto cuando


== Igual $a == $b $a es igual $b
!= Distinto $a != $b $a es distinto $b
< Menor que $a < $b $a es menor que $b
> Mayor que $a > $b $a es mayor que $b
<= Menor o igual $a <= $b $a es menor o igual que $b
>= Mayor o igual $a >= $b $a es mayor o igual que $b

Veamos un ejemplo, dentro de nuestra carpeta "mis_apps\capitulo_2"crearemos un archivo lla-


mado operadores_comparacion.php con el siguiente código:

<html>
<head>
<title>Ejemplo de operadores de comparación en PHP 7</title>
</head>

<body>

<h2>Ejemplo de operadores de comparación</h2>


<?php

$a = 8;

$b = 3;

$c = 5;

if($a == $b)
{
echo "$a es igual a $b <br>";
}
else
{
echo "$a no es igual a $b <br>";
}

if($a != $b)
{
echo "$a no es igual a $b <br>";
}
else
{
echo "$a es igual a $b <br>";
}

if($a < $b)


{
echo "$a es menor a $b <br>";
}
else
Lenguajes de script - Tutorial de PHP 7 32

{
echo "$a no menor a $b <br>";
<br>"
}

if($a > $b)


{
echo "$a es mayor a $b <br>";
<br>"
}
else
{
echo "$a no es mayor a $b <br>";
<br>"
}

if($a >= $c)


{
echo "$a es mayor o igual a $b <br>";
}
else
{
echo "$a no es mayor o igual a $b <br>";
}

if($b <= $c)


{
echo "$b es menor o igual a $c <br>";
}
else
{
echo "$b no es menor o igual a $c <br>";
}

?>

</body>

</html>
Lenguajes de script - Tutorial de PHP 7 33

2.3) Operadores lógicos en PHP 7


Los operadores lógicos en PHP 7 son usados para evaluar varias comparaciones, combinando los
posibles valores de estas. Veamos la siguiente tabla:

Operador Nombre Ejemplo Devuelve cierto cuando


&& Y (7>2) && (2<4) Devuelve verdadero cuando ambas condiciones
son verdaderas
and Y (7>2) and (2<4) Devuelve verdadero cuando ambas condiciones
son verdaderas
|| O (7>2) || (2<4) Devuelve verdadero cuando al menos una de las
dos es verdadera
or O (7>2) or (2<4) Devuelve verdadero cuando al menos una de las
dos es verdadera
! No ! (7>2) Niega el valor de la expresión

Veamos un ejemplo, dentro de nuestra carpeta "mis_apps\capitulo_2"crearemos un archivo lla-


mado operadores_logicos.php con el siguiente código:

<html>
<head>
<title>Ejemplo de operadores de lógicos en PHP 7</title>
</head>

<body>

<h2>Ejemplo de operadores lógicos</h2>

<?php

$a = 8;

$b = 3;

$c = 9;

if($a==8 && $b==3)


{
echo "$a es igual a 8 y $b es igual a 3 <br>";
}
else
{
echo "Alguna condición no cumplió la validación <br>";
}

if($a==8 and $b==3)


{
echo "$a es igual a 8 y $b es igual a 3 <br>";
}
else
{
echo "Alguna condición no cumplió la validación <br>";
}

if($a==8 || $c==5)
{
echo "$a puede ser igual a 8 y $c puede ser igual a 5 <br>";
Lenguajes de script - Tutorial de PHP 7 34

}
else
{
echo "Alguna condición no cumplió la validación <br>";
<br>"
}

if($a==8 or $c==5)
{
echo "$a puede ser igual a 8 y $c puede ser igual a 5 <br>";
}
else
{
echo "Alguna condición no cumplió la validación
validac <br>";
}

if($a!= 4)
{
echo "$a no es igual a 4<br>";
;
}
else
{
echo "Alguna condición no cumplió la validación <br>";
<br>"
}

?>
</body>
</html>
Lenguajes de script - Tutorial de PHP 7 35

Capítulo 3.- Instrucciones en PHP 7

En el tercer de nuestro Tutorial PHP 7 veremos qué


son las condicionales, los bucles, ¿qué es la función printf
y el manejo de cadenas.
Lenguajes de script - Tutorial de PHP 7 36

3.1) Condicionales en PHP 7


Las sentencias condicionales nos permiten ejecutar o no, determinadas instrucciones dependiendo
del resultado a evaluar sobre una condición. Las más frecuentes son las siguientes instrucciones:

• if
• if / else
• if / elseif / else
• switch

Veamos algunos ejemplos:

if

La condicional if se emplea para evaluar una comparación siempre que sea verdadera, veamos
este pseudocódigo:

<?php

if (condición)
{
Sentencias a ejecutar cuando la condición es cierta.
}

?>

Veamos un ejemplo, creemos una carpeta dentro de "mis_apps" que se llame "capitulo_3 y en
ella, creemos un archivo llamado ejemplo_condicional_if.php con el siguiente código:

<html>
<head>
<title>Ejemplo de condicionales en PHP 7</title>
</head>

<body>

<h2>Ejemplo de condicionales</h2>
<?php

$a = 15;

// Equivale a Si $a es igual a 15

if ($a == 15)
{
echo "$a vale 15";
}

?>

</body>

</html>
Lenguajes de script - Tutorial de PHP 7 37

if / else

La condicional if / else se emplea para evaluar una comparación siempre que sea verdadera y si-
s
no, se ejecutará lo que exista en el else. Veamos este pseudocódigo:

<?php

if (condición)
{
Sentencias a ejecutar cuando la condición es cierta.
cierta
}
else
{
Sentecias a ejecutar cuando la condición es falsa.
falsa
}

?>

Veamos un ejemplo, dentro de la carpeta "mis_apps/capitulo_3" creemos un archivo llama-


do ejemplo_condicional_if_else.php con el siguiente código:

<html>
<head>
<title>Ejemplo de condicionales en PHP 7</title>
</head>

<body>

<h2>Ejemplo de condicionales</h2>
<?php

$a = 15;

// Equivale a Si $a
a es igual a 13 sino imprimimos $a no vale 13

if ($a == 13)
{
echo "$a vale 13";
}
else
{
echo "$a no vale 13";
}

?>

</body>

</html>
Lenguajes de script - Tutorial de PHP 7 38

if / elseif / else

La condicional if / elseif / else se emplea para evaluar varias comparaciones siempre que sea ver-
ve
dadera y sino, se ejecutará lo que exista en el else. Veamos este pseudocódigo:

<?php

if (condición)
{
Sentencias a ejecutar cuando la condición es cierta.
cierta
}
elseif (condición)
{
Sentencias a ejecutar cuando la condición es cierta.
cierta
}
elseif (condición)
{
Sentencias a ejecutar cuando la condición es cierta.
cierta
}
elseif (condición)
{
Sentencias a ejecutar cuando la condición es cierta.
cierta
}
else
{
Sentecias a ejecutar cuando la condición es falsa.
falsa
}

?>

Veamos un ejemplo, dentro de la carpeta "mis_apps/capitulo_3" creemos un archivo llama-


llam
do ejemplo_condicional_if_elseif_else.php con el siguiente código:

<html>
<head>
<title>Ejemplo de condicionales en PHP 7</title>
</head>

<body>

<h2>Ejemplo de condicionales</h2>
<?php

$a = 15;

// Equivale a Si $a es igual a 13, 14 o 15 sino imprimimos $a no vale eso


Lenguajes de script - Tutorial de PHP 7 39

if ($a == 13)
{
echo "$a vale 13";
}
elseif ($a == 14)
{
echo "$a vale 14";
}
elseif ($a == 15)
{
echo "$a vale 15";
}
else
{
echo "$a no vale 13, 14 o 15";
15"
}

?>

</body>

</html>

switch

La condicional switch se emplea para evaluar varias comparaciones siempre que sea verdadera y
sino, se ejecutará lo que exista en el else. Veamos este pseudocódigo:

<?php

switch (valor)
{
case valor:
Acción a realizar si se encontró el
e valor.
break;

case valor:
Acción a realizar si se encontró el valor.
valor
break;

case valor:
Acción a realizar si se encontró el valor.
valor
break;

case valor:
Acción a realizar si se encontró el valor.
valor
break;

case valor:
Acción a realizar si se encontró el valor.
valor
break;
Lenguajes de script - Tutorial de PHP 7 40

default:
Acción a realizar sino se encontró el valor.

?>

Veamos un ejemplo, dentro de la carpeta "mis_apps/capitulo_3" creemos un archivo llama-


do ejemplo_switch.php con el siguiente código:

<html>
<head>
<title>Ejemplo de condicionales en PHP 7</title>
</head>

<body>

<h2>Ejemplo de condicionales</h2>
<?php

$a = 5;

// Equivale a Si $a es igual a 13, 14 o 15 sino imprimimos $a no vale eso

switch ($a)
{
case 0:
echo "$a es igual a 0";
break;

case 1:
echo "$a es igual a 1";
break;

case 2:
echo "$a es igual a 2";
break;

case 3:
echo "$a es igual a 3";
break;

case 4:
echo "$a es igual a 4";
break;

case 5:
echo "$a es igual a 5";
break;

default:
echo "$a no es igual a 0, 1, 3, 4 ni 5";
}

?>

</body>

</html>
Lenguajes de script - Tutorial de PHP 7 41
Lenguajes de script - Tutorial de PHP 7 42

3.2) Qué son los bucles PHP 7


Los bucles nos permiten iterar conjuntos de instrucciones, es decir repetir la ejecución de un con-
co
junto de instrucciones mientras se
e cumpla una condición. Existen cuatro tipos:

• While
• Do… While
• For
• Foreach

While

Su funcionamiento es sencillo, ya que primero se evalúa que la condición sea verdadera y luego se
ejecuta, hasta que la condición pase a ser falsa; una sentencia while (Español:
(Español: Mientras) puede que no se
ejecute ni siquiera una vez, si su condición es inicialmente falsa. Veamos un ejemplo, dentro de nuestra
carpeta "mis_apps\capitulo_3" crearemos un archivo llamado bucle_while.php con el siguiente código:

<html>
<head>
<title>Ejemplo de bucle en PHP 7</title>
</head>

<body>

<?php
$i = 1;

while($i <= 5)
{
echo $i."<br>";
$i += 1;

echo "La variable $i vale: ".$i."<br>";


"
?>

</body>
</html>

Do… While

Su uso es similar a while, pero aquí, las sentencias que siguen al do (Español: Hacer) se ejecutan
por lo menos una vez y se comprueba la condición luego de la primera iteración; así, si es verdadera la
condición se repite por segunda
da vez, si es falsa se continúa con las sentencias inmediatamente después
de la instrucción while. Tiene sólo una sintáxis. Veamos un ejemplo, dentro de nuestra carpe- carp
ta "mis_apps\capitulo_3" crearemos un archivo llamado bucle_do_while.php con el siguiente código:
Lenguajes de script - Tutorial de PHP 7 43

<html>
<head>
<title>Ejemplo de bucle en PHP 7</title>
</head>

<body>

<?php

$i = 5;
$n = 1;

do
{
$n = $n * $i;
$i -= 1;
}

while($i > 1);

echo "5! es igual a: " . $n


?>

</body>
</html>

For

Los bucles for (Español: Para) son los más complejos en PHP (y en otros lenguajes de programa-
program
ción). Veamos un ejemplo, dentro de nuestra carpeta "mis_apps\capitulo_3" crearemos un archivo lla-
mado bucle_for.php con el siguiente
nte código:

<html>
<head>
<title>Ejemplo de bucle en PHP 7</title>
</head>

<body>

<?php

for($i = 1; $i <= 5; $i += 1) echo $i . "\n";

?>

</body>
</html>
Lenguajes de script - Tutorial de PHP 7 44

Foreach

Introducido en PHP 4 es una solución fácil


fácil para trabajar con arreglos, muy semejante a Perl y otros
lenguajes, funciona solo en arreglos y presentara un error al utilizar una variable con diferente tipo o no
inicializada. Existen dos sintaxis la segunda opción en menor pero tiene mejor uso que la primera. Veamos
un ejemplo, dentro de nuestra carpeta "mis_apps\capitulo_3" crearemos un archivo llama- llam
do bucle_foreach.php con el siguiente código:

<html>
<head>
<title>Ejemplo de bucle en PHP 7</title>
</head>

<body>

<?php

$a = array(1, 2, 3, 17);

foreach ($a as $v)


{
echo "Valor actual de \$a:
a: $v.\n";
}

?>

</body>
</html>
Lenguajes de script - Tutorial de PHP 7 45

3.3) Salida función printf PHP 7


Hasta ahora hemos usado la instrucción echo para realizar salida a pantalla, esta
e instrucción es
bastante limitada ya que no nos permite formatear la salida. En esta página veremos la instrucción printf
que nos da mucha más potencia.
Veamos este pseudocódigo. Sentencia printf():

<?php
printf(cadena formato, variable1,
variable1 variable2, etc, etc);
?>

La cadena de formateo indica cómo se han de representar las valores que posteriormente le indica-
indic
remos. La principal ventaja es que además de poder formatear los valores de salida, nos permite intercalar
texto entre ellos. Veamos
os un ejemplo, dentro de nuestra carpeta "mis_apps\capitulo_3"
capitulo_3" crearemos un
archivo llamado salida_printf.php con el siguiente código:

<html>
<head>
<title>Ejemplo de printf en PHP 7</title>
</head>

<body>

<?php
printf("El
"El numero dos con diferentes formatos: %d %f %.2f",2,2,
,2);
?>

</body>
</html>

La cadena de formato puede incluir una seria de carácteres especiales que indican como formatear
las variables que se incluyen en la instrucción. Veamos la siguiente
sigu tabla:

Elemento Tipo de variable


%s Cadena de carácteres
%d Número sin decimales
%f Número con decimales
%c Carácter ASCII

Veamos un ejemplo, dentro de nuestra carpeta "mis_apps\capitulo_3" crearemos un archivo lla-


mado salida_printf_2.php con el siguiente código:

<html>
<head>
<title>Ejemplo de printf en PHP 7</title>
</head>

<body>
Lenguajes de script - Tutorial de PHP 7 46

<?php

$var = "texto";

$num = 3;

printf("Puede
"Puede fácimente intercalar <b>%s</b>
<b> con números <b>%d</b>
</b> <br>",$var,$num);
<br>"

printf("<table
"<table border=1 cellpadding=10>");
cellpadding=10>"

for ($i=0; $i<10; $i++)


{
printf("<tr><td>%10.d</td></tr>"
"<tr><td>%10.d</td></tr>",$i);
}

printf("</table>");

?>

</body>
</html>
Lenguajes de script - Tutorial de PHP 7 47

3.4) Manejo de cadenas PHP 7


Dado el uso del lenguaje PHP 7, el tratamiento de cadenas es muy importante, existen bastantes
funciones para el manejo de cadenas, a continuación explicaremos las más usadas.

• strlen(cadena). Nos devuelve el número de carácteres de una cadena.


• explode(delimitador, string). Convierte en array la cadena mediante el delimitador.
• sprintf(cadena de formato, var1, var2, etc, etc). Formatea una cadena de texto al igual que printf
pero el resultado es devuelto como una cadena.
• substr(cadena, inicio, longitud). Devuelve una subcadena de otra, empezando por inicio y de longi-
tud.
• chop(cadena) o rtrim(cadena). Elimina los saltos de línea y los espacios finales de una cadena.
• strpos(cadena1, cadena2). Busca la cadena2 dentro de cadena1 indicándonos la posición en la que
se encuentra.
• str_replace(cadena1, cadena2, texto). Reemplaza la cadena1 por la cadena2 en el texto.
• ucfirst(cadena). Convierte el primer caracter de una cadena a mayúsculas.
• ucwords(cadena). Convierte a mayúsculas el primer caracter de cada palabra de una cadena.
• strtolower(cadena). Convierte una cadena a minúsculas.
• strtoupper(cadena). Convierte un string a mayúsculas.
• trim(cadena). Elimina espacio en blanco (u otro tipo de caracteres) del inicio y el final de la cadena
• md5(cadena). Calcula el hash md5 de un string.
• nl2br(cadena). Inserta saltos de línea HTML antes de todas las nuevas líneas de un string.

Veamos un ejemplo, dentro de nuestra carpeta "mis_apps\capitulo_3" crearemos un archivo lla-


mado cadenas.php con el siguiente código:

<html>
<head>
<title>Ejemplo de cadenas en PHP 7</title>
</head>

<body>

<?php

// Strlen()
echo "<strong>Ejemplo de Strlen()</strong> <br>".strlen("12345")."<br>";
echo "<hr>";

// Explode()
$pieza = "una-dos-tres-cuatro-cinco";
$piezas = explode("-", $pieza);

echo "<strong>Ejemplo de Explode()</strong> <br>";

foreach($piezas as $individuales)
{
echo $individuales."<br>";
}
echo "<hr>";

// Sprintf()
$num = 5;
$objeto = 'árbol';
$formato = 'Hay %d monos en el %s';

echo "<strong>Ejemplo de Sprintf()</strong> <br>";


echo sprintf($formato, $num, $objeto);
echo "<hr>";
Lenguajes de script - Tutorial de PHP 7 48

// Substr()
$cadenaSubstr = "Hola mundo. Esta es una cadena a evaluar.";
echo "<strong>Ejemplo de Substr()</strong> <br>";
$cadenaSubstr = substr($cadenaSubstr, 4, 10);
echo $cadenaSubstr."<br>";
echo "<hr>";

// Chop()
echo "<strong>Ejemplo de Chop()</strong> <br>";
$cadenaChop = "Hola mundo ";
echo "<pre>";
echo chop($cadenaChop);
echo "</pre >";
echo "<hr>";

// Strpos()
echo "<strong>Ejemplo de Strpos()</strong> <br>";
$cadenaStrpos = 'Hola mundo. Esta es una cadena a evaluar.';
$encontrar = 'mundo';
$pos = strpos($cadenaStrpos, $encontrar);

if ($pos === false)


{
echo "Ops! la cadena <i>$encontrar</i> no fue encontrada en la cadena
<strong>$cadenaStrpos</strong>.";
}
else
{
echo "La cadena <i>$encontrar</i> fue encontrada en la cadena
<strong>$cadenaStrpos</strong> y existe en la posición <strong>$pos</strong>.";
}
echo "<hr>";

// Str_replace()
echo "<strong>Ejemplo de Str_replace()</strong> <br>";

$vocales = array("a", "e", "i", "o", "A", "E", "I", "O");


$cadenSTRreplace = "Hola mundo. Esta es una cadena a evaluar.";
$reemplazador = array("4", "3", "1", "0", "4", "3", "1", "0");

$cadenSTRreplace = str_replace($vocales , $reemplazador, $cadenSTRreplace);

echo $cadenSTRreplace."<br>";
echo "<hr>";

// Ucfirst()
echo "<strong>Ejemplo de Ucfirst()</strong> <br>";

$cadenaUCfirst = 'hola mundo';


$cadenaUCfirst = ucfirst($cadenaUCfirst);

echo $cadenaUCfirst."<br>";
echo "<hr>";

// Ucwords()
echo "<strong>Ejemplo de Ucwords()</strong> <br>";

$cadenaUcwords = 'hola mundo';


$cadenaUcwords = ucwords($cadenaUcwords);

echo $cadenaUcwords."<br>";
echo "<hr>";
Lenguajes de script - Tutorial de PHP 7 49

// Strtolower()
echo "<strong>Ejemplo de Strtolower()</strong> <br>";

$cadenaStrtolower = 'HOLA MUNDO';


$cadenaStrtolower = strtolower($cadenaStrtolower);

echo $cadenaStrtolower."<br>";
echo "<hr>";

// Strtoupper()
echo "<strong>Ejemplo de Strtoupper()</strong> <br>";

$cadenaStrtoupper = 'hola mundo';


$cadenaStrtoupper = strtoupper($cadenaStrtoupper);

echo $cadenaStrtoupper."<br>";
echo "<hr>";

// Trim()
echo "<strong>Ejemplo de Trim()</strong> <br>";
$cadenaTrim = " Hola mundo ";
echo "<pre>";
echo trim($cadenaTrim);
echo "</pre >";
echo "<hr>";

// Md5()
echo "<strong>Ejemplo de md5()</strong> <br>";
$cadenaMD5 = "Cadena cualquiera";
$cadenaMD5 = md5($cadenaMD5);
echo $cadenaMD5."<br>";
echo "<hr>";

// Nl2br()
echo "<strong>Ejemplo de Nl2br()</strong> <br>";
$cadenaNl2br = "Hola\nmundo\nHTML";
echo "<pre>";

$cadenaNl2br = nl2br($cadenaNl2br);
echo $cadenaNl2br;

echo "</pre >";


echo "<hr>";

?>

</body>
</html>
Lenguajes de script - Tutorial de PHP 7 50
Lenguajes de script - Tutorial de PHP 7 51

Capítulo 4.- Funciones en PHP 7

En el cuarto capítulo de nuestro Tutorial PHP 7 ve-


v
remos qué son las funciones, para qué nos sirve y como
emplearlas.
Lenguajes de script - Tutorial de PHP 7 52

4.1) ¿Qué son las funciones en PHP 7?


En el mundo de la programación hay dos maneras de escribir código. Una es escribiendo códigos
largos, extensos y repitiendo pedazos del código. La otra es dividiendo el código en pequeñas partes que
se puedan volver a usar sin que se tenga que repetir el mismo código una y otra vez. Obviamente la se-
s
gunda manera es la correcta y aquí es donde entran en juego las funciones (function).

¿Qué es una Función?


Las funciones son básicamente pedazos de código que pueden ser llamados desde un script para
realizar una tarea especifica. A las funciones se les pueden pasar argumentos o parámetros de ser nece- nec
sario para que utilicen sus valores para realizar alguna operación y retorna algún valor al final de la ejecu-
ejec
ción.

En PHP existen dos tipos de funciones, las que PHP trae por defecto ara que el programador las utilice
utili y
las que el programador crea desde cero dependiendo de sus necesidades. Aquí abordaremos
abord la segunda
opción.

¿Como Escribir una Función en PHP?


El primer paso crear una función en PHP es ponerle un nombre con el cual se pueda hacer refe-ref
rencia a la misma.a. Las convenciones para los nombres de las funciones son las mismas que para las va-v
riables. Por lo tanto, el nombre de la función debe empezar con una letra o con un guión bajo (_) y no se
permiten espacios o signos de puntuación. Por ultimo debes tener cuidado
cuidado de que el nombre no sea el
mismo que el de alguna función nativa de PHP.

Las funciones en PHP se crean usando la palabra clave function seguida por el nombre y por ultimo
un para de paréntesis (). El código que ejecutara la función es encerrado entre
entre corchetes.
corch

Veamos un ejemplo, creemos una carpeta dentro de "mis_apps" que se llame "capitulo_4 y en ella,
creemos un archivo llamado primer_ejemplo_funcion.php con el siguiente código:

<html>
<head>
<title>Ejemplo de funciones en PHP 7</title>
7</tit
</head>

<body>

<?php

function saludame()
{
echo "Hola programador, ¿cómo estás?.";
}

// Invocamos la función
saludame();

?>

</body>
</html>
Lenguajes de script - Tutorial de PHP 7 53

¿Cómo Retornar un Valor de una Función?


Las funciones pueden retornar un valor al final de su ejecución si es que el programador lo necesi-
neces
ta. Este valor puede ser de cualquier tipo y se hace con la sentencia return.

Veamos un ejemplo, dentro de nuestra carpeta "mis_apps/capitulo_4",, creemos un archivo llama-


llam
do segundo_ejemplo_funcion.php con el siguiente código:

<html>
<head>
<title>Ejemplo de funciones en PHP 7</title>
</head>

<body>

<?php

function validarEdad()
{

$edad = 23;

if($edad == 23)
{

return true;

}
else
{
return false;
}

if(validarEdad())
{
echo "La edad es 23";
}

?>

</body>
</html>

Pasando Parámetros a la Función


Los parámetros o argumentos pueden ser pasados a una función y no hay limitación en cuanto al
número de parámetross que puedan ser. Una función puede ser diseñada para aceptar parámetros median-
media
te la colocación de los parámetros que se esperan dentro de los paréntesis que van después
de del nombre
de la función. Las parámetros que escriben como si fueran variables y si son
son varios se deben separar con
comas. En el siguiente ejemplo vamos a utilizar los parámetros $dato1, $dato2, $dato3 e $item. Estas
parámetros pueden ser utilizados dentro de la función como variables normales.
Lenguajes de script - Tutorial de PHP 7 54

Veamos un ejemplo, dentro de nuestra carpeta "mis_apps/capitulo_4",, creemos un archivo llama-


llam
do tercer_ejemplo_funcion.php con el siguiente código:

<html>
<head>
<title>Ejemplo de funciones en PHP 7</title>
</head>

<body>

<?php

function sumarDatos($dato1,$dato2
$dato2,$dato3,$item)
{

$totalDeDatos = $dato1+$dato2+
+$dato3;

echo "El total de datos es: ".


.$totalDeDatos." para el item: ".$item."."
".";

sumarDatos(10,20,1,'Dulces de caramelo');
caramelo'

?>

</body>
</html>

Usando variables fuera de Función


Cuando tengamos que
e utilizar una variable que no esté declara dentro de la función tendremos que
hacer uso de global.

Veamos un ejemplo, dentro de nuestra carpeta "mis_apps/capitulo_4",


"mis_apps/capitulo_4" creemos un archivo lla-
mado cuarto_ejemplo_funcion.php con el siguiente código:

<html>
<head>
<title>Ejemplo de funciones en PHP 7</title>
</head>

<body>

<?php

// Variable fuera de la función


$tienda = "Sucursal norte";

function sumarDatos($dato1,$dato2
$dato2,$dato3,$item)
{

// La hacemos variable global


global $tienda;

$totalDeDatos = $dato1+$dato2+
+$dato3;
Lenguajes de script - Tutorial de PHP 7 55

echo "El total de datos es: ".


.$totalDeDatos." para el item: ".$item."
" para la tienda:
".$tienda .".";

sumarDatos(10,20,1,'Dulces de caramelo');
caramelo'

?>

</body>
</html>
Lenguajes de script - Tutorial de PHP 7 56

Capítulo 5.- Procesado de Formularios en


PHP 7
En el quinto capítulo de nuestro Tutorial PHP 7 ve-
v
remos cómo utilizar los formularios, y cómo recuperar los
datos enviados
dos en ellos, con las variables globa- glob
les $_POST y $_GET.
También veremos cómo enviar correos
c electrónicos
con la función mail() de PHP 7.
Lenguajes de script - Tutorial de PHP 7 57

5.1) Recuperar datos en métodos GET y POST


GET y POST son dos métodos HTTP con los cuales podemos enviar datos de un formulario a
nuestro PHP. Pero, ¿qué es GET y qué es POST? . Vamos a verlo.

GET vs. POST


Estrictamente hablando, la diferencia entre GET y POST reside en cómo se transfieren las solicitu-
des. La información en GET se transmite en la URL. Si alguna vez has visto una URL que incluye signos
de interrogación y los símbolos de unión, estabas buscando a una petición GET: exam-
ple.com/request.php?var1=foo&var2=bar es una cadena GET que codifica la variable “var1” como “foo”
y la variable “var2” como “bar”.

La información POST está incluida en el cuerpo de la solicitud, y no es visible en la cadena de URL


(y por lo tanto, no es visible para el usuario), ésta viaja “en un sobre” y llega al servidor.

Veamos un ejemplo, creemos una carpeta dentro de "mis_apps" que se llame "capitulo_5 y en
ella, creemos un archivo llamado ejemplo_get.php con el siguiente código:

<html>
<head>
<title>Ejemplo de métodos HTTP en PHP 7</title>
</head>

<body>

<?php

if($_GET)
{
echo "El formulario se ejecutó con éxito.<br><br>";

echo "<pre>";
print_r($_GET);
echo "</pre >";
}

?>

<form action="" method="get">

<p>
Dime cuál es tu nombre: <input type="text" name="nombre">
</p>

<p>
Dime cómo se llama tu ciudad: <input type="text" name="ciudad">
</p>

<p>
¿En qué año naciste?:
<select name="anoNacimiento">
<option value="null">Selecciona un año</option>
<?php
$anos = 1900;
while ($anos < 2000)
{
?>
<option value="<?=$anos;?>"><?=$anos;?></option>
<?php
$anos++;
Lenguajes de script - Tutorial de PHP 7 58

}
?>
</select>
</p>

<p>
<input type="submit" value="Validar">
</p>

</form>

</body>
</html>

Ahora es el turno de POST.. Veamos un ejemplo, creemos una carpeta dentro de "mis_apps" que
se llame "capitulo_5 y en ella,, creemos un archivo llamado
llam ejemplo_post.php con el siguiente código:

<html>
<head>
<title>Ejemplo de métodos HTTP en PHP 7</title>
</head>

<body>

<?php

if($_POST)
{
echo "El formulario se ejecutó con éxito.<br><br>";

echo "<pre>";
print_r($_POST);
echo "</pre >";
}

?>

<form action="" method="post">

<p>
Dime cuál es tu nombre: <input type="text" name="nombre">
</p>

<p>
Lenguajes de script - Tutorial de PHP 7 59

Dime cómo se llama tu ciudad: <input type="text"


type name="ciudad">
</p>

<p>
¿En qué año naciste?:
<select name="anoNacimiento">
<option value="null">Selecciona un año</option>
<?php
$anos = 1900;
while ($anos < 2000)
{
?>
<option value="<?=$anos
$anos;?>"><?=$anos;?></option>
<?php
$anos++;
}
?>
</select>
</p>

<p>
<input type="submit" value="Validar">
</p>

</form>

</body>
</html>
Lenguajes de script - Tutorial de PHP 7 60

5.2) ¿Qué es la función mail en PHP 7?


PHP 7 nos ofrece la posibilidad de enviar correos electrónicos de una manera sencilla y muy fácil,
para ello hacemos uso de la función mail().

Función email() en PHP 7


Veamos un ejemplo, dentro de "mis_apps/capitulo_5" creemos un archivo llama-
do ejemplo_mail.php con el siguiente código:

<html>
<head>
<title>Ejemplo de email en PHP 7</title>
</head>

<body>

<?php

if($_POST)
{
// Correo al que queremos que llegue
$destinatario = "TU_CORREO_AQUI@gmail.com";
// Asunto
$asunto = "Email de prueba del Tutorial PHP 7";
// Mensaje
$mensaje = "Hola, este email es una prueba del Tutorial PHP 7. Los datos anexos al email
son: <br><br>
Nombre: ".$_POST['nombre']."<br>
Ciudad: ".$_POST['ciudad']."<br>
Año de nacimiento: ".$_POST['anoNacimiento']."<br><br>

Saludos!";
// Cabeceras
// Para enviar un correo HTML, debe establecerse la cabecera Content-type
$cabeceras = 'MIME-Version: 1.0' . "\r\n";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Cabeceras adicionales
$cabeceras .= 'To: TU NOMBRE <TU_CORREO_AQUI@gmail.com>' . "\r\n";
$cabeceras .= 'From: Tutorial PHP 7 <tutorial@tutorialphp.net>' . "\r\n";
// Enviamos el email

if(@mail($destinatario, $asunto, $mensaje, $cabeceras))


{
echo "El email se envió correctamente a ".$destinatario.".";
}
else{
echo "El email no se pudo enviar.";
}

?>

<form action="" method="post">


<p>
Dime cuál es tu nombre: <input type="text" name="nombre">
</p>
Lenguajes de script - Tutorial de PHP 7 61

<p>
Dime cómo se llama tu ciudad: <input type="text"
type="text" name="ciudad">
</p>
<p>
¿En qué año naciste?:
<select name="anoNacimiento">
<option value="null">Selecciona un año</option>
<?php
$anos = 1900;
while ($anos < 2000)
{
?>
<option value="<?=$anos
$anos;?>"><?=$anos;?></option>
<?php
$anos++;
}
?>
</select>
</p>
<p>
<input type="submit" value="Validar">
</p>

</form>

</body>
</html>
Lenguajes de script - Tutorial de PHP 7 62

Capítulo 6.- Bases de datos MySQL en PHP 7

En el sexto capítulo de nuestro Tutorial PHP 7 ve-


v
remos cómo interactuar con la Base de Datos
MySQL desde PHP 7.
Lenguajes de script - Tutorial de PHP 7 63

6.1) Crear la base de datos y tabla MySQL en PHP 7


Para la realización de este Tutorial de PHP 7 con uso de Base de Datos hemos elegido al servi-
serv
dor MySQL por ser gratuita, y por ser también la más empleada
emplead en entornos GNU/Linux y UNIX (ya que
comunmente PHP 7 es más usado en estas plataformas).
Vamos a practicar, primero nos conectaremos al servidor MySQL:

mysql -u NUESTRO_USUARIO -p

Seguido, nos pedirá nuestra constraseña del usuario.

Ya que estamos conectados,


onectados, el comando para crear una base de datos en es el siguiente:

create database NOMBREDELABASEDEDATOS;;

Con este comando conseguimos crear la una base de datos en el servidor de bases de datos de
nuestro servidor.

Una vez conseguido esto debemos crear las tablas en la base de datos, la descripción de las tablas
t
contienen
tienen la estructura de la información que almacenaremos en ellas,para lo cual usaremos en lenguaje
de consultas SQL común para todas las bases de datos relacionales.

En este ejemplo creamos


amos una tabla llamada prueba con 3 campos: un campo identificador, que nos
servirá para identificar unívocamente una fila con el valor de dicho campo, otro campo con el nombre de
una persona
sona y por último un campo con el apellido de la persona. Vamos a crearla.
crearla.

rimeramente debemos indicarle al servidor MySQL con cual base de datos trabajemos:

USE NOMBREDELABASEDEDATOS;

Ahora sí, creamos la tabla:


Lenguajes de script - Tutorial de PHP 7 64

CREATE TABLE personas (


ID int(11) NOT NULL auto_increment,
auto_increment
Nombre varchar(100),
Apellidos varchar(100),
PRIMARY KEY (ID),
UNIQUE ID (ID)
);

Por último, para ver los campos de la tabla “personas”, ejecutamos el siguiente comando, nos tiene
que devolver la descripción de la próxima imagen:

DESCRIBE personas;

Muy bien, hemos aprendido a crear una base datos y una tabla en MySQL.
Lenguajes de script - Tutorial de PHP 7 65

6.2) Conectarse a la Base de Datos de MySQL en PHP 7


Una vez que tenemos creada la base de datos en nuestro servidor, el siguiente paso es conectar-
nos a la misma desde una página PHP 7. Para ello PHP 7 nos proporciona una serie de instrucciones para
acceder a bases de datos MySQL. Vamos a verlas:

Veamos un ejemplo, creemos una carpeta dentro de "mis_apps" que se llame "capitulo_6 y en
ella, creemos un archivo llamado ejemplo_conexion_bd.php con el siguiente código:

<html>
<head>
<title>Ejemplo de conexión a base de datos MySQL</title>
</head>

<body>

<?php

// Dirección o IP del servidor MySQL


$host = "localhost";

// Puerto del servidor MySQL


$puerto = "3306";

// Nombre de usuario del servidor MySQL


$usuario = "root";

// Contraseña del usuario


$contrasena = "";

// Nombre de la base de datos


$baseDeDatos ="tutorialphp5";

// Nombre de la tabla a trabajar


$tabla = "personas";

function Conectarse()
{
global $host, $puerto, $usuario, $contrasena, $baseDeDatos, $tabla;

if (!($link = mysqli_connect($host.":".$puerto, $usuario, $contrasena)))


{
echo "Error conectando a la base de datos.<br>";
exit();
}
else
{
echo "Listo, estamos conectados.<br>";
}
if (!mysqli_select_db($link, $baseDeDatos))
{
echo "Error seleccionando la base de datos.<br>";
exit();
}
else
{
echo "Obtuvimos la base de datos $baseDeDatos sin problema.<br>";
}
return $link;
}
Lenguajes de script - Tutorial de PHP 7 66

$link = Conectarse();

mysql_close($link);

?>

</body>
</html>

Al ejecutar la instrucción mysql_connect() creamos un vínculo entre la base de datos y el códi-


cód
go PHP 7,, este vínculo será usado posteriormente en las consultas que hagamos
hagamos a la base de datos.
Finalmente, una vez que hemos terminado de usar el vínculo con la base de datos, lo liberaremos
con la instrucción mysql_close() para que la conexión no quede ocupada.
Lenguajes de script - Tutorial de PHP 7 67

6.3) Consultas a la Base de Datos MySQL en PHP 7


Una vez que nos hemos conectado con el servidor de bases de datos MySQL con PHP 7, ya po-
demos realizar consultas a las tablas almacenadas, así como sus filas.

Veamos un ejemplo, creemos un archivo llamado ejemplo_select_mysql.php con el siguiente


código:

<html>
<head>
<title>Ejemplo de selección de datos en base de datos MySQL</title>
</head>

<body>

<?php

// Dirección o IP del servidor MySQL


$host = "localhost";

// Puerto del servidor MySQL


$puerto = "3306";

// Nombre de usuario del servidor MySQL


$usuario = "root";

// Contraseña del usuario


$contrasena = "";

// Nombre de la base de datos


$baseDeDatos ="tutorialphp5";

// Nombre de la tabla a trabajar


$tabla = "personas";

function Conectarse()
{
global $host, $puerto, $usuario, $contrasena, $baseDeDatos, $tabla;

if (!($link = mysqli_connect($host.":".$puerto, $usuario, $contrasena)))


{
echo "Error conectando a la base de datos.<br>";
exit();
}
else
{
echo "Listo, estamos conectados.<br>";
}
if (!mysqli_select_db($link, $baseDeDatos))
{
echo "Error seleccionando la base de datos.<br>";
exit();
}
else
{
echo "Obtuvimos la base de datos $baseDeDatos sin problema.<br>";
}
return $link;
}

$link = Conectarse();
Lenguajes de script - Tutorial de PHP 7 68

$query = "SELECT Nombre, Apellidos FROM $tabla;";

$result = mysqli_query($link,
, $query);

?>

<table>
<tr>
<td>Nombre</td>
<td>Apellidos</td>
<tr>

<?php

while($row = mysqli_fetch_array($result))
mysqli_fetch_array
{

printf("<tr><td>%s</td><td>
</td><td>%s</td></tr>", $row["Nombre"],$row["Apellidos"
"Apellidos"]);

mysqli_free_result($result);

mysqli_close($link);

?>

</table>

</body>
</html>

En este ejemplo hemos utilizado 3 instrucciones nuevas:


nu

mysqli_query() mysqli_fetch_array() y mysqli_free_result().


mysqli_query(), mysqli_free_result()

Con la instrucción mysqli_query() hemos hecho una consulta a la base de datos en el lenguaje de
consultas propio SQL, con la instruccción mysqli_fetch_array() extraemos los datos de la consulta a un
array y con mysqli_free_result() liberamos la memoria usada en la consulta.
Lenguajes de script - Tutorial de PHP 7 69

6.4) Insertar registros a la Base de Datos MySQL en PHP 7


Ya que vimos como conectar a la base de datos MySQL y obtener sus datos, veámos cómo inser-
tar filas desde PHP 7.

Veamos un ejemplo, creemos un archivo llamado ejemplo_insert_mysql.php con el siguiente


código:

<html>
<head>
<title>Ejemplo de ingreso de datos en base de datos MySQL</title>
</head>

<body>

<?php

// Dirección o IP del servidor MySQL


$host = "localhost";

// Puerto del servidor MySQL


$puerto = "3306";

// Nombre de usuario del servidor MySQL


$usuario = "root";

// Contraseña del usuario


$contrasena = "";

// Nombre de la base de datos


$baseDeDatos ="tutorialphp5";

// Nombre de la tabla a trabajar


$tabla = "personas";

function Conectarse()
{
global $host, $puerto, $usuario, $contrasena, $baseDeDatos, $tabla;

if (!($link = mysqli_connect($host.":".$puerto, $usuario, $contrasena)))


{
echo "Error conectando a la base de datos.<br>";
exit();
}
else
{
echo "Listo, estamos conectados.<br>";
}
if (!mysqli_select_db($link, $baseDeDatos))
{
echo "Error seleccionando la base de datos.<br>";
exit();
}
else
{
echo "Obtuvimos la base de datos $baseDeDatos sin problema.<br>";
}
return $link;
}

$link = Conectarse();
Lenguajes de script - Tutorial de PHP 7 70

if($_POST)
{
$queryInsert = "INSERT INTO $tabla (Nombre, Apellidos) VALUES
('".$_POST['nombreForm']."', '".$_POST['apellidoForm']."');";

$resultInsert = mysqli_query($link, $queryInsert);

if($resultInsert)
{
echo "<strong>Se ingresaron los registros con exito</strong>. <br>";
}
else
{
echo "No se ingresaron los registros. <br>";
}

$query = "SELECT Nombre, Apellidos FROM $tabla;";

$result = mysqli_query($link, $query);

?>

<table>
<tr>
<td>Nombre</td>
<td>Apellidos</td>
<tr>

<?php

while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>";
echo $row["Nombre"];
echo "</td>";
echo "<td>";
echo $row["Apellidos"];
echo "</td>";
echo "</tr>";

mysqli_free_result($result);

mysqli_close($link);

?>

</table>
<hr>
<form action="" method="post">
Nombre: <input type="text" name="nombreForm"> <br> <br>
Apellidos: <input type="text" name="apellidoForm"> <br> <br>
<input type="submit" value="Guardar">
</form>

</body>
</html>
Lenguajes de script - Tutorial de PHP 7 71

En nuestro script, si se ejecuta el método post ($_POST) se inicia el nuevo query e insertamos el
registro con la instrucción INSERT del lenguaje de base de datos SQL.
Lenguajes de script - Tutorial de PHP 7 72

6.5) Actualizar registros de Base de Datos MySQL en PHP 7


Hemos visto cómo conectar, seleccionar e insertar registros en la de base de da-
tos MySQL con PHP 7. En este capítulo veremos como actualizarlo.

Veamos un ejemplo, creemos un archivo llamado ejemplo_update_mysql.php con el siguiente


código:

<html>
<head>
<title>Ejemplo de actualización de datos en base de datos MySQL</title>
</head>

<body>

<?php

// Dirección o IP del servidor MySQL


$host = "localhost";

// Puerto del servidor MySQL


$puerto = "3306";

// Nombre de usuario del servidor MySQL


$usuario = "root";

// Contraseña del usuario


$contrasena = "";

// Nombre de la base de datos


$baseDeDatos ="tutorialphp5";

// Nombre de la tabla a trabajar


$tabla = "personas";

function Conectarse()
{
global $host, $puerto, $usuario, $contrasena, $baseDeDatos, $tabla;

if (!($link = mysqli_connect($host.":".$puerto, $usuario, $contrasena)))


{
echo "Error conectando a la base de datos.<br>";
exit();
}
else
{
echo "Listo, estamos conectados.<br>";
}
if (!mysqli_select_db($link, $baseDeDatos))
{
echo "Error seleccionando la base de datos.<br>";
exit();
}
else
{
echo "Obtuvimos la base de datos $baseDeDatos sin problema.<br>";
}
return $link;
}

$link = Conectarse();
Lenguajes de script - Tutorial de PHP 7 73

if($_POST)
{
$queryUpdate = "UPDATE $tabla SET Nombre = '".$_POST['nombreForm']."',
Apellidos = '".$_POST['apellidoForm']."'
WHERE ID = ".$_POST['idForm'].";";

$resultUpdate = mysqli_query($link, $queryUpdate);

if($resultUpdate)
{
echo "<strong>El registro ID ".$_POST['idForm']." con exito</strong>. <br>";
}
else
{
echo "No se pudo actualizar el registro. <br>";
}

$query = "SELECT ID, Nombre, Apellidos FROM $tabla;";

$result = mysqli_query($link, $query);

?>

<table>
<tr>
<td>Nombre</td>
<td>Apellidos</td>
<tr>

<?php

while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>";
echo $row["Nombre"];
echo "</td>";
echo "<td>";
echo $row["Apellidos"];
echo "</td>";
echo "<td>";
echo "<a href=\"?id=".$row["ID"]."\">Actualizar</a>";
echo "</td>";
echo "</tr>";

mysqli_free_result($result);

?>

</table>
<hr>

<?php
if($_GET)
{
$querySelectByID = "SELECT ID, Nombre, Apellidos FROM $tabla WHERE ID =
".$_GET['id'].";";
Lenguajes de script - Tutorial de PHP 7 74

$resultSelectByID = mysqli_query($link,
mysqli_query $querySelectByID);

$rowSelectByID = mysqli_fetch_array($resultSelectByID);
mysqli_fetch_array
?>

<form action="" method="post">


ethod="post">
<input type="hidden" value="<?=$rowSelectByID['ID'];?>"
value=" " name="idForm">
Nombre: <input type="text" name="nombreForm" value="<?=$rowSelectByID
value=" $rowSelectByID['Nombre'];?>">
<br> <br>
Apellidos: <input type="text" name="apellidoForm" val-
ue="<?=$rowSelectByID['Apellidos'
'Apellidos'];?>"> <br> <br>
<input type="submit" value="Guardar">
</form>

<?php
}
mysqli_close($link);
?>
</body>
</html>
Lenguajes de script - Tutorial de PHP 7 75

6.6) Borrar registros de la Base de Datos MySQL en PHP 7


Y finalmente, para cerrar el capítulo de Bases de Datos MySQL en PHP 7 nos queda por ver el
borrado de registros. El borrado de registros el uno de los procesos más sencillos.

Veamos un ejemplo, creemos un archivo llamado ejemplo_delete_mysql.php con el siguiente


código:

<html>
<head>
<title>Ejemplo de borrado de datos en base de datos MySQL</title>
</head>

<body>

<?php

// Dirección o IP del servidor MySQL


$host = "localhost";

// Puerto del servidor MySQL


$puerto = "3306";

// Nombre de usuario del servidor MySQL


$usuario = "root";

// Contraseña del usuario


$contrasena = "";

// Nombre de la base de datos


$baseDeDatos ="tutorialphp5";

// Nombre de la tabla a trabajar


$tabla = "personas";

function Conectarse()
{
global $host, $puerto, $usuario, $contrasena, $baseDeDatos, $tabla;

if (!($link = mysqli_connect($host.":".$puerto, $usuario, $contrasena)))


{
echo "Error conectando a la base de datos.<br>";
exit();
}
else
{
echo "Listo, estamos conectados.<br>";
}
if (!mysqli_select_db($link, $baseDeDatos))
{
echo "Error seleccionando la base de datos.<br>";
exit();
}
else
{
echo "Obtuvimos la base de datos $baseDeDatos sin problema.<br>";
}
return $link;
}

$link = Conectarse();
Lenguajes de script - Tutorial de PHP 7 76

if($_GET)
{
$queryDelete = "DELETE FROM $tabla WHERE ID = ".$_GET['id'].";";

$resultDelete = mysqli_query($link, $queryDelete);

if($resultDelete)
{
echo "<strong>El registro se ha eliminado con exito</strong>.<br>";
}
else
{
echo "Hubo un problema borrando el registro.";
}
}

$query = "SELECT ID, Nombre, Apellidos FROM $tabla;";

$result = mysqli_query($link, $query);

?>

<table>
<tr>
<td>Nombre</td>
<td>Apellidos</td>
<tr>

<?php

while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>";
echo $row["Nombre"];
echo "</td>";
echo "<td>";
echo $row["Apellidos"];
echo "</td>";
echo "<td>";
echo "<a href=\"?id=".$row["ID"]."\">Borrrar</a>";
echo "</td>";
echo "</tr>";

mysqli_free_result($result);

mysqli_close($link);

?>

</table>
<hr>

</body>
</html>
Lenguajes de script - Tutorial de PHP 7 77
Lenguajes de script - Tutorial de PHP 7 78

Capítulo 7.- Sesiones en PHP 7

En el septimo capítulo de nuestro Tutorial PHP 7


veremos cómo usar las sesiones desde PHP 7.
Lenguajes de script - Tutorial de PHP 7 79

7.1) ¿Qué son las sesiones en PHP 7?


En este artículo intentaré explicar, de la forma más simple posible, qué son las sesiones en PHP 7,
cómo funcionan y cómo las implementa el servidor web. El objetivo de este artículo no es explicar cómo
usar sesiones, sino comprender la mecánica del funcionamiento, para entender cómo actúan los ataques
contra ellas.

Antecedentes

El protocolo que utiliza la web (HTTP) es un protocolo sin estado, es decir, que no guarda ninguna
información sobre conexiones anteriores: no sabe en qué página web estuviste antes ni si ya has enviado
datos al sitio web. Lo único que conoce la página web son los datos que le llegan a través de la URL.

Dado que algunas páginas web querían poder reconocer a los visitantes y guardar datos de los
mismos de una conexión a otra sin tener que ir arrastrando un montón de parámetros en la URL, se inven-
taron las ya famosas cookies. Una cookie es un fragmento de información que se guarda en el ordenador
del usuario y que está asociado al navegador con el que visitó la página web. Esto quiere decir que cada
navegador guarda sus propias cookies y no las comparte con otros navegadores. La forma en la que se
guarda esta información depende del navegador, aunque muchos las almacenan como archivos de texto
en un directorio dado.

Cuando un navegador va a abrir una página web, si tiene alguna cookie guardada asociada a ese
sitio web (en realidad, a ese dominio), coge los datos de la misma y los manda al servidor web junto con la
petición de la página.

El sitio web que pone una cookie, también le dice al navegador hasta cuando debe durar (como
máximo) la misma: desde “hasta que se cierre el navegador” hasta cualquier cantidad de tiempo. Un domi-
nio sólo puede acceder a las cookies que puso él mismo en el navegador, es decir, un dominio no puede
acceder a las cookies de otros dominios.

¿Qué son las sesiones en PHP 7.

Resumiendo, las formas que tiene un sitio web para propagar datos sobre un visitante son: la URL
o las cookies. El problema con ambos recursos es que son fácilmente modificables por el usuario: la URL
se puede cambiar directamente en la barra de direcciones del navegador y las cookies, al ser datos en el
ordenador del usuario, también pueden ser modificadas.
Así que, para guardar datos más críticos, se necesitaba un método que no fuera modificable por los
usuarios (para evitar que, por ejemplo, un usuario autenticado se hiciera pasar por otro). Así nacieron las
sesiones.

Una sesión en PHP 7 es una serie de caracteres aleatorios que forman una identificación única
para cada visitante (a la que llamaremos “id de sesión”). Cuando a un usuario se le asigna un id de sesión,
el servidor web crea un archivo en su sistema donde irá introduciendo todos los datos que queramos guar-
dar. Pero, ¿cómo reconoce el sitio web al usuario en sucesivas conexiones? Pues usando alguno de los
dos métodos anteriores; esto es, haciendo que el usuario le mande en la URL su id de sesión o enviándole
una cookie con el mismo y con una duración de “hasta que se cierre el navegador”.
Lenguajes de script - Tutorial de PHP 7 80

¿Cómo funcionan las sesiones en PHP 7?

Mejor lo explicamos con un ejemplo: acabamos de autenticarnos en una página con nuestro usua-
rio (luis) y contraseña (******). El sitio web comprueba que efectivamente son correctos y quiere poder re-
conocernos en las siguientes conexiones. Los datos que quiere guardar son: “usuario=luis”. No puede usar
para esto la URL ya que entonces, cualquier persona que ponga en la barra de direcciones “usuario=luis”
podría acceder a nuestra cuenta. Por la misma razón no puede usar cookies, ya que cualquier usuario sólo
tendría que encontrar el archivo de su cookie y modificarla para que ponga “usuario=luis”. Así que lo que le
queda son las sesiones.

Mediante PHP el servidor web le asigna a este usuario un id de sesión (por ejemplo:
“31d7bgphebfemb55311b1cger6”), crea en su sistema un archivo (en este ejemplo con el nombre
“sess_31d7bgphebfemb55311b1cger6”) y mete dentro “usuario=luis”. Como este archivo no está en el
ordenador del usuario, sino en el propio servidor, sólo puede ser modificado por el sitio web. Luego, el ser-
vidor le manda una cookie al navegador con nombre el nombre de la sesión (por defecto y para este ejem-
plo “PHPSESSID”) y valor el id de sesión (“31d7bgphebfemb55311b1cger6”).

Así, cuando el usuario vaya a otra página dentro del mismo sitio web, le mandará al servidor el va-
lor de su cookie: “PHPSESSID=31d7bgphebfemb55311b1cger6” (este mismo efecto se puede conseguir
utilizando la URL). De esta forma, el servidor sabe que el usuario es el que tiene id de sesión
“31d7bgphebfemb55311b1cger6”, así que va a buscar el archivo con sus datos
(“sess_31d7bgphebfemb55311b1cger6”) y se los pasa a la página web.
Lenguajes de script - Tutorial de PHP 7 81

7.2) Ejemplo de uso de sesiones en PHP 7


Vamos a ver un ejemplo para el uso de sesiones en PHP 7. En este caso usaremos los datos de
entrada que el usuario nos indique y haremos uso de ellos.

Veamos un ejemplo, creemos una carpeta dentro de "mis_apps" que se llame "capitulo_7 y en
ella, creemos un archivo llamado ejemplo_sesion.php con el siguiente código:

<?php

if(session_id()=="")
{
session_start();
}

if($_POST)
{
if(@$_SESSION['autentificado']!=TRUE)
{
$_SESSION['autentificado'] = TRUE;
$_SESSION['nombre'] = $_POST['nombreForm'];
$_SESSION['edad'] = $_POST['edadForm'];
}
}

if(@$_GET['salir']=="true")
{
session_unset();
session_destroy();
}

?>
<html>
<head>
<title>Ejemplo de sesión en PHP 7</title>
</head>
<body>

<?php
if(@$_SESSION['autentificado']==TRUE)
{
?>
<p>
Hola <?=$_SESSION['nombre'];?>, tienes <?=$_SESSION['edad'];?> años y estás autentifi-
cado. <a href="?salir=true">Haz click aquí para salir</a>.
</p>
<?php
}
else
{
?>
<p>
<strong>¡Hola!, veo que no estás autentificado, por favor llena el formula-
rio:</strong>
</p>
<form action="" method="post">
Nombre: <input type="text" name="nombreForm"> <br> <br>
Edad: <input type="text" name="edadForm"> <br> <br>
<input type="subm it" value="Guardar">
</form>
<?php
Lenguajes de script - Tutorial de PHP 7 82

}
?>
</body>
</html>

Y con este último código, veremos cómo usar los datos. Creemos un archivo llama-
llam
do ejemplo_sesion_2.php con el siguiente código:

<?php

if(session_id()=="")
{
session_start();
}

?>

<html>
<head>
<title>Ejemplo de sesión
sión en PHP 7</title>
</head>
<body>

<pre>

<?php
print_r($_SESSION);
?>
</pre >

</body>
</html>
Lenguajes de script - Tutorial de PHP 7 83

Capítulo 8.- Cookies en PHP 7

En el octavo capítulo de nuestro Tutorial PHP 7 ve-


remos qué son las Cookies y cómo usarlas.
usarlas
Lenguajes de script - Tutorial de PHP 7 84

8.1) ¿Qué son las Cookies en PHP 7?


La principal utilidad de las cookies (galletas) en PHP 7 es la de solventar el problema
probl de la falta de
estado en la navegación a través de las paginas web.
Con las cookies, pequeñas porciones de información se quedan registradas en el navegador permi-perm
tiendo identificar a este a través de diferentes páginas de un mismo sitio e incluso durante
duran visitas entre
distintos días, muy ventajoso a comparación de las sesiones.

Realmente las cookies no son mas que cadenas de texto que son enviadas desde el servidor al
cliente (navegador) y almacenadas en este, luego el navegador envía estas cookies al servidor
s permitien-
do así la identificación del cliente en el servidor.

A continuación vamos a ver como usar las cookies para nuestro beneficio.
Lenguajes de script - Tutorial de PHP 7 85

8.2) Ejemplos de cómo usar Cookies en PHP 7


El manejo de cookies en PHP 7 se realiza mediante el uso de la función setcookie(), esta función
esta disponible a partir de la versión 4 de PHP.

<?php
setcookie ( string $nombre [, string $valor [, int $expiracion = 0 [, string $path [,
string $dominio [, bool $secure = false [, bool $httponly = false ]]]]]] )

/*
Todos los argumentos excepto el nombre son opcionales.
*/
?>

Setcookie() define una cookie que es enviada junto con el resto de la información de la cabecera
(header). Las cookies PHP deben ser enviadas antes de cualquier tag de html, js, css o espacios, por lo
tanto deberemos realizar la llamada a estas funciones antes de cualquier tag. Esta es una restricción de
las cookies no de PHP 7.

• Nombre. Nombre de la cookie. Si creamos una cookie solamente con el nombre, en el cliente se eli-
minara la cookie que exista con ese nombre. También podemos reemplazar cualquier argumento con
una cadena vacía (“”).
• Valor. Valor que almacenará la cookie en el cliente.
• Expiración. El argumento expire es un argumento entero que indica la hora en que se eliminara la
cookie en el formato de hora que devuelven las funciones UNIX time() y mktime(). Normalmente se
usa time() + N. segundos de duración, para especificar la duración de una cookie.
• Path. Subdirectorio en donde tiene valor la cookie.
• Dominio. Dominio en donde tiene valor la cookie. Si ponemos como dominio www.domain.com la
cookie no se transmite para domain.com, mientras que si ponemos domain.com la cookie se transmite
tanto para domain.com como para www.domain.com
• Secure. El argumento secure indica que la cookie solo se transmitirá a través de una conexión segura
HTTPS.

<?php

setcookie("usuario", $_POST['nombreForm'], time()+3600, "/", $_POST['dominioForm']);

?>

En este ejemplo establecemos una cookie de nombre usuario que contiene el valor Luis, que du-
ra 1 hora (3600 segundos) y es válida para todo el dominio tutorialphp.net.

Veamos un ejemplo, creemos una carpeta dentro de "mis_apps" que se llame "capitulo_8 y en
ella, creemos un archivo llamado ejemplo_cookie.php con el siguiente código:

<?php
if($_POST)
{
setcookie("usuario", $_POST['nombreForm'], time()+3600, "/", $_POST['dominioForm']);
}
?>

<html>
<head>
<title>Ejemplo de cookie en PHP 7</title>
</head>
<body>
Lenguajes de script - Tutorial de PHP 7 86

<?php
if($_COOKIE)
{
echo "Hay Cookies!: <br>";
print_r($_COOKIE);
}
else
{
echo "No hay Cookies :( <br>";
<br>"

}
?>
<p>
<strong>¡Hola!, vamos a grabarte en cookie:</strong>
</p>
<form
rm action="" method="post">
Nombre: <input type="text" name="nombreForm"> <br> <br>
Dominio: <input type="text" name="dominioForm"> <br> <br>
<input type="submit" value="Guardar Cookie">
</form>
</body>
</html>
Lenguajes de script - Tutorial de PHP 7 87

Capítulo 9.- Expresiones reguares EE.RR.


EE en
PHP 7
Siendo éste el penúltimo capítulo de nuestro Tuto-
Tut
rial PHP 7 veremos el tema de las Expresiones Regula-
res, qué son y cómo implementarlas en PHP 7.
Lenguajes de script - Tutorial de PHP 7 88

9.1) ¿Qué son las expresiones regulares en PHP 7?


Las expresiones regulares son cadenas de caracteres que forman un patrón, expresan un texto
más extenso y buscan una coincidencia, en PHP 7 existen diversas funciones, vamos a ver las más impor-
tantes.

• preg_match().- Realiza una comparación con una expresión regular.


• preg_replace().- Realiza una búsqueda y sustitución de una expresión regular.
• preg_match_all().- Realiza una comparación global de una expresión regular.
• preg_split().- Divide un string mediante una expresión regular.

Podemos encontrar más funciones para expresiones regulares en PHP 7 en el siguiente sitio oficial
de PHP:

http://php.net/manual/es/ref.pcre.php
Lenguajes de script - Tutorial de PHP 7 89

9.2) Veamos 10 ejemplos sobre patrones de expresiones regulares


En este artículo explicaré 10 ejemplos muy comunes sobre expresiones regulares, muy útiles pa-
ra tus proyectos web 100% compatibles con funciones de PHP 7.

1) Validar una URL

¿Quieres saber si una dirección web es válida?, no hay problema, con esta expresión regular lo
tendremos muy fácil:

/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \?=.-]*)*\/?$/

2) Validar un E-mail

En muchas ocasiones necesitaremos saber si un e-mail con el que se trata de registrar un usuario
es válido:

^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$

3) Comprobar la seguridad de una contraseña

Para aquellos que necesitáis sugerir / comprobar la fortaleza de una contraseña:

(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$

De esta forma comprobaremos:

• Contraseñas que contengan al menos una letra mayúscula.


• Contraseñas que contengan al menos una letra minúscula.
• Contraseñas que contengan al menos un número o caracter especial.
• Contraseñas cuya longitud sea como mínimo 8 caracteres.
• Contraseñas cuya longitud máxima no debe ser arbitrariamente limitada.

4) Validar un número de teléfono

Con este snippet se validarán todos los número de teléfono pertenecientes a los listados en la Wikipedia
(en inglés):

^\+?\d{1,3}?[- .]?\(?(?:\d{2,3})\)?[- .]?\d\d\d[- .]?\d\d\d\d$

5) Validar número de tarjeta de crédito

Ahora que tan de moda está el e-commerce seguro que esto le vendrá bien a más de uno:

^((67\d{2})|(4\d{3})|(5[1-5]\d{2})|(6011))(-?\s?\d{4}){3}|(3[4,7])\ d{2}-?\s?\d{6}-
?\s?\d{5}$
Lenguajes de script - Tutorial de PHP 7 90

6) Recoger ID de un vídeo de Youtube

Si necesitas recoger el ID de un vídeo de Youtube en sus múltiples combinaciones, esta es tu ex-


presión regular:

/http:\/\/(?:youtu\.be\/|(?:[a-z]{2,3}\.)?youtube\.com\/watch(?:\?|#\!)v=)([\w-
]{11}).*/gi

7) Validar todas las etiquetas de imagen sin cerrar

Ahora que prácticamente todos empleamos xHTML es interesante comprobar que todas nuestras
etiquetas de imagen están correctamente cerradas:

<img([^>]+)(\s*[^\/])></img([^>

8) Validar una dirección IP

Si necesitas validar una dirección IP introducida por un usuario, esto te será de gran ayuda:

/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-
9]|25[0-5])$/

9) Validar código postal

En muchas ocasiones necesitamos recoger en los formularios de alta el código postal:

^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$

10) Validar un nombre de usuario

Si por ejemplo quisiéramos validar un nombre de usuario con un mínimo de 4 caracteres y un máximo de
15 haríamos lo siguiente:

/^[a-z\d_]{4,15}$/i

Además el nombre estaría utilizando sólo caracteres de la A-z y números.


Lenguajes de script - Tutorial de PHP 7 91

9.3) Ejemplos de expresiones regulares


Ya que hemos visto una serie de ejemplos sumamente útiles de patrones de expresiones regulales,
vamos a ver el siguiente ejemplo en donde ponemos en práctica algunas de ellas.

Veamos un ejemplo, creemos una carpeta dentro de "mis_apps" que se llame "capitulo_9 y en
ella, creemos un archivo llamado expresiones_regulares.php con el siguiente código:

<?php

/* Multi-Función */
function regexCheck($variable,$case)
{

//Selector de la regex (expresión regular)


switch ($case)
{
case "email":
$regex = "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/";
break;

case "ipAddress":
$regex = "/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-
9]{2}|2[0-4][0-9]|25[0-5])$/";
break;

case "userName":
$regex = "/^[a-z\d_]{4,15}$/i";
break;
}

if(preg_match($regex,$variable))
{
return TRUE;
}
else
{
return FALSE;
}

if(@$_POST['emailForm'])
{
if(regexCheck($_POST['emailForm'],"email")){
$resultadoEmail = "El email tiene el formato correcto.";
}
else
{
$resultadoEmail = "El email NO tiene el formato correcto.";
}
}

if(@$_POST['IPForm'])
{
if(regexCheck($_POST['IPForm'],"ipAddress")){
$resultadoIP = "La dirección IP tiene el formato correcto.";
}
else
Lenguajes de script - Tutorial de PHP 7 92

{
$resultadoIP = "La dirección IP NO tiene el formato correcto.";
}
}

if(@$_POST['UserNameForm'])
{
if(regexCheck($_POST['UserNameForm'],"userName")){
$resultadoUN = "El nombre de usuario tiene el formato correcto.";
}
else
{
$resultadoUN = "El nombre de usuario tiene el formato correcto.";
}
}

?>
<html>
<head>
<title>Ejemplo de expresiones regulares en PHP 7</title>
</head>
<body>

<h3>Validemos e-mail:</h3>
<form action="" method="post">
Tu e-mail:
<input type="text" name="emailForm"> <br> <br>
<input type="submit" value="Comprobar">
</form>
<strong><?php echo @$resultadoEmail; ?></strong>

<h3>Dirección IP:</h3>
<form action="" method="post">
IP:
<input type="text" name="IPForm"> <br> <br>
<input type="submit" value="Comprobar">
</form>
<strong><?php echo @$resultadoIP; ?></strong>

<h3>Nombre de usuario:</h3>
<form action="" method="post">
Uusario:
<input type="text" name="UserNameForm"> <br> <br>
<input type="submit" value="Comprobar">
</form>
<strong><?php echo @$resultadoUN; ?></strong>

</body>
</html>
Lenguajes de script - Tutorial de PHP 7 93
Lenguajes de script - Tutorial de PHP 7 94

Capítulo 7.- Sesiones en PHP 7

En el septimo capítulo de nuestro Tutorial PHP 7


veremos cómo usar las sesiones desde PHP 7.
Lenguajes de script - Tutorial de PHP 7 95

10.1) ¿Qué son las clases en PHP 7?


Las siglas de Programacion Orientada a Objetos (OOP en ingles – Object Oriented Program-
ming – ) es una variante de programación que permite reutilizar gran parte del codigo, lo hace más esteti-
co y legible ya que está más orientado a la lógica humana, además de ser muy útil en grandes proyectos.

En proyectos con varios programadores, es posible asignar clases especificas que hagan un de-
terminado trabajo a cada programador, y este desarrollarla independientemente de los avances de los de-
más, ya que los objetos son independientes unos de otros, esto hace más rápido y práctico el desarrollo
del proyecto.

OOP en PHP

PHP desde su versión 3.0 soportaba la sintaxis de la OOP sin embargo en ese tiempo (y un poco ahora)
carecia de todas sus características. A este tiempo PHP soporta todo lo que un lenguaje orientado a obje-
tos en teoría debería soportar:

• Encapsulamiento.
• Tipos Abstractos de Datos y ocultamiento de la Información.
• Herencia.
• Polimorfismo.
PHP 7 no es un lenguaje 100% Orientado a Objetos sin embargo los soporta y muy bien, ¿por qué no obe-
tener provecho de eso?, para comprender la POO, debemos comprender las partes que la conforman:

¿Qué son las clases?

La clase es una plantilla que usamos para crear objetos, al crear un objeto de una clase se dice
que es una instancia de esa clase. Los objetos en PHP 7 se crean (instancian) con la palabra reserva-
da New.

¿Qué son las clases?

La clase es una plantilla que usamos para crear objetos, al crear un objeto de una clase se dice
que es una instancia de esa clase. Los objetos en PHP 7 se crean (instancian) con la palabra reserva-
da New.

<?php
class Ejemplo
{
//Constructor
function Ejemplo()
{
//Nada por aquí
}

//Iniciamos la clase
$ob = new Ejemplo();
?>

Aqui la variable $ob sería una instancia de la clase Ejemplo.


Lenguajes de script - Tutorial de PHP 7 96

Constructor

El constructor es el método que es llamdo automáticamente al crear una instancia de la clase, el


constructor lleva el mismo nombre de la clase, el constructor no debe retornar ningun valor y es unico (dis-
tintamente a C plus). Pero bien, para que una clase sea útil necesita metodos y atributos

Métodos

Los métodos (también operaciones) no son más que un tipo de funciones propias de la clase, se
manejan igual, reciben parametros, desarrollan un proceso y devuelven (o no) un valor, los métodos se
definen con la palabra reservada function.

<?php

class Ejemplo
{
//Constructor
function Ejemplo()
{
//Nada por aquí
}

function MuestraNombre($nombre)
{
echo "El nombre es " . $nombre;
}
}

//Iniciamos la clase
$obj = new Ejemplo();

//Llamamos al método
$obj->MuestraNombre('Fernando Gil');

?>

Esto es una clase con un simple método que muestra el valor de su unico parámetro programado,
el ejemplo daria como resultado:

El nombre es Fernando Gil


Lenguajes de script - Tutorial de PHP 7 97

10.2) Los atributos de POO en PHP 7

En este artículo veremos algo súper importante dentro de PHP 7 orientado a objetos, los Atributos.
Pero, ¿qué son los Atributos?, vamos a verlo.
Basicamente se les llama Atributos a varibales que contienen información del estado de un objeto. Estos
se definen usando la palabra reservada var.
Veamos el siguiente código:

<?php

class Ejemplo()
{
var $atributo;

function Ejemplo()
{
//Do nothing...
}

function DaValor($valor)
{
$this->atributo = $valor;
}

$obj = new Ejemplo();

$obj->DaValor(4);

?>

Ahora el atributo valdra 4, $this usada en el ejemplo, es una variable especial referenciada al objeto
y atributos de la clase o de la clases heredadas, esto nos lleva al siguiente punto.
Lenguajes de script - Tutorial de PHP 7 98

10.3) ¿Qué es la Herencia POO en PHP 7?


La Herencia permite a una clase, “heredar”, los métodos y atributos (ambos ya vistos en capítulos
anteriores) de otra clase, para este proceso es usada la palabra reservada extends seguida de la que será
su clase “padre”.
Vamos a ver el siguiente ejemplo:

<?php
class Ejemplo {

var $atributo;

function Ejemplo()
{
// Do nothing
}

function setAtributo($value)
{
$atributo = $value;
}
}

class Ejemplo2 extends Ejemplo


{
function Ejemplo2()
{

function getAtributo()
{
return $atributo;
}
}

$obj = new Ejemplo2();

$obj->setAtributo(7);

echo $obj->getAtributo();

?>
Como ves se pueden usar los métodos de las dos clases ya que al instanciar un objeto de la cla-
se Ejemplo2 al ser heredada de Ejemplo adquiere sus métodos.
Lenguajes de script - Tutorial de PHP 7 99

10.4) Veamos el Acceso Public (Público) en POO PHP 7


Acceso Public (Publico)

Al ser declarado un método o atributo public, éste será accesible desde cualquier punto del script,
éste es el punto más bajo del sistema de proteccion. Para declarar público, se debe de usar la palabra
reservada public.

<?php

class Ejemplo ()
{
public $atributo;

function Ejemplo()
{

$this->atributo = 'Hey!';
}

$obj = new Ejemplo();

echo $obj->atributo;

?>
Lenguajes de script - Tutorial de PHP 7 100

10.5) Veamos el Acceso Private (Privado) en POO PHP 7


Acceso Private (Privado)

Este es el más restrictivo, los elementos declarados bajo private sólo serán accesibles desde
métodos de su clase original.

<?php

class Ejemplo ()
{
private $atributo;

function Ejemplo()
{

$this->atributo = 'Hey!';
}

function daAtributo()
{
return $this->atributo;
}

$obj = new Ejemplo();

echo $obj->daAtributo;

?>
Como te darás cuenta, hemos tenido que instanciar un método para devolver el valor de atributo.

Acceso Protected (Protegido)

Con este los elementos serán accesibles desde su clase original o desde clases heredadas.

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy