0% encontró este documento útil (0 votos)
18 vistas170 páginas

Arquitectura Cliente-Servidor en Web

Este documento describe conceptos básicos de programación web como la arquitectura cliente-servidor, las arquitecturas en capas como MVC, tipos de sitios web estáticos y dinámicos, páginas web, aplicaciones web, hosting web, herramientas de desarrollo, CMS, instalación de un servidor local y más.

Cargado por

randyweb20
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
18 vistas170 páginas

Arquitectura Cliente-Servidor en Web

Este documento describe conceptos básicos de programación web como la arquitectura cliente-servidor, las arquitecturas en capas como MVC, tipos de sitios web estáticos y dinámicos, páginas web, aplicaciones web, hosting web, herramientas de desarrollo, CMS, instalación de un servidor local y más.

Cargado por

randyweb20
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Programación web

Prof. Randy Douglas, Ing.


Funcionamiento
de la arquitectura
cliente-servidor
▪ Servidor:
▪ Dispositivo que brinda un servicio
determinado en una red, no es
necesariamente una computadora. Ej: Correo
electrónico, almacenamiento de archivos,
transferencia de archivos, nombres de
dominio, hora, fecha, sitios web.
▪ Cliente:
▪ Dispositivo que consume un servicio
brindado por un servidor en una red, no es
necesariamente una computadora. Ej: Correo
electrónico, almacenamiento de archivos,
transferencia de archivos, nombres de
dominio, hora, fecha, sitios web.
Arquitectura n capas
▪ Es una arquitectura cliente-servidor en el que el objetivo
primordial es la separación de la lógica de negocios de la
lógica de diseño; un ejemplo básico de esto consiste en
separar la capa de datos de la capa de presentación al
usuario con la de la lógica del negocio.

Las ventajas es que el desarrollo se puede llevar a cabo en


varios niveles y, en caso de que sobrevenga algún cambio,
sólo se ataca al nivel requerido sin tener que revisar entre
código mezclado.

Permite distribuir el trabajo de creación de una aplicación


por niveles; de este modo, cada grupo de trabajo está
totalmente abstraído del resto de niveles, de forma que basta
con conocer la API que existe entre niveles.
▪ El diseño más utilizado actualmente es el diseño en tres
niveles o MVC.
Arquitectura n capas
▪ En la arquitectura MVC se ven 3 niveles:
▪ Vista: Es la capa en donde se presentan
los datos al cliente de una manera que el
entienda y de una forma estilizada. Se
desarrolla con un lenguaje front-end.
▪ Controlador: Es la capa que se ejecuta en
el servidor, se procesan los datos y se le
dan al cliente. Se desarrolla con un
lenguaje back-end.
▪ Modelo: Es la capa en donde se
almacenan los datos del sistema. Se
desarrolla con un lenguaje de consultas.
Sitios web
▪ Un sitio web es un conjunto de páginas web que
están conectadas entre sí y se encuentran alojadas
en un servidor web. Este espacio virtual es
accesible para cualquier persona con conexión a
internet, que lo visite por medio de un navegador
web. Se compone de diferentes tipos de contenido,
como texto, imágenes, videos y elementos
interactivos.
Tipos de sitios web
▪ Estáticos: Su principal función es informar al
usuario. El usuario no tiene mucha más
interacción con ellas que el consultar su
contenido el cual es permanente. Se utilizan
principalmente herramientas de maquetación.
▪ Dinámicos: Se basan en la generación de
contenido a través de la información
introducida por el usuario procesándola para
luego almacenarla. Se utilizan además de
lenguajes de maquetación, lenguajes de
programación web y bases de datos.
Página web
▪ También llamada página electrónica, página digital o ciber
página es un documento digital complejo, que puede integrar
y/o contener texto, sonido, vídeo, programas, enlaces,
imágenes, hipervínculos y otros elementos, adaptado para la
World Wide Web (WWW), y que puede ser accedida y
visualizada mediante un navegador web. Están generadas
bajo un base de HTMLEsta información se encuentra
generalmente en etiquetado HTML o XHTML, y puede
proporcionar acceso a otras páginas web mediante enlaces
de hipertexto. Frecuentemente también incluyen otros
recursos como pueden ser hojas de estilo en cascada,
scripts, imágenes digitales, etc.
▪ Las páginas web pueden estar almacenadas en un
computador o en un servidor web remoto. El servidor web
puede restringir el acceso únicamente a redes privadas, por
ejemplo, en una intranet corporativa, o puede publicar las
páginas en la World Wide [Link] decir que se utiliza para
acceder a página de distintas redes sociales para poder
acceder a ella necesitas una cuenta.
Fuente: Wikipedia
Aplicaciones
web
▪ Son programas que
funcionan en internet. Es decir,
que los datos o los archivos en
los que trabajas son
procesados y almacenados
dentro de un servidor remoto
que utiliza los protocolos http
o https. Estas aplicaciones, por
lo general, no necesitan ser
instaladas en tu computador.
Hosting web
▪ Un hosting o alojamiento es el servicio que hace
posible el acceder a un sitio web ya sea de forma
local o en Internet.
▪ En esta acción se reserva un espacio en el
sistema para correr un servidor web, dentro de
ese servidor se pueden montar n cantidad de
sitios los cuales pueden tener acceso a otros
servicios como bases de datos.
▪ Un hosting debe de tener el espacio en
almacenamiento necesario para almacenar
todos los datos que los sitios necesiten. También
necesita del ancho de banda necesario para que
los clientes del sitio puedan acceder a él de
forma eficiente.
▪ Estabilidad
▪ Confiabilidad
▪ Seguridad.
Herramientas de desarrollo
SDKs y lenguajes CMS
▪ Son herramientas técnicas que permiten el desarrollo, ▪ Sistema Gestor de Contenido, es un software que ayuda
modificación y administración de sitios web. Para a los usuarios a crear, administrar y modificar
utilizar estas herramientas se necesitan de contenido en un sitio web sin la necesidad de
conocimientos técnicos especializados. conocimientos técnicos especializados.
▪ PHP ▪ Joomla
▪ [Link] ▪ Drupal
▪ NodeJS ▪ Wordpress
▪ Java ▪ Magento (for eCommerce stores)}
▪ Python ▪ Squarespace
▪ Visual Studio Community ▪ Wix
▪ Visual Studio Code ▪ TYPO3
▪ Sublime Text
Trabajando con un CMS
1. Descargar e instalar un servidor web. Usando Xampp
2. Descargar e instalar el CMS. Joomla, Drupal, Wordpress
3. Configuración inicial del CMS.
4. Creación de contenido.
5. Administración del portal.
Páginas web estáticas vrs. dinámicas
Páginas web estáticas Páginas web dinámicas
▪ Informar al usuario. ▪ Enfoque en generación de contenido a través
de la información dada por el usuario.
▪ Información permanente.
▪ Implementan lenguajes de programación.
▪ Se actualiza de manera ocasional.
▪ Procesan y almacenan los datos que el
▪ Se utilizan lenguajes de maquetación y diseño.
usuario ingresa.
▪ La actualización la realiza el admin.
▪ Orientados a sitios donde se está en
▪ No soportan apps, db, entre otras. constante actualización de la información del
contenido.
▪ Enfocado a sitios empresariales que solo
quieren ofrecer una descripción de ▪ Enfocado a sitios donde se requiera la
actividades, misión-visión, colaboradores, autenticación de usuarios, actualización de la
servicios y productos que ofrecen. información e interacción usuario-página.
Páginas web estáticas vrs. dinámicas
Páginas web estáticas Páginas web dinámicas
Instalación de un servidor local
▪ Para poder trabajar con lenguajes de
programación web a nivel de servidor
como por ejemplo PHP, ASP o Java se
necesita la configuración de un servidor
local o adquirir un hosting web que
soporte el lenguaje de programación
con el que se quiere desarrollar.
▪ En esta ocasión nos enfocaremos en la
instalación y configuración de un
servidor local para trabajar con el
lenguaje PHP y un gestor de base de
datos MySQL y similares.
Instalación de un servidor local
▪ Existen servidores que contienen todos
los componentes configurados y listos
para su ejecución.
▪ Se debe de elegir el que mejor se
adapte al sistema operativo con el que
se está trabajando.
▪ Siempre se debe de descargar desde la
página oficial.
Instalación de un servidor local
▪ Una vez descargado el archivo ejecutarlo como
administrador.
▪ Seguir los pasos de instalación.
▪ Seleccionar los componentes que se van a
necesitar para los desarrollos a realizar:
▪ Server
▪ Apache
▪ MySQL
▪ Filezilla FTP Server
▪ Mercury Mail Server
▪ Tomcat
▪ Lenguajes de programación
▪ PHP
▪ Perl
▪ Aplicaciones
▪ phpMyAdmin
▪ Webalizer
▪ Fake Sendmail
Instalación de un servidor local
▪ Verifique que la ruta de instalación del
servidor se encuentre en la raíz del
disco duro.
▪ Finalice la instalación del servidor.
▪ Una vez terminado ejecute el panel del
control del servidor como
administrador e inicialice los servicios
necesarios dando click a los botones
Start.
▪ Apache – servidor web
▪ MySQL – gestor de base de datos
Instalación de un servidor local
▪ Verifique el correcto funcionamiento de los
servicios inicializados.
▪ Escriba en la barra de direcciones del navegador:
[Link] para verificar el funcionamiento
del servidor web.
▪ Escriba en la barra de direcciones del navegador:
[Link] para verificar el
funcionamiento del gestor de base de datos.
▪ Para verificar el funcionamiento del interprete
abre un editor de texto y crea una carpeta dentro
del directorio que aloja los archivos de ejecución.
Su nombre por lo general es htdocs o www.
▪ Crea dentro de esa carpeta que se creó un
archivo llamado [Link] e ingrese el siguiente
código <? phpinfo() ?>
¿Qué es PHP?
• PHP es un acrónimo para "PHP: Hypertext Preprocessor"
• Es un lenguaje de tipo script ampliamente utilizado
• Los scripts de PHP son ejecutados en el servidor
• PHP es gratis de descargar y utilizar

PHP es un lenguaje muy popular!


Es lo suficientemente poderoso para ser el núcleo de
múltiples sistemas gestores de contenido web como por
ejemplo Wordpress o redes sociales como Facebook!
Es lo bastante fácil para aprender a programar
aplicaciones del lado del servidor!
¿Qué es un archivo PHP?
▪ Estos archivos pueden contener texto, código HTML, CSS, Javascript y PHP.
▪ Son ejecutados en el servidor y dan como respuesta código plano HTML.
▪ Tienen como extensión .php
¿Qué se puede hacer con PHP?
▪ Generar páginas con contenido dinámico
▪ Crear, abrir, leer, escribir, borrar y cerrar archivos en el servidor.
▪ Recolectar data de un formulario
▪ Enviar y recibir cookies de navegación
▪ Agregar, borrar, modificar data en una BD.
▪ Controlar la autenticación y autorización de usuarios.
▪ Encriptar data.
¿Por qué usar PHP?
▪ Corre en múltiples plataformas (Windows, Linux, Unix, MAC OSX, entre otras)
▪ Es compatible con multitud de servidores (Apache, IIS, entre otros)
▪ Soporta un amplio rango de bases de datos.
▪ Es gratis
▪ Es fácil de aprender y es ligero para correr en servidores
¿Qué se necesita para usar PHP?
Buscar un web hosting que soporte PHP y MySQL Instalar un servidor web y luego instalar PHP y MySQL

▪ Si el hosting tiene activado el soporte a ▪ Instalar un servidor web


PHP no se necesita hacer mucho.
▪ Instalar PHP
▪ Crear un archivo .php y colocarlo en la
▪ Instalar MySQL
carpeta web del servidor.
▪ No se necesita compilar ni instalar
herramientas adicionales.
▪ Debido a que PHP es gratis, la mayoria
de los web host soportan PHP.
Sintaxis
▪ Un script de PHP se ejecuta del lado del
▪ <!DOCTYPE html>
servidor.
<html>
▪ El servidor devuelve como respuesta al <body>
cliente un texto plano en formato HTML. <h1>My first PHP page</h1>
▪ El navegador ejecuta dicho archivo. <?php
▪ Un script PHP puede ubicarse en cualquier echo "Hello World!";
sitio del documento. ?>
</body>
▪ Los scripts PHP deben ir entre las etiquetas:
</html>
<?php
// PHP code goes here
?>
▪ Cada sentencia PHP debe terminar
con punto y coma (;).
Sintaxis
▪ PHP es semi case sensitivy. <!DOCTYPE html> ▪ <!DOCTYPE html>
<html> <html>
▪ Las palabras claves, nombres de <body>
clases, funciones, funciones <body> <?php
<?php $color = "red";
definidas por el usuario no son case echo "My car is " . $color .
ECHO "Hello World!<br>";
sensitivy. "<br>";
echo "Hello World!<br>"; echo "My house is " .
▪ Los nombres de las variables por EcHo "Hello World!<br>"; $COLOR . "<br>";
otro lado si son case sensitivy. ?> echo "My boat is " . $coLOR .
</body> "<br>";
?>
</html> </body>
</html>
Comentarios
▪ Un comentario es una línea la cual no es ▪ <!DOCTYPE html>
ejecutada por parte del programa. <html>
<body>
▪ Su propósito es el de ser leída por
<?php
alguien que ve el código.
// Comentario de una línea
▪ Se pueden usar en: # Comentario de una línea
▪ Ayudar a que otros entiendan el código. ▪ /*
▪ Recordarnos a nosotros mismos que se hizo * Comentario de varias líneas
▪ Para depurar fragmentos de código.
▪ */
▪ PHP soporta múltiples formas de ?>
comentar: </body>
▪ // - Para una línea </html>
▪ # - Para una línea
▪ /* */ - Para múltiples líneas.
Variables PHP
▪ Una variable es un contenedor que
almacena datos de manera temporal para <?php
que estas puedan ser usadas
posteriormente.
$txt = "Hello world!";
▪ En PHP las variables inician con signo de $x = 5;
dólar ($), seguido por el nombre de la
variable. Ej: $txt;
$y = 10.5;
▪ Se puede simplemente declarar una ?>
variable de la siguiente forma $txt;
▪ O inicializarla de esta manera $txt = 5;
▪ Para llamar a una variable y utilizar su
contenido se hace de la misma forma
echo $txt;
Variables PHP
▪ Reglas para los nombres de las variables:
▪ Se inicia con el signo de dólar ($), seguido por el nombre de la
variable.
▪ El nombre debe de empezar con una letra o un guion bajo (_).
▪ No puede iniciar con número.
▪ Solo pueden contener valores alfanuméricos y guiones bajos (A-
z, 0-9, _).
▪ Los nombres de las variables son case sensitive.
Variables PHP
▪ Para imprimir valores se utiliza la función <?php
echo. $txt = "[Link]";
echo "I love $txt!";
▪ Se puede concatenar el valor de una
?>
variable con un String utilizando el
carácter punto (.).
▪ Se pueden utilizar operadores para <?php <?php
realizar operaciones entre variables. $x = 5; $txt =
▪ PHP no tiene variables estrictas, ósea, a $y = 4; "[Link]";
la hora de declarar la variable no se echo $x + $y; echo "I love " . $txt . "!";
indica el tipo de variable. ?> ?>
▪ PHP asigna el tipo de variable una vez
que se inicializa esta.
Variables PHP
▪ Las variables PHP tienen múltiples alcances.
▪ Locales
▪ Globales
▪ Estáticas
▪ Super gloabales
Variables PHP
Global Local
▪ Una variable declarada fuera de una ▪ Una variable declarada dentro de una
función es una variable global. función es una variable local.
▪ De base no pueden ser llamadas dentro ▪ Se pueden tener variables locales con
de las funciones. el mismo nombre dentro de diferentes
funciones.
▪ Para permitir su uso se debe utilizar la
palabra reservada global. ▪ Su ciclo de vida inicia cuando la
función es llamada y termina cuando la
función termina.
Variables PHP
Global Local
<?php
$x = 5; // global scope <?php
function myTest() {
function myTest() {
// using x inside this function will generate an error
echo "<p>Variable x inside function is: $x</p>";
$x = 5; // local scope
} echo "<p>Variable x inside function is: $x</p>";
myTest();
}
echo "<p>Variable x outside function is: $x</p>";
?> myTest();
------------------------------------------------------
<?php // using x outside the function will generate an
$x = 5;
$y = 10; error
function myTest() {
global $x, $y; echo "<p>Variable x outside function is: $x</p>";
$y = $x + $y;
} ?>
myTest();
echo $y; // outputs 15
?>
Variables PHP
Static <?php
function myTest() {
▪ Aumenta la vida de una variable local.
static $x = 0;
▪ Mantiene el valor de la variable si en
echo $x;
algún momento este fue modificado.
$x++;
▪ Es útil si en algún momento se necesita
}
ese valor modificado y no el iniciado.
myTest();
myTest();
myTest();
?>
Tipos de datos PHP
▪ Las variables pueden almacenar datos de diferentes tipos.
▪ PHP soporta los siguientes tipos de datos:
▪ String o cadenas
▪ Integer o enteros
▪ Float o reales
▪ Booleanos o lógicos
▪ Arreglos | Arrays
▪ Objectos
▪ NULL
▪ Recursos
Tipos de datos PHP
String Integer
▪ Es una secuencia de caracteres, como “Hola ▪ Es un dato numérico no decimal entre -
mundo”. 2,147,483,648 and 2,147,483,647.
▪ Puede ser cualquier carácter dentro de ▪ Reglas:
comillas. Pueden ser simples, dobles o ▪ Debe tener al menos 1 digito.
inclinadas.
▪ No puede tener punto decimal
<?php
▪ Pueden ser positivos o negativos
$x = "Hello world!";
$y = “Hello world!'; ▪ Pueden ser base 10, base 2, base 8 o
echo $x; base 16.
echo "<br>"; <?php
echo $y;
?>
$x = 5985;
var_dump($x);
?>
Tipos de datos PHP
Float Booleano
▪ Es un número con punto decimal o en ▪ Representa 2 posibles estados:
formato exponencial. VERDADERO o FALSO.
<?php ▪ Son usados a menudo en pruebas
$x = 10.365; condicionales.
var_dump($x);
$x = true;
?>
$y = false;
Tipos de datos PHP
Arreglos Objetos
Las clases y objetos son los aspectos principales de la POO.
Un arreglo puede almacenar

▪ ▪ Una clase es una plantilla de objetos, un objeto es una instancia de una clase.

múltiples valores de un mismo ▪ Cuando se crea un objeto, este adquiere todas las propiedades y métodos de
la clase, pero cada objeto puede tener diferentes valores en sus propiedades.

tipo. <?php
class Car {
public $color;
public $model;
<?php public function __construct($color, $model) {
$this->color = $color;
$this->model = $model;

$cars = }
public function message() {
return "My car is a " . $this->color . " " . $this->model . "!";

array("Volvo","BMW","Toyota"); }
}

var_dump($cars); $myCar = new Car("black", "Volvo");


echo $myCar -> message();
echo "<br>";

?> $myCar = new Car("red", "Toyota");


echo $myCar -> message();
?>
Tipos de datos PHP
Valor NULO | NULL Recursos
▪ Es un tipo especial de dato. ▪ No es en sí un tipo de dato.
▪ Cuando una variable tiene este valor es ▪ Es una referencia al almacenado para
porque no se le ha asignado nada. funciones y recursos externos para PHP.
▪ Puede ser usado para limpiar una ▪ Un ejemplo de esto es almacenar la data
variable asignándole el valor de NULL a de una llamada a una base de datos.
esta.
<?php
$x = "Hello world!";
$x = null;
var_dump($x);
?>
Concatenación
▪ Para concatenar variables con otras <?php
variables y/o cadenas de caracteres $edad = 34;
entre otros tipos de datos soportados echo “Tu edad es: “ . $edad;
se utiliza el operador punto (.). ?>
Funciones echo y print
echo print
▪ Usada para imprimir información en ▪ Usada para imprimir información en
pantalla. pantalla.
▪ Puede usarse con o sin paréntesis. ▪ Puede usarse con o sin paréntesis.
▪ No retorna valor. ▪ Retorna un valor de 1. Esto sirve para
usarse en condicionales.
▪ Acepta múltiples parámetros.
▪ Es más rápido que print. ▪ Acepta un parámetro.
▪ Es más lento que echo.
Funciones echo y print
echo print
<?php <?php
echo "<h2>PHP is Fun!</h2>"; print "<h2>PHP is Fun!</h2>";
echo "Hello world!<br>"; print "Hello world!<br>";
echo "I'm about to learn PHP!<br>"; print "I'm about to learn PHP!";
echo "This ", "string ", "was ", "made ", "with multiple ?>
parameters."; -----------------------------------
?> <?php
----------------------------------------------------- $txt1 = "Learn PHP";
<?php $txt2 = "[Link]";
$txt1 = "Learn PHP"; $x = 5;
$txt2 = "[Link]"; $y = 4;
$x = 5; print "<h2>" . $txt1 . "</h2>";
$y = 4; print "Study PHP at " . $txt2 . "<br>";
echo "<h2>" . $txt1 . "</h2>"; print $x + $y;
echo "Study PHP at " . $txt2 . "<br>"; ?>
echo $x + $y;
?>
Manejar formularios con PHP
▪ Las variables super globales $_GET y $_POST son usadas
para recolectar data de formularios.
▪ Ambos manejan los datos de los formularios en pares de
Archivo [Link]
llaves/valores.
▪ Del lado del HTML es importante indicar 2 atributos en el
form. <html>
▪ action: En donde se coloca la ruta del archivo .php que captura la <body>
data y la procesa.
▪ method: El cual es el método que utilizará HTML para enviarle los Welcome <?php echo $_POST["name"]; ?><br>
datos al archivo .php. Son parecidas a las super globales que usa Your email address is: <?php echo $_POST["email"]; ?>
PHP para recolectar la data. En el caso del get se usa para enviar la
data a través de la barra de navegación (inseguro). Post se usa para </body>
enviar la data encapsulada al archivo .php (no tan insegura). </html>
<html>
<body>
<form action="[Link]" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>
Manejar formularios con PHP
¿Cuándo usar GET? ¿Cuándo usar POST?
▪ Los datos enviados por este método son ▪ Los datos enviados por este método son
visibles por todos. invisibles por otros.
▪ Tiene la limitación de solo soportar 2000 ▪ No tiene límite en la cantidad de data que se
caracteres. puede enviar.
▪ Es más rápido de enviar datos que POST. ▪ Es más lento de enviar datos que GET.
▪ Se debe de evitar usarlo cuando se trabaja ▪ POST soporta la carga de data binaria como
con datos sensibles como contraseñas. por ejemplo archivos .exe al servidor.
▪ Es el método preferido por los
desarrolladores para enviar datos.
Strings PHP
strlen() str_word_count()
▪ Retorna la longitud del String. ▪ Retorna la cantidad de palabras del
<?php String.
echo strlen("Hola mundo!"); // salida 12 <?php
?> echo str_word_count("Hola mundo!"); //
salida 2
?>
Strings PHP
strrev() strpos()
▪ Retorna el String al reves. ▪ Busca un texto en específico en el
<?php String. Si hay coincidencia retorna la
echo strrev("Hola mundo!"); // salida posición del primer carácter, sino
!odnum aloH retorna FALSE.
?> <?php
echo strpos("Hola mundo!“, “mundo”); //
salida 5
?>
Strings PHP
Tarea #2, segundo periodo
▪ Busque los siguientes métodos String según aparecen en la siguiente tabla.
▪ Debe de presentar una diapositiva por método.
▪ La diapositiva debe de ser de tipo de diseño “2 contenidos | Two Content”
▪ En el contenido de la izquierda debe de venir la explicación del método y la sintaxis del
método.
▪ En el contenido de la derecha debe de venir un ejemplo completo del código.
▪ Debe de subirlo en el portafolio de evidencias en la carpeta de Evidencias de conocimiento
con el nombre “Strings PHP # de la [Link]”.
▪ Fecha de entrega: 30 de junio 2023.
Números en PHP
Integer | Enteros
▪ Un integer es un número sin punto decimal. ▪ Se tienen las siguientes constantes predefinidas en PHP:
▪ PHP_INT_MAX – Muestra el integer más grande soportado
▪ En sistemas de 32 bits esta entre -2147483648 y 2147483647 ▪ PHP_INT_MIN – Muestra el integer más pequeño soportado
▪ PHP_INT_SIZE - El tamaño del integer en bytes
▪ En sistemas de 64 bits esta entre -9223372036854775808 y
▪ Se poseen unas funciones para verificar si los valores en una variable son
9223372036854775807 integer:
is_int()
▪ En caso de almacenar un número más grande será almacenado ▪

▪ is_integer() - alias de int()


como Float.
▪ is_long() - alias de_int()
Los integer tienen ciertas reglas:
<?php

Debe tener al menos un digito



$x = 5985;
▪ No puede tener punto decimal var_dump(is_int($x));
▪ Puede ser positive o negative
▪ Pueden ser formato decimal, hexadecimal, octal y binario $x = 59.85;
var_dump(is_int($x));
?>
Números en PHP
Float | Punto flotante | Decimales
▪ Es un número con punto decimal o en forma exponencial. ▪ <?php
▪ Se puede almacenar un número hasta $x = 10.365;
1.7976931348623E+308 y una precisión de hasta 14 dígitos.
var_dump(is_float($x));
Se tienen las siguientes constantes predefinidas en PHP:

▪ PHP_FLOAT_MAX – Muestra el floating más grande soportado
?>
▪ PHP_FLOAT_MIN – Muestra el floating más pequeño soportado
▪ PHP_FLOAT_DIG – El número de dígitos decimales que pueden ser
redondeados a un flotante sin pérdida de precisión.

▪ PHP tiene las siguientes funciones para verificar si una


variable es float:
▪ is_float()
▪ is_double() – un alias de is_float()
Números en PHP
Infinitos
▪ Un número más grande que un <?php
echo is_finite(2) . "<br>";
float se considera infinito. echo is_finite(log(0)) . "<br>";
echo is_finite(2000);
▪ PHP tiene las siguientes funciones ?>
para verificar si un número es <?php
echo is_infinite(2) . "<br>";
finito o infinito echo is_infinite(log(0)) . "<br>";
echo is_infinite(2000);
▪ is_finite() ?>
<?php
▪ is_infinite() $x = 1.9e411;
var_dump($x);
▪ Sin embargo, var_dump() también ?>

puede indicarlo.
Números en PHP
NaN
▪ NaN, significa Not a Number (No es <?php
un Número). echo is_nan(200) . "<br>";
echo is_nan(acos(1.01));
▪ Se usa para indicar operaciones
?>
matemáticas imposibles.
▪ PHP posee la siguiente función para <?php
verificar si un valor no es un número. $x = acos(8);

▪ is_nan()
var_dump($x);
?>
▪ Sin embargo, var_dump() también
puede cumplir esa función.
Números en PHP
Strings numericos
▪ PHP posee la función is_numeric() <?php
$x = 5985;
para verificar si uan variable es var_dump(is_numeric($x));
númerica. $x = "5985";
var_dump(is_numeric($x));
▪ La función retorna verdadero si la
variable es un número o un string $x = "59.85" + 100;
var_dump(is_numeric($x));
numérico y falso si no.
$x = "Hello";
var_dump(is_numeric($x));
?>
Números en PHP
<?php
Parsear tipos de datos // Parsear de float a int
$x = 23465.768;
$int_cast = (int)$x;
▪ Para parsear tipos de datos se echo $int_cast;

utilizan las siguientes funciones: echo "<br>";

▪ (int), (integer), intval() = para // Parsear de string a int


$x = "23465.768";
parsear a integer $int_cast = (int)$x;
echo $int_cast;
▪ (float) = para parsear a float
echo "<br>";

// Parsear de string a float


$x = "23465.768";
$float_cast = (float)$x;
echo $float_cast;
?>
Matemáticas en PHP
▪ Al igual que en cualquier otro lenguaje, PHP tiene un set de
funciones que permiten realizar tareas matemáticas en
números de cualquier tipo.
Matemáticas en PHP
Función pi()
▪ Esta función retorna el valor de PI, <?php
3.1415926535898 echo(pi()); // retorna 3.1415926535898
?>
Matemáticas en PHP
Función min() y max()
▪ Para encontrar el valor mínimo y ▪ <?php
máximo de una lista de argumentos se echo(min(0, 150, 30, 20, -8, -200)); //
pueden utilizar las siguientes retorna -200
funciones: echo(max(0, 150, 30, 20, -8, -200)); //
▪ min() = retorna el menor valor de una retorna 150
lista de argumentos. ?>
▪ max() = retorna el mayor valor de una
lista de argumentos
Matemáticas en PHP
Función abs()
▪ Esta función retorna el valor absoluto ▪ <?php
(positivo) de un número. echo(abs(-6.7)); // retorna 6.7
?>
Matemáticas en PHP
Función sqrt()
▪ Esta función retorna la raíz cuadrada ▪ <?php
de un número. echo(sqrt(64)); // retorna 8
?>
Matemáticas en PHP
Función round()
▪ Esta función redondea un número tipo ▪ <?php
float aplicando la regla de redondeo echo(round(0.60)); // retorna 1
convencional devolviendo un integer. echo(round(0.49)); // retorna 0
?>
Matemáticas en PHP
Números aleatorios
▪ La función rand() genera un número <?php
aleatorio entre el rango de números echo(rand());
enteros. ?>
▪ Para obtener más control se pueden <?php
agregar 2 parámetros indicando el echo(rand(10, 100));
rango mínimo y máximo del número a ?>
generar.
Matemáticas en PHP
Función pow()
▪ Esta función el cálculo de la potencia <?php
de un número recibiendo como echo(pow(2,4) . "<br>"); // retorna 16
parámetro la base y el exponente. echo(pow(-2,4) . "<br>"); // retorna 16
echo(pow(-2,-4) . "<br>"); // retorna 0.0625
echo(pow(-2,-3.2)); // retorna NaN
?>
Matemáticas en PHP
Tarea #3, segundo periodo
▪ Busque las siguientes funciones matemáticas según aparecen en la siguiente tabla.
▪ Debe de presentar una diapositiva por método.
▪ La diapositiva debe de ser de tipo de diseño “2 contenidos | Two Content”
▪ En el contenido de la izquierda debe de venir la explicación del método y la sintaxis del
método.
▪ En el contenido de la derecha debe de venir un ejemplo completo del código.
▪ Debe de subirlo en el portafolio de evidencias en la carpeta de Evidencias de conocimiento
con el nombre “Matemáticas en PHP # de la [Link]”.
▪ Fecha de entrega: 21 de julio 2023.
Constantes en PHP
▪ Las constantes son una estructura de datos que, como las variables reserven un
espacio en memoria para almacenar un único valor.
▪ A diferencia de las variables, las constantes una vez definidas su valor no puede ser
modificado.
▪ Se declaran de manera diferente que las variables.
▪ Un nombre valido para una constante inicia con una letra o por convención un guion
bajo (_). No se usa el signo de dólar ($) delante del nombre de una constante.
Constantes en PHP
▪ Para crear una constante en PHP se <?php
utiliza la función define()
// Con el case-insensitive en false
▪ define(nombre, valor, case-insensitive), define(“SALUDO", “Esto es PHP!!!");
donde: echo SALUDO;
▪ nombre = al nombre de la constante. ?>
▪ valor = el valor que tomara la constante <?php
▪ case-insensitive = opcional, indicar si la
constante no será case sensitive, por // Con el case-insensitive en true
defecto está en false. define(“SALUDO", “Esto es PHP!!!", true);
echo saludo;
?>
Constantes en PHP
▪ En PHP7 o superior se pueden crear <?php
constantes que almacenen arreglos. define("carros", [
▪ Se utiliza igual la función define() "Alfa Romeo",
"BMW",
"Toyota"
]);
echo carros[0];
?>
Constantes en PHP
▪ Las constantes son por defecto <?php
globales. define(“SALUDO", "Welcome to
▪ Se pueden utilizar en todo el script. [Link]!");

function prueba() {
echo SALUDO;
}

prueba();
?>
Operadores en PHP
▪ Los operadores se utilizan para realizar operaciones entre variables y valores.
▪ En PHP se dividen los operadores en los siguientes grupos:
▪ Aritméticos
▪ Asignación
▪ Comparación
▪ Incremento/Decremento
▪ Lógicos
▪ De String
▪ Arreglos
▪ Asignación condicional
Operadores en PHP
Aritméticos Asignación
Operador Nombre Ejemplo Operador Igual a … Descripción
+ Suma $x + $y x=y x=y x obtiene el valor de y
- Resta $x - $y x obtiene el valor de x sumado
x += y x=x+y
con y
* Multiplicación $x * $y
x obtiene el valor de x restado
/ División $x / $y x -= y x=x-y
con y
% Modulo $x % $y x obtiene el valor de x
x *= y x=x*y
** Potencia $x ** $y multiplicado con y
x obtiene el valor de x dividido
x /= y x=x/y
con y
x obtiene el valor del residuo
x %= y x=x%y
entre x divido con y
Operadores en PHP
Comparación
Operador Nombre Ejemplo Resultado
== Igual $x == $y Retorna verdadero si ambos son iguales
=== Idéntico $x === $y Retorna verdadero si ambos son iguales en valor y en tipo
!= No igual $x != $y Retorna verdadero si ambos no son iguales
<> No igual $x <> $y Retorna verdadero si ambos no son iguales
!== No idéntico $x !== $y Retorna verdadero si ambos no son iguales en valor o en tipo
> Mayor que $x > $y Retorna verdadero si x es mayor que y
< Menor que $x < $y Retorna verdadero si x es menor que y
>= Mayor o igual $x >= $y Retorna verdadero si x es mayor o igual que y
<= Menor o igual $x <= $y Retorna verdadero si x es menor o igual que y
<=> Spaceship $x <=> $y Retorna un número entre -1, 0 o 1. Si x es menor, igual o mayor que y, respectivamente
Operadores en PHP
Incremento / Decremento Lógicos
Operador Nombre Descripción Operador Nombre Ejemplo Resultado
Incrementa x en uno and | && And $x and $y
Retorna verdadero si
++$x Pre incremento ambos son verdaderos
y luego retorna x
Retorna x y luego Retorna verdadero si
$x++ Incremento or | || Or $x || $y alguno de los 2 es
incrementa en uno
verdadero
Decrementa en uno Retorna si y solo si
--$x Pre decremento
x y luego retorna x xor Xor $x xor $y alguno de los 2 es
Retorna x y luego verdadero
$x-- Decremento
decrementa x en uno Retorna verdadero si no
! Not !$x
es verdadero
Operadores en PHP
De String
Operador Nombre Ejemplo Resultado
. Concatenación $txt1 . $txt2 Concatenación del valor de la variable $txt1 con $txt2
$txt1 .= $txt2 Adjunta $txt2 a $txt1
.= Concatenación y asignación
Operadores en PHP
Arreglos
Operador Nombre Ejemplo Resultado
+ Unión $x +$y Unión entre el arreglo x y el y
Retorna verdadero si ambos arreglos tienen los mismos
== Igualdad $x == $y
pares de llave/valor
Retorna verdadero si ambos arreglos tienen los mismos
=== Identidad $x === $y pares de llave/valor en el mismo orden y en el mismo
tipo
!= | <> Desigualdad $x != $y | $x <> $y Retorna verdadero si x no es igual a y
!== No idéntico $x !== $y Retorna verdadero si x no es idéntico a y
Operadores en PHP
Asignación condicional
Operador Nombre Ejemplo Resultado
Retorna el valor de $x. Si expr1 es
?: Ternario $x = expr1 ? expr2 : expr3
verdadero x será expr2, sino será expr3
Retorna el valor de $x. Si expr1 existe y no
?? Coalescencia nula $x = expr1 ?? expr2 es nula x será expr1, sino existe o si es
nula x será expr2.
If … Else … Elseif en PHP
if
▪ Ejecuta un bloque de código si una <?php
condición es verdadera. $t = date("H");
if (condición) {
Código que se ejecuta si la condición es if ($t < "20") {
verdadera; echo “Tenga un buen día!";
} }
?>
If … Else … Elseif en PHP
if … else
▪ Ejecuta el bloque de código del if si una <?php
condición es verdadera y si no lo es $t = date("H");
ejecuta el bloque de código en el else.
if (condición) { if ($t < "20") {
Código que se ejecuta si la consición es echo “Tenga un buen día!";
verdadera; } else {
} else { echo “Tenga una buena noche!";
cófigo que se ejecuta si la condición es }
falsa; ?>
}
If … Else … Elseif en PHP
if … elseif … else
▪ Sentencias que ejecutan diferentes ▪ <?php
códigos si se cumplen alguna de $t = date("H");
diferentes condiciones.
if ($t < "10") {
if (condición) {
echo “Tenga Buena mañana!";
Código que se ejecuta si la condición es
} elseif ($t < "20") {
verdadera;
echo “Tenga buen día!";
} elseif (condición) {
} else {
Código que se ejecuta si la primera
echo “Tenga buena noche!";
condición es falsa pero esta es verdadera;
}
} else {
?>
Código que se ejecuta si todas las
condiciones son falsas;
}
Switch en PHP
▪ Es usado en sustitución al if … elseif … else. <?php
Permite realizar diferentes acciones basado en $favcolor = “rojo";
diferentes condiciones.
switch ($favcolor) {
switch (n) { case “rojo":
case label1: echo “Su color favorito es rojo!";
Código que se ejecuta si n=labe1; break;
break; case “azul":
case label2: echo "Su color favorito es azul!";
Código que se ejecuta si n=label2; break;
break; case “verde":
case label3: echo "Su color favorito es verde!";
Códgo que se ejecuta si n=label3; break;
break; default:
... echo "Su color favorito no es ni rojo, ni azul, ni
default: verde!";
Código que se ejecuta si n no coincide con }
ningún case; ?>
Ciclos en PHP
▪ Un ciclo es una instrucción que permite repetir un bloque de
código un número determinado de veces siempre que una
condición sea cierta.
▪ En PHP se tienen los siguientes:
▪ while
▪ do … while
▪ for
▪ foreach
Ciclos en PHP
while
▪ Ejecuta un bloque de código mientras <?php
que una determinada condición sea $x = 1;
cierta.
while (condición) { while($x <= 5) {
Código que se ejecuta; echo “El número es: $x<br>";
} $x++;
}
?>
Ciclos en PHP
do … while
▪ Ejecuta un bloque de código al menos <?php
una vez y repite lo repite mientras que $x = 1;
una determinada condición sea cierta.
do { do {
Código que se ejecuta; echo “El número es: $x <br>";
} while (condición); $x++;
} while ($x <= 5);
?>
Ciclos en PHP
for
▪ Ejecuta el bloque de código un número <?php
determinado de veces. for ($x = 0; $x <= 10; $x++) {
for (init contedor; prueba de contador; echo “El número es: $x <br>";
incrementar contador) { }
Código que se ejecuta por cada ?>
iteración;
}
Ciclos en PHP
foreach
▪ Se utiliza para hacer recorridos en un <?php
$age = array("Peter"=>"35", "Ben"=>"37",
arreglo utilizando para ello el juego de
"Joe"=>"43");
llave/valor del mismo.
foreach($age as $x => $val) {
foreach ($array as $valor) {
echo "$x = $val<br>";
Código a ejecutar; }
} ?> <?php
$colores = array(“rojo", “verde", “azul", “amarillo");

foreach ($colores as $color) {


echo "$color <br>";
}
?>
Ciclos en PHP
break continue
▪ Se puede utilizar la sentencia break ▪ Se puede utilizar la sentencia continue
para salir de un ciclo si se cumple una para terminar una iteración del ciclo si se
condición interna. cumple una condición interna y continuar
en el ciclo ejecutando otra iteración.
<?php
for ($x = 0; $x < 10; $x++) { <?php
if ($x == 4) { for ($x = 0; $x < 10; $x++) {
break; if ($x == 4) {
} continue;
echo “El número es: $x <br>"; }
} echo “El número es: $x <br>";
?> }
?>
Arreglos en PHP
▪ Un arreglo almacena múltiples valores de <?php
un mismo tipo de dato. $carros = array("Volvo", "BMW", "Toyota");
▪ Puede tener más de un valor al mismo echo “Me gusta " . $ carros[0] . ", " . $
tiempo. carros[1] . " y " . $ carros[2] . ".";
?>
▪ Bajo el mismo nombre.
▪ Para crear un arreglo se utiliza la función
array()
▪ Hay 3 tipos de arreglos en PHP:
▪ Indexados – arreglos con índices numéricos.
▪ Asociativos – arreglos con llaves
▪ Multidimensionales – arreglos que
contienen 2 o más arreglos.
Arreglos en PHP
▪ Para obtener el tamaño de un <?php
arreglo se usa la función count() $carros = array("Volvo", "BMW", "Toyota");
echo count($carros);
?>
Arreglos en PHP
Indexados
▪ Arreglos que poseen índice numérico. <?php
▪ Se pueden crear de 2 formas: $carros = array("Volvo", "BMW",
"Toyota");
▪ $carros = array("Volvo", "BMW", "Toyota");
echo “Me gusta " . $ carros[0] . ", " . $
▪ $cars[0] = "Volvo";
carros[1] . " y " . $ carros[2] . ".";
$cars[1] = "BMW";
?>
$cars[2] = "Toyota";
Arreglos en PHP
Indexados

▪ Para recorrer e imprimir ▪ <?php


$carros = array("Volvo", "BMW",
un arreglo indexado se "Toyota");
$tamano = count($carros);
utiliza el ciclo for.
for($x = 0; $x < $tamano; $x++) {
echo $carros[$x];
echo "<br>";
}
?>
Arreglos en PHP
Asociativos
▪ Son arreglos que usan llaves de <?php
$edad = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
nombres que pueden ser asignadas. echo "Peter tiene " . $edad['Peter'] . " años.";
?>
▪ Hay 2 maneras de crear arreglos
asociativos:
▪ $edad = array("Peter"=>"35",
"Ben"=>"37", "Joe"=>"43");
▪ $age['Peter'] = "35";
$age['Ben'] = "37";
$age['Joe'] = "43";
Arreglos en PHP
Asociativos

▪ Para recorrer e imprimir <?php


$edad = array("Peter"=>"35", "Ben"=>"37",
un arreglo indexado se "Joe"=>"43");

utiliza el ciclo foreach. foreach($edad as $x => $x_valor) {


echo “Llave=" . $x . ", Valor=" . $x_valor;
echo "<br>";
}
?>
Arreglos en PHP
Multidimensionales
▪ Arreglos que pueden contener 2 o más Nombre Stock Vendidos
arreglos. Volvo 22 18
▪ Se utilizan cuando se quiere almacenar BMW 15 13
valores con más de una llave.
Saab 5 2
▪ PHP soporta arreglos con varios niveles
pero, entre más niveles más difícil de Land Rover 17 15
manejar. Los más comunes son los de 2
dimensiones.
▪ La dimensión del arreglo indica el
número de índices que se necesitan para
seleccionar un elemento.
Arreglos en PHP
Multidimensionales
▪ Arreglos que pueden contener 2 o más <?php
$carros = array(
arreglos. array( "Volvo", 22, 18),
array( “BMW", 15, 13),
▪ Se utilizan cuando se quiere almacenar array( “Saab", 5, 2),
array( “Land Rover", 17, 15)
valores con más de una llave. );

▪ PHP soporta arreglos con varios niveles, echo $carros [0][0].": En stock: “ . $carros[0][1] . ", vendidos: “ .
pero entre más niveles más difícil de $carros[0][2] . "<br>";
echo $carros [1][0].": En stock: “ . $carros[1][1] . ", vendidos: “ .
manejar. Los más comunes son los de 2 $carros[1][2] . "<br>";
dimensiones. echo $carros [3][0].": En stock: “ . $carros[3][1] . ", vendidos: “ .
$carros[3][2] . "<br>";
?>
▪ La dimensión del arreglo indica el
número de índices que se necesitan para
seleccionar un elemento.
Arreglos en PHP
Multidimensionales
▪ También se puede usar un ciclo for <?php
$carros = array(
dentro de otro ciclo for para array( "Volvo", 22, 18),
array( “BMW", 15, 13),
obtener los elementos de los array( “Saab", 5, 2),
índices del arreglo array( “Land Rover", 17, 15)
);
multidimensional (si se mantiene el
uso de 2 niveles). for ($fil = 0; $fil < 4; $fil++) {
echo "<p><b>Fila número $fil</b></p>";
echo "<ul>";
for ($col = 0; $col < 3; $col++) {
echo "<li>".$carros[$fil][$col]."</li>";
}
echo "</ul>";
}
?>
Arreglos en PHP
Ordenando arreglos
▪ Los elementos de un arreglo pueden ser ordenados alfabética o numéricamente,
de forma ascendente o descendente.
▪ Para eso se pueden utilizar algunas de estas funciones:
▪ sort() – ordena de forma ascendente
▪ rsort() – ordena de forma descendente
▪ asort() – ordena de forma ascendente, de acuerdo al valor.
▪ ksort() – ordena de forma ascendente, de acuerdo a la llave.
▪ arsort() – ordena de forma descendente, de acuerdo al valor.
▪ krsort() – ordena de forma descendente, de acuerdo a la llave.
Arreglos en PHP
sort() rsort()
▪ Se utiliza para ordenar los elementos de ▪ Se utiliza para ordenar los elementos de
un arreglo de forma ascendente. un arreglo de forma descendente.
▪ A a z, 0 a 9 ▪ 9 a 0, z a A
<?php <?php
$carros = array("Volvo", "BMW", "Toyota"); $carros = array("Volvo", "BMW", "Toyota");
sort($carros); rsort($carros);
?> ?>
<?php <?php
$numeros = array(4, 6, 2, 22, 11); $numeros = array(4, 6, 2, 22, 11);
sort($numeros); rsort($numeros);
?> ?>
Arreglos en PHP
asort() ksort()
▪ Se utiliza para ordenar los elementos de un ▪ Se utiliza para ordenar los elementos de un
arreglo de forma ascendente. arreglo de forma descendente.
▪ Utilizando los valores. ▪ 9 a 0, z a A
▪ A a z, 0 a 9 <?php
$carros = array("Volvo", "BMW", "Toyota");
<?php rsort($carros);
$edades = array("Peter"=>"35", "Ben"=>"37", ?>
"Joe"=>"43");
asort($edades); <?php
?> $numeros = array(4, 6, 2, 22, 11);
rsort($numeros);
<?php ?>
$numeros = array(4, 6, 2, 22, 11);
sort($numeros);
?>
Arreglos en PHP
sort() rsort()
▪ Se utiliza para ordenar los elementos de ▪ Se utiliza para ordenar los elementos de
un arreglo de forma ascendente. un arreglo de forma descendente.
▪ A a z, 0 a 9 ▪ 9 a 0, z a A
<?php <?php
$carros = array("Volvo", "BMW", "Toyota"); $carros = array("Volvo", "BMW", "Toyota");
sort($carros); rsort($carros);
?> ?>
<?php <?php
$numeros = array(4, 6, 2, 22, 11); $numeros = array(4, 6, 2, 22, 11);
sort($numeros); rsort($numeros);
?> ?>
Funciones en PHP
▪ Una función es un bloque de código que puede ser usado
en múltiples ocasiones en diferentes partes del código.
▪ No se ejecuta automáticamente cuando la página se
carga.
▪ Una función puede ser llamada desde otra función.
▪ Al igual que con otros lenguajes de programación. La
verdadera funcionabilidad de PHP viene de sus funciones.
Funciones en PHP
Preconstruidas Definidas por el usuario
▪ Preconstruidas: PHP cuenta con más de 1000 ▪ Para crear una función se debe utilizar la
funciones preconstruidas en adición de las palabra reservada function.
que puede crear el programador.
▪ Seguido por el nombre de la función.
▪ En este documento se cubrirán algunas. Para
más referencia se pueden visitar sitios como ▪ Entre paréntesis, de manera opcional se
[Link] o [Link]. pueden indicar los argumentos de entrada.
▪ Y seguidamente el bloque de código que se
ejecutará cuando se llame a la función entre
corchetes.
function nombreFuncion()
{
código que será ejecutado;
}
Funciones en PHP
<?php
function nombreFuncion() {
código a ser ejecutado;
}
?>

<?php
function writeMsg() {
echo “Hola mundo!";
}

writeMsg(); // llamada de la función


?>
Funciones en PHP
▪ Se puede ingresar información a las ▪ <?php
funciones a través de sus argumentos. function familyName($fname, $year) {
Un argumento es como una variable. echo "$fname Refsnes. Nació en $year
▪ Los argumentos son especificados <br>";
después del nombre de la función, entre }
paréntesis. Se pueden agregar la
cantidad de argumentos que hagan falta familyName("Hege", "1975");
separados por coma. familyName("Stale", "1978");
familyName("Kai Jim", "1983");
?>
Funciones en PHP
Enunciado Ejemplo
Se trata de escribir un script que diga si un Si el número es 17, el programa debe decir
número es par o es impar. que es impar.
Recordemos que un número es par si al
dividirlo por 2 da como resto 0.
Un programa que pida un número y diga si Si num1 es 2 debe decir que num1 es
es positivo o negativo. El cero se considera Positivo
positivo
Funciones en PHP
▪ Al igual que con las variables en PHP no se necesita declarar el tipo de valor para los
argumentos.
▪ Esto permite cambiar el tipo de valor que se le ingresa a un argumento.
▪ En PHP 7 se agrega la declaración strict lo que permite dar un tipo de valor a un
argumento de función en su creación.
▪ Esto hará que el programa produzca un “fatal error” si el valor dado no coincide con
el del tipo de variable.
Funciones en PHP
Función sin el strict Función con el strict
<?php <?php declare(strict_types=1); //
function addNumbers(int $a, int $b) { requerimiento de strict
return $a + $b;
} function addNumbers(int $a, int $b) {
echo addNumbers(5, "5 dias"); return $a + $b;
// como strict no esta habilitado "5 dias" }
es cambiado por int(5), y retornara 10 echo addNumbers(5, "5 dias");
?> // como strict esta habilitado y "5 dias"
no es un integer, se retornara un error
?>
Funciones en PHP
<?php declare(strict_types=1); // requerimiento
Parámetros por defecto
strict
▪ Se puede asignar un valor por defecto function setHeight(int $minheight = 50) {
a un argumento en PHP. echo “La altura es: $minheight <br>";
▪ Si cuando se llama a una función no se }
le da un valor, la función asignara el
valor dado por defecto a la misma. setHeight(350);
setHeight(); // usara el valor por defecto de 50
setHeight(135);
setHeight(80);
?>
Funciones en PHP
<?php declare(strict_types=1); // requerimiento strict
Retornar valores
▪ Como en otros lenguajes de programación, las function sum(int $x, int $y) {
funciones de PHP permiten también retornar $z = $x + $y;
valores. return $z;
}
▪ Para esto se debe de usar la sentencia return.
▪ PHP 7 se soporta la declaración del tipo de dato echo "5 + 10 = " . sum(5, 10) . "<br>";
a retornar. echo "7 + 13 = " . sum(7, 13) . "<br>";
echo "2 + 4 = " . sum(2, 4);
▪ Como en la declaración del tipo de argumento se ?>
necesita del strict para poder declararlo y de no
coincidir el tipo de dato dará un "Fatal Error". <?php declare(strict_types=1); // strict requirement
function addNumbers(float $a, float $b) : float {
▪ Para declarar el tipo de dato a retornar, se return $a + $b;
utilizan los 2 puntos ( : ) y escribir el tipo de dato }
después del cierre del paréntesis y antes de la echo addNumbers(1.2, 5.2);
apertura de los corchetes a la hora de declarar ?>
la función.
Funciones en PHP
Pasando argumentos por referencia
▪ En PHP los argumentos normalmente <?php
se pasan por valor, lo que significa que function add_five(&$value) {
se hace una copia del valor del mismo $value += 5;
haciendo que el valor original de dicho }
parámetro no puede ser modificado.
▪ Al pasar un argumento por referencia $num = 2;
al cambiar el valor dentro de la función add_five($num);
también se cambia el valor original. echo $num;
?>
▪ Para esto se utiliza el operador & antes
de la declaración del argumento.
Super globales de PHP
▪ Las variables super globales fueron introducidas en PHP 4.1.0.
▪ Son variables pre construidas que siempre están disponibles en todos los niveles del programa.
▪ Algunas variables predefinidas en PHP son Super globales, lo que significa que siempre están
habilitadas sin importar el nivel en donde están. Pueden ser accedidas desde cualquier función, clase
o archivo.
▪ Las variables super globales de PHP son:
• $GLOBALS
• $_SERVER
• $_REQUEST
• $_POST
• $_GET
• $_FILES
• $_ENV
• $_COOKIE
• $_SESSION
Super globales de PHP
<?php
$GLOBALS
$x = 75;
▪ Es usada para que cualquier variable $y = 25;
global pueda ser accedida desde
cualquier parte en un script de PHP. function suma() {
▪ PHP almacena todas las variables $GLOBALS['z'] = $GLOBALS['x'] +
globales en un arreglo llamado $GLOBALS['y'];
$GLOBALS[nombreVariable]. }

suma();
echo $z;
?>
Super globales de PHP
<?php
$_SERVER
echo $_SERVER['PHP_SELF'];
▪ Almacena información sobre echo "<br>";
cabeceras, rutas y locaciones de los echo $_SERVER['SERVER_NAME'];
scripts. echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>
Super globales de PHP
Elemento/Código Descripción
Returns the filename of the currently executing
$_SERVER['PHP_SELF']
script
Returns the version of the Common Gateway
$_SERVER['GATEWAY_INTERFACE']
Interface (CGI) the server is using
$_SERVER['SERVER_ADDR'] Returns the IP address of the host server
Returns the name of the host server (such as
$_SERVER['SERVER_NAME']
[Link])
Returns the server identification string (such as
$_SERVER['SERVER_SOFTWARE']
Apache/2.2.24)
Returns the name and revision of the
$_SERVER['SERVER_PROTOCOL']
information protocol (such as HTTP/1.1)
Super globales de PHP
Elemento/Código Descripción
Returns the request method used to access the
$_SERVER['REQUEST_METHOD']
page (such as POST)
Returns the timestamp of the start of the
$_SERVER['REQUEST_TIME']
request (such as 1377687496)
Returns the query string if the page is accessed
$_SERVER['QUERY_STRING']
via a query string
Returns the Accept header from the current
$_SERVER['HTTP_ACCEPT']
request
Returns the Accept_Charset header from the
$_SERVER['HTTP_ACCEPT_CHARSET']
current request (such as utf-8,ISO-8859-1)
Returns the Host header from the current
$_SERVER['HTTP_HOST']
request
Super globales de PHP
Elemento/Código Descripción
Returns the complete URL of the current page
$_SERVER['HTTP_REFERER'] (not reliable because not all user-agents
support it)
Is the script queried through a secure HTTP
$_SERVER['HTTPS']
protocol
Returns the IP address from where the user is
$_SERVER['REMOTE_ADDR']
viewing the current page
Returns the Host name from where the user is
$_SERVER['REMOTE_HOST']
viewing the current page
Returns the port being used on the user's
$_SERVER['REMOTE_PORT']
machine to communicate with the web server
Super globales de PHP
Elemento/Código Descripción
Returns the absolute pathname of the currently
$_SERVER['SCRIPT_FILENAME']
executing script
Returns the value given to the SERVER_ADMIN
directive in the web server configuration file (if
$_SERVER['SERVER_ADMIN'] your script runs on a virtual host, it will be the
value defined for that virtual host) (such as
someone@[Link])
Returns the port on the server machine being
$_SERVER['SERVER_PORT'] used by the web server for communication
(such as 80)
Returns the server version and virtual host
$_SERVER['SERVER_SIGNATURE'] name which are added to server-generated
pages
Super globales de PHP
Elemento/Código Descripción
Returns the file system based path to the
$_SERVER['PATH_TRANSLATED']
current script
$_SERVER['SCRIPT_NAME'] Returns the path of the current script
$_SERVER['SCRIPT_URI'] Returns the URI of the current page
Super globales de PHP
<form method="post" action="<?php echo
$_REQUEST $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
▪ Se utiliza para recoger datos de un formulario <input type="submit">
HTML por cualquiera de los 2 métodos GET o </form>
POST.
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// recolecta los datos del campo fname
$name = $_REQUEST['fname'];
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>
Super globales de PHP
<form method="post" action="<?php echo
$_POST $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
▪ Se utiliza para recoger datos de un formulario <input type="submit">
HTML por medio del método POST del </form>
formulario.
▪ Este método es ampliamente utilizado para <?php
pasar variables por ser el “más seguro” pero if ($_SERVER["REQUEST_METHOD"] == "POST") {
es más lento que GET. // recolectar data del valor del input
$name = $_POST['fname'];
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>
Super globales de PHP
<body>
$_GET
<a
▪ Se utiliza para recoger datos de un href="test_get.php?subject=PHP&web=W
formulario HTML por medio del método [Link]">Test $GET</a>
GET del formulario. </body>
▪ También se utiliza para recolectar
datos desde el URL. <?php
echo "Study " . $_GET['subject'] . " at " .
▪ Este método es menos utilizado que
$_GET['web'];
POST por ser menos seguro que el
?>
anterior, pero es más rápido.
Expresiones regulares PHP
▪ Una expresión es una secuencia de caracteres que forman un patrón de búsqueda.
▪ Cuando se busca data en un texto, se puede utilizar un patrón de búsqueda para
encontrar lo que se está buscando.
▪ Una expresión regular puede ser un carácter único, o un patrón más complicado.
▪ Son usados para realizar todo tipo de búsqueda de textos y reemplazo de texto.
Expresiones regulares PHP
▪ Sintaxis
▪ En PHP las expresiones regulares son Strings compuesto por delimitadores,
un patrón y modificadores adicionales.
▪ $exp = "/w3schools/i"; - en este caso / es el delimitador, w3schools es el
patrón y i es el modificador que indica que indica que la búsqueda será no
será sensitiva.
▪ El delimitador puede ser cualquier carácter que no sea una letra, numero,
backslash (\) o espacio. Lo más común es usar el slash (/), pero nada impide
usar otros caracteres como # o |.
Expresiones regulares PHP
▪ PHPprovee una variedad de funciones que
permiten utilizar expresiones regulares.
▪ preg_match()
▪ preg_match_all()
▪ preg_replace()
Expresiones regulares PHP
<?php
preg_match()
$str = "Visit W3Schools";
▪ Retorna 1 si el patrón fue encontrado $pattern = "/w3schools/i";
en un String y 0 si no lo fue. echo preg_match($pattern, $str); //
Salida 1
?>
Expresiones regulares PHP
<?php
preg_match_all()
$str = "The rain in SPAIN falls mainly on
▪ Retorna el número de veces que un the plains.";
patrón fue encontrado en un String, el $pattern = "/ain/i";
cual también puede ser 0 echo preg_match_all($pattern, $str); //
Salida 4
?>
Expresiones regulares PHP
<?php
preg_replace()
$str = "Visita Microsoft!";
▪ Retorna un String con reemplazando $pattern = "/microsoft/i";
todas las coincidencias que hubo en el echo preg_replace($pattern,
String "W3Schools", $str); // Salida "Visita
W3Schools!"
?>
Expresiones regulares PHP
Modificadores de expresiones regulares Modificador Descripción
▪ Pueden cambiar como la búsqueda es i Hace una búsqueda no case sensitive
realizada. m Realiza una búsqueda de varias líneas (los
patrones que buscan el principio o el final de
una cadena coincidirán con el principio o el
final de cada línea)
u Permite la coincidencia correcta de patrones
codificados en UTF-8
Expresiones regulares PHP
Patrones de expresiones regulares Expresión Descripción
▪ Los paréntesis cuadrados son [abc] Encuentra un carácter entre los que están en
los paréntesis cuadrados.
utilizados para encontrar rangos de
caracteres. [^abc] Encuentra un carácter que no esté entre los
paréntesis cuadrados.
[0-9] Encuentra un carácter entre los que están en
el paréntesis.
Expresiones regulares PHP Meta carácter Descripción
Pipeline (|) Encuentra coincidencia con cualquiera de los
Meta caracteres patrones separados por | como en:
gato|perro|pez
▪ Estos son caracteres con un significado
Punto (.) Encuentra solo una instancia de cualquier
especial. carácter
Hat (^) Encuentra coincidencia al principio de un String
como en: ^Hola
$ Encuentra coincidencia al final de un String
como en: mundo$
\d Encuentra un digito
\s Encuentra un espacio vacío
\b Encuentra coincidencia al principio o al final de
un String como: \bHola o Hola\b
\uxxxx Encuentra el carácter Unicode especificado por
el número hexadecimal en xxxx
Expresiones regulares PHP
Cuantificador Descripción
Cuantificadores n+ Coindice con cualquiera Strings que contenga al
menos una n
▪ Definen cantidades n* Coincide con cualquier cadena que contenga
cero o más ocurrencias de n
n? Coincide con cualquier cadena que contenga
cero o una ocurrencia de n
n{x} Coincide con cualquier cadena que contenga una
secuencia de X n’s
n{x,y} Coincide con cualquier cadena que contenga una
secuencia de X a Y n’s
n{x,} Coincide con cualquier cadena que contenga una
secuencia de al menos X n’s
Expresiones regulares PHP
Grupos
▪ Se pueden usar paréntesis ( ) para <?php
aplicar cuantificadores a un grupo de $str = "Apples and bananas.";
patrones. $pattern = "/ba(na){2}/i";
▪ También pueden ser usados como parte echo preg_match($pattern, $str); //
del patrón a ser usado para la Salida 1
coincidencia. ?>
Manejo de formularios con PHP
▪ Las variables Super globales $_GET y $_POST son utilizadas para recolectar datos de
formularios.
▪ GET y POST crean un arreglo asociativo. En donde las llaves son los names de los
formularios y los valores son los datos que ingresa el usuario.
▪ Al ser super globales, se pueden accesar desde cualquier parte del script PHP.
▪ $_GET, es un arreglo de variables pasados via parámetros de URL.
▪ $_POST, es un arreglo de variables pasados de forma encapsulada vía HTTP POST
¿Cuándo usar?
GET POST
▪ Los datos enviados por el método GET son visibles por ▪ Los datos enviados por el método POST son invisibles
cualquiera. por otros.
▪ También tiene un límite de 2000 caracteres a pasar. ▪ No tiene límite en la cantidad de caracteres a pasar.
▪ Es posible guardar la consulta en un bookmark ya que ▪ POST soporta funcionalidades avanzadas como el
es pasado por el URL. Lo que puede ser útil en algunos poder subir archivos a un servidor.
casos.
▪ Sin embargo, como las variables no se muestran en la
▪ Puede ser usado para pasar datos no sensibles. URL no pueden ser guardas en bookmarks.
▪ Nunca se debe usar GET para pasar información
sensible.
Validación de formularios con
PHP
▪ Es importante pensar en la seguridad cuando se procesan formularios.
▪ Se debe tratar de evitar usar el método GET para enviar información a PHP. Esto
porque la data puede ser manipulada de forma malintencionada.
▪ Usar la función htmlspecialchars() puede ayudar a evitar Cross Site Scripting (XSS)
cuando se usa la variable super global $_SERVER[“PHP_SELF”].
▪ Veamos un ejemplo:
Validación de formularios con
PHP
▪ Asumamos que tenemos el siguiente formulario en una página llamada
[Link].
<form action="<?php echo $_SERVER["PHP_SELF"];?>“ method=“METHOD" >
▪ Si un usuario ingresa la siguiente url: “[Link]
el código del formulario lo traducirá como:
<form method="post" action=“[Link]”>
▪ Hasta ahí, todo bien.
Validación de formularios con
PHP
▪ Ahora asumamos que el usuario ingresa el siguiente url:
[Link] sido
hackeado')%3C/script%3E
▪ Esto será traducido en el código como:
<form method="post" action="[Link]/”><script>alert(‘haz sido
hackeado')</script>
▪ La URL inserta un script JS en el código que abrirá una ventana emergente con el
mensaje entre comillado.
▪ Se debe tener cuidado con la posibilidad que se inserten script por medio de URL ya
que estos podrían redireccionar a los usuarios a sitios maliciosos.
Validación de formularios con
PHP
▪ ¿Como se puede evitar?
▪ De tener que usar el super global $_SERVER[“PHP_SELF”] se recomienda usar la
función: htmlspecialchars(); y como parámetro ingresar el super global, obteniendo el
siguiente código:
<form method="post“ action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>”>
▪ La función convertirá cualquier carácter especial en simple texto plano HTML por lo
que si se intenta usar el exploit anterior se obtendrá esta salida:
<form method="post"
action=“[Link]/&quot;&gt;&lt;script&gt;alert('hacked')&lt;/script&gt;">
▪ Esto ahora que se produzca un error en la página pero el intento de exploit fallará.
Validación de formularios con PHP
▪ Retomando: <?php
1. Lo primero que se debe de hacer para la validación // inicialización de variables
$nom = $email = $genero = $mensaje = $url = "";
con PHP es pasar todas las variables por la función
htmlspecialchars() para evitar XSS.
if ($_SERVER["REQUEST_METHOD"] == "POST") {
2. Lo siguiente es eliminar todos los espacios en $nom = probar_entradas($_POST["nom"]);
blanco adicionales de las entradas de los usuarios, $email = test_input($_POST["email"]);
usando la función trim(). $website = test_input($_POST[“url"]);
$comment = test_input($_POST[“mensaje"]);
3. Eliminar los backslash de las entrdas de los
$gender = test_input($_POST["genero"]);
usuarios, usando la función stripslashes().
}
4. Lo siguiente es verificar que las entradas estén en el
formato correcto deseado. function probarEntradas($data) {
5. Lo último es verificar que todos los campos $data = trim($data);
requeridos hayan sido llenados. $data = stripslashes($data);
$data = htmlspecialchars($data);
▪ Para esto se puede crear una función que realice todas o return $data;
al menos la mayoría de esas verificaciones. Por }
ejemplos probarEntradas(); ?>
Campos requeridos en formularios
con PHP
<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";

▪ Si se necesita corroborar si un $name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {

campo este vacío o no, se puede


if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);

utilizar la función PHP de }

if (empty($_POST["email"])) {

empty().
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
}

▪ Igual manera se puede agregar if (empty($_POST["website"])) {


$website = "";
} else {

la función probarEntradas()
$website = test_input($_POST["website"]);
}

creada anteriormente junto con


if (empty($_POST["comment"])) {
$comment = "";
} else {
$comment = test_input($_POST["comment"]);

un if … else para parsear las }

if (empty($_POST["gender"])) {

entradas del usuario.


$genderErr = "Gender is required";
} else {
$gender = test_input($_POST["gender"]);
}
}
?>
Campos requeridos en formularios
con PHP
<form method="post" action="<?php echo
htmlspecialchars($_SERVER["PHP_SELF"]);?>">

▪ Luego en el formulario HTML se Name: <input type="text" name="name">

puede agregar un pequeño script


<span class="error">* <?php echo $nameErr;?></span>
<br><br>
E-mail:
PHP para imprimir las variables <input type="text" name="email">
<span class="error">* <?php echo $emailErr;?></span>

con los mensajes de error. <br><br>


Website:
<input type="text" name="website">
<span class="error"><?php echo $websiteErr;?></span>
<br><br>
Comment: <textarea name="comment" rows="5" cols="40"></textarea>
<br><br>
Gender:
<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male
<input type="radio" name="gender" value="other">Other
<span class="error">* <?php echo $genderErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit">

</form>
Validar los campos de nombre y
correo en formularios con PHP
▪ Se puede hacer uso de las expresiones regulares para hacer este tipo
de validaciones:
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z-' ]*$/",$name)) {
$nameErr = "Only letters and white space allowed";
}
$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-
9+&@#\/%=~_|]/i",$website)) {
$websiteErr = "Invalid URL";
}
Validar los campos de nombre y
correo en formularios con PHP
▪ En el caso de los correos electrónicos se puede
utilizar la función filter_var()
$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
PHP & MySQL
PHP & MySQL
▪ Con PHP se puede conectar y manipular bases de datos.
▪ MySQL es el gestor de base de datos más popular para usar con PHP.
PHP & MySQL
¿Qué es MySQL?
▪ Sistema de base de datos usado para la web
▪ Sistema de base de datos que corre en un servidor
▪ Ideal para pequeñas y grandes aplicaciones
▪ Rápido, confiable y fácil de usar
▪ Usa el lenguaje estándar SQL
▪ Se ejecuta en múltiples plataformas
▪ Gratis de descargar y usar
▪ Desarrollado, distribuido y soportado por Oracle Corporation
PHP & MySQL
▪ Los datos en MySQL se almacenan en tablas.
▪ Una tabla es una colección de datos relacionados y consiste en columnas y filas.
▪ Se utilizan las queries SQL para que PHP puedan consultar o manipular los datos en
las tablas.
PHP & MySQL – Conectarse a la BD
▪ Antes de acceder a la data en una base de datos, se necesita primero conectar con el
servidor que hospeda dicha base de datos.
▪ En PHP hay 2 maneras de utilizar MySQL:
▪ MySQLi extension
▪ PDO (PHP Data Objects)
▪ Se puede utilizar cualquiera. La diferencia es que PDO puede ser usado para cualquier
gestor de base de datos y MySQLi solo puede ser usado para aquellos que sean
parecidos a MySQL, como MariaDB
PHP & MySQL – Conectarse a la BD
MySQLi PDO
<?php <?php
$servername = “servidor"; $servername = “servidor";
$username = “usuario"; $username = “usuario";
$password = “contraseña"; $password = “contraseña";

// Crear la conexión try {


$conn = new mysqli($servername, $username, $password); $conn = new
PDO("mysql:host=$servername;dbname=myDB",
// Verificar la conexión $username, $password);
if ($conn->connect_error) { // setear el modo de error PDO para excepciones
die(“Conexión fallida: " . $conn->connect_error); $conn->setAttribute(PDO::ATTR_ERRMODE,
} PDO::ERRMODE_EXCEPTION);
echo "Conexión exitosa"; echo "Conexión exitosa";
?> } catch(PDOException $e) {
echo "Conexión fallida: " . $e->getMessage();
}
?>
PHP & MySQL – Conectarse a la BD
▪ Por temas de seguridad siempre se debe de cerrar la conexión a la base de datos.
▪ De ese modo se ayuda a evitar hackeos mediante inyección de códigos SQL.
▪ MySQLi
▪ $conn->close();
▪ PDO
▪ $conn = null;
PHP & MySQL – Crear una base de
datos
▪ Una base de datos consiste en una o varias tablas.
▪ Es necesario que el usuario con el que se haya hecho la conexión cuente con los
privilegios correspondientes para crear o borrar bases de datos.
▪ Se recomienda no utilizar el usuario root del servidor de bases de datos.
▪ Se utiliza la sentencia SQL, CREATE DATABASE
PHP & MySQL – Crear una base de datos

MySQLi PDO
<?php <?php
// Conexión a la base de datos // Conexión a la base de datos
$include(“[Link]”); $include(“[Link]”);

// Creación de la base de datos //Creación de la base de datos


$sql = "CREATE DATABASE myDB"; $sql = "CREATE DATABASE myDBPDO";
if ($conn->query($sql) === TRUE) { $conn->exec($sql);
echo “Base de datos creada"; echo “Base de datos creada<br>";
} else { } catch(PDOException $e) {
echo "Error creando la base de datos: " . echo $sql . "<br>" . $e->getMessage();
$conn->error; }
}
$conn = null;
$conn->close(); ?>
?>
PHP & MySQL – Crear tablas
▪ La tabla de una base de datos tiene su propio nombre único y consiste en filas y
columnas.
▪ Se utiliza la sentencia SQL, CREATE TABLE.
▪ Es importante saber que en el archivo en donde se tiene la conexión al servidor de
base de datos se tiene que incluir un parámetro para la conexión a la base de datos.
PHP & MySQL – Crear tablas
<?php <?php
// Conexión a la base de datos // Conexión a la base de datos
include(conexió[Link]); $include(“[Link]”);
// Check connection
//Creación de la tabla
$sql = "CREATE TABLE Visitas (
// sql to create table id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
$sql = "CREATE TABLE Visitas( firstname VARCHAR(30) NOT NULL,
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, lastname VARCHAR(30) NOT NULL,
nombre VARCHAR(30) NOT NULL, email VARCHAR(50),
apellido VARCHAR(30) NOT NULL, reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON
correo VARCHAR(50), UPDATE CURRENT_TIMESTAMP
registro TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON )";
UPDATE CURRENT_TIMESTAMP $conn->exec($sql);
)"; echo “Tabla creada<br>";
} catch(PDOException $e) {
if ($conn->query($sql) === TRUE) { echo $sql . "<br>" . $e->getMessage();
echo "Tabla creada exitosamente"; }
} else {
echo "Error al crear la tabla: " . $conn->error; $conn = null;
} ?>

$conn->close();
?>
PHP & MySQL – Insertar data
▪ Por lo general la creación de base de datos y tablas no se hará con PHP sino desde la
misma base de datos.
▪ Es la inserción de datos que se suele hacer a través de PHP haciendo uso de los datos que
el usuario pasa a través de formularios en HTML.
▪ Sin embargo, para esta operación se necesita que exista una base de datos operacional y
una tabla en donde insertar dichos datos.
▪ Hay unas reglas a seguir:
▪ La consulta SQL debe ir entre comillas.
▪ Los Strings de SQL deben ir entre comillas para el SQL (utilizar 2 sistemas de comillas)
▪ Los valores numéricos no necesitan ir entre comillas
▪ La palabra Null no debe ir entre comillas
PHP & MySQL – Insertar data
<?php <?php
// Conexión a la base de datos // Conexión a la base de datos
include(conexió[Link]); $include(“[Link]”);
// Check connection
//Inserción de los datos
$sql = "INSERT INTO Visitas (nombre, apellido, correo)
// sql to create table VALUES ('John', 'Doe', 'john@[Link]')";
$sql = "INSERT INTO Visitas (nombre, apellido, correo) $conn->exec($sql);
VALUES ('John', 'Doe', 'john@[Link]')"; echo “Nuevo registro<br>";
} catch(PDOException $e) {
if ($conn->query($sql) === TRUE) { echo $sql . "<br>" . $e->getMessage();
echo “Nuevo registro"; }
} else {
echo “Error en el registro: “.$sql.”<br>”.$conn->error; $conn = null;
} ?>

$conn->close();
?>
PHP & MySQL – Obtener el ultimo ID
▪ Se puede sacar información de las tablas una vez hecho el ingreso.
▪ Por ejemplo. Normalmente los IDs se registran de forma automática utilizando la
función Auto_Increment de SQL.
▪ Se puede obtener ese último ID generado utilizando el método insert_.
PHP & MySQL – Obtener el ultimo ID
<?php <?php
// Conexión a la base de datos // Conexión a la base de datos
include(conexió[Link]); $include(“[Link]”);
// Check connection
//Inserción de los datos
$sql = "INSERT INTO MyGuests (nombre, apellido, correo)
// sql to create table VALUES ('John', 'Doe', 'john@[Link]')";
$sql = "INSERT INTO Visitas (nombre, apellido, correo) $conn->exec($sql);
VALUES ('John', 'Doe', 'john@[Link]')"; $last_id = $conn->lastInsertId();
echo “Nuevo registro. El último ID es: " . $last_id;
if ($conn->query($sql) === TRUE) { } catch(PDOException $e) {
$last_id = $conn->insert_id; echo $sql . "<br>" . $e->getMessage();
echo “Nuevo registro. El último ID es “.$last_id; }
} else {
echo “Error en el registro: “.$sql.”<br>”.$conn->error; $conn = null;
} ?>

$conn->close();
?>
PHP & MySQL – Insertar registros
multiples
▪ Se puede hacer una inserción de registros múltiples utilizando la función
multi_query() en el caso de MySQLi.
▪ En el caso de PDO se debe hacer la función exec() múltiples veces junto con las
funciones beginTrasaction() y commit().
PHP & MySQL – Insertar registros
múltiples
<?php <?php
// Conexión a la base de datos // Conexión a la base de datos
include(conexió[Link]); $include(“[Link]”);
// Check connection
//Creación de la base de datos
// Iniciar la transacción
// sql to create table $conn->beginTransaction();
$sql = "INSERT INTO Visitas (nombre, apellido, correo) // Sentencias SQL
VALUES ('John', 'Doe', 'john@[Link]')"; $conn->exec("INSERT INTO Visitas (nombre, apellido, correo)
VALUES ('John', 'Doe', 'john@[Link]')");
if ($conn->multi_query($sql) === TRUE) { $conn->exec("INSERT INTO Visitas (nombre, apellido, correo)
echo “Nuevos registros"; VALUES ('Mary', 'Moe', 'mary@[Link]')");
} else { $conn->exec("INSERT INTO Visitas (nombre, apellido, correo)
echo “Error en el registro: “.$sql.”<br>”.$conn->error; VALUES ('Julie', 'Dooley', 'julie@[Link]')");
}
// Realizar la transacción
$conn->close(); $conn->commit();
?> echo “Nuevos registros <br>";
} catch(PDOException $e) {
// hace un vuelta atras si algo pasa
$conn->rollback();
echo "Error: " . $e->getMessage();
}

$conn = null;
?>
PHP & MySQL - Select
▪ La sentencia Select se utiliza para consultar información en una o varias tablas en la
base de datos.
▪ Se puede usar el wildcard asteristo (*) para seleccionar todas las columnas o indicar
que columnas y en que orden se quiere mostrar la data.
PHP & MySQL - Select
MySQLi PDO
<?php <?php
// Conectar con la base de datos // Conectar con la base de datos
includo(“[Link]”); include(“[Link]”);
// Consulta SQL // Consulta SQL
$sql = "SELECT id, nombre, apellido FROM Visitas"; $sql = "SELECT id, nombre, apellido FROM Visitas";
$result = $conn->query($sql); $result = $conn->query($sql);

if ($result->num_rows > 0) { if ($result->num_rows > 0) {


// Salida de los datos por fila echo "<table><tr><th>ID</th><th>Nombre</th><th>Apellido</th></tr>";
while($row = $result->fetch_assoc()) { //Salida de los datos por fila
echo "id: " . $row["id"]. " - Nombre: " . $row[“nombre"]. " " . while($row = $result->fetch_assoc()) {
$row[“apellido"]. "<br>"; echo "<tr><td>".$row["id"]."</td><td>".$row[“nombre"]."
} ".$row[“apellido"]."</td></tr>";
} else { }
echo "0 resultados"; echo "</table>";
} } else {
$conn->close(); echo "0 resultados";
?> }
$conn->close();
?>
PHP & MySQL – Filtrar registros
▪ Se pueden filtrar registros utilizando la cláusula WHERE.
▪ Se utiliza para extraer solo los registros que cumplen específicamente una
determinada condición.
PHP & MySQL – Filtrar registros
MySQLi PDO
<?php <?php
// Conectar con la base de datos // Conectar con la base de datos
includo(“[Link]”); include(“[Link]”);
// Consulta SQL // Consulta SQL
$sql = "SELECT id, nombre, apellido FROM Visitas WHERE apellido = Doe"; $sql = "SELECT id, nombre, apellido FROM Visitas WHERE apellido = Doe";
$result = $conn->query($sql); $result = $conn->query($sql);

if ($result->num_rows > 0) { if ($result->num_rows > 0) {


// Salida de los datos por fila echo "<table><tr><th>ID</th><th>Nombre</th><th>Apellido</th></tr>";
while($row = $result->fetch_assoc()) { //Salida de los datos por fila
echo "id: " . $row["id"]. " - Nombre: " . $row[“nombre"]. " " . while($row = $result->fetch_assoc()) {
$row[“apellido"]. "<br>"; echo "<tr><td>".$row["id"]."</td><td>".$row[“nombre"]."
} ".$row[“apellido"]."</td></tr>";
} else { }
echo "0 resultados"; echo "</table>";
} } else {
$conn->close(); echo "0 resultados";
?> }
$conn->close();
?>
PHP & MySQL – Ordenar registros
▪ Se pueden ordenar los registros obtenidos de una consulta de forma ascendente
(menor a mayor) o descendente (mayor a menor) utilizando la cláusula ORDER BY.
▪ Por defecto MySQL ordena los registros de forma ascendente.
▪ Para eso se le indica a ORDER BY como quiere que se orden los registros:
▪ ASC, para ascendente
▪ DESC, para descendente
PHP & MySQL – Ordenar registros
MySQLi PDO
<?php <?php
// Conectar con la base de datos // Conectar con la base de datos
includo(“[Link]”); include(“[Link]”);
// Consulta SQL // Consulta SQL
$sql = "SELECT id, nombre, apellido FROM Visitas ORDER BY DESC"; $sql = "SELECT id, nombre, apellido FROM Visitas ORDER BY DESC";
$result = $conn->query($sql); $result = $conn->query($sql);

if ($result->num_rows > 0) { if ($result->num_rows > 0) {


// Salida de los datos por fila echo "<table><tr><th>ID</th><th>Nombre</th><th>Apellido</th></tr>";
while($row = $result->fetch_assoc()) { //Salida de los datos por fila
echo "id: " . $row["id"]. " - Nombre: " . $row[“nombre"]. " " . while($row = $result->fetch_assoc()) {
$row[“apellido"]. "<br>"; echo "<tr><td>".$row["id"]."</td><td>".$row[“nombre"]."
} ".$row[“apellido"]."</td></tr>";
} else { }
echo "0 resultados"; echo "</table>";
} } else {
$conn->close(); echo "0 resultados";
?> }
$conn->close();
?>
PHP & MySQL – Borrar data
▪ La sentencia DELETE se utiliza para borrar registros de una tabla.
▪ Recuerde que un DELETE debe ir con una cláusula WHERE.
▪ Si omite el uso de la cláusula WHERE todos los datos de la tabla se borrarán y no se
podrán recuperar.
▪ Dependiendo de los datos que contenga la tabla, puede que sea mejor desactivar
registros que borrarlos.
PHP & MySQL – Borrar data
▪ Asumamos que tenemos estos datos en la tabla Visitas

ID Nombre Apellido Correo Fecha_registro


1 Jonh Doe jonh@[Link] 2014-10-22 14:26:15
2 Maria Moe maria@[Link] 2014-10-23 10:22:30
3 Jane Dooley jane@[Link] 2014-10-26 10:48:23

▪ Se quiere borrar el último registro de la tabla.


PHP & MySQL – Borrar data
MySQLi PDO
<?php <?php
// Conectar a la base de datos // Conectar a la base de datos
include(“[Link]”); include(“[Link]”);
// Consulta sql
$sql = "DELETE FROM Visitas WHERE id=3"; // Consulta sql
$sql = "DELETE FROM Visitas WHERE id=3";
if ($conn->query($sql) === TRUE) {
echo “Registro borrado"; $conn->exec($sql);
} else { echo “Registro borrado";
echo "Error al borrar: " . $conn->error; } catch(PDOException $e) {
} echo $sql . "<br>" . $e->getMessage();
}
$conn->close();
?> $conn = null;
?>
PHP & MySQL – Actualizar data
▪ La sentencia UPDATE se utiliza para actualizar registros de una tabla.
▪ Recuerde que un UPDATE debe ir con una cláusula WHERE.
▪ Si omite el uso de la cláusula WHERE todos los datos de la tabla se actualizarán.
PHP & MySQL – Actualizar data
▪ Asumamos que tenemos estos datos en la tabla Visitas luego de hacer la ultima
operación de borrar.
ID Nombre Apellido Correo Fecha_registro
1 Jonh Doe jonh@[Link] 2014-10-22 14:26:15
2 Maria Moe maria@[Link] 2014-10-23 10:22:30

▪ Se quiere actualizar el registro con el ID 2 de la tabla.


PHP & MySQL – Actualizar data
MySQLi PDO
<?php <?php
// Conectar a la base de datos // Conectar a la base de datos
include(“[Link]”); include(“[Link]”);
// Consulta sql
$sql = “UPDATE Visitas SET apellido = ‘Doe’ // Consulta sql
WHERE id=2"; $sql = “UPDATE Visitas SET apellido = ‘Doe’
WHERE id=2";
if ($conn->query($sql) === TRUE) {
echo “Registro actualizado"; $conn->exec($sql);
} else { echo “Registro actualizado";
echo "Error al actualizar: " . $conn->error; } catch(PDOException $e) {
} echo $sql . "<br>" . $e->getMessage();
}
$conn->close();
?> $conn = null;
?>
PHP & MySQL – Limitar data
▪ MySQL provee el uso de la cláusula LIMIT para especificar el número de registros que
se quieren mostrar.
▪ El uso de esta cláusula ayuda a la visualización de datos ya que no se llena de
información toda la página, sino que se ven de una forma más controlada.
▪ Ejemplo: Supongamos que se quieren mostrar los primeros 30 registros de un
SELECT:
▪ $sql = "SELECT * FROM Orders LIMIT 30";
PHP & MySQL – Limitar data
▪ En el caso que, por ejemplo, se quiera mostrar los registros de un determinado rango,
por ejemplo 16 a 25. Se utiliza OFFSET junto con la cláusula LIMIT.
▪ OFFSET, indica desde que registro se quiere comenzar y LIMIT cuantos registros se
quieren mostrar
▪ $sql = "SELECT * FROM Orders LIMIT 10 OFFSET 16";
▪ También se puede hacer de forma acortada de la siguiente forma:
▪ $sql = "SELECT * FROM Orders LIMIT 16, 10";
PHP & MySQL

También podría gustarte