Sunteți pe pagina 1din 73

Sesión 04

Introducción a PHP

Sistemas Web y Tecnologías Diapositiva 1


Introducción a PHP
• Lenguajes de script
– PHP es un lenguaje de script del lado del servidor. Otros lenguajes similares
son ASP, JSP o ColdFusion
– Los scripts PHP están incrustados en los documentos HTML y el servidor
los interpreta y ejecuta antes de servir las páginas al cliente
– El cliente no ve el código PHP sino los resultados que produce

Sistemas Web y Tecnologías Diapositiva 2


¿Cómo Funciona?

Archivo
HTML

Navegador
Web Servidor Web
<p>Hola, Ana</p>

Sistemas Web y Tecnologías Diapositiva 3


¿Cómo funciona?

Archivo Intérprete Archivo


HTML PHP PHP

Navegador
Web Servidor Web
<p>Hola, Ana</p> <?php
$nombre = "Ana";
echo "<p>Hola, $nombre</p>";
?>

Sistemas Web y Tecnologías Diapositiva 4


Introducción a PHP
• Breve historia de PHP
– Creado por Rasmus Lerdorf para uso personal en 1994
– PHP = PHP: Hypertext Preprocessor
– Versión actual: PHP 7
– Es un módulo que se añade al servidor web y fue
concebido inicialmente para Apache.
– PHP fue diseñado para la generación dinámica de
contenidos en el lado del servidor.

Sistemas Web y Tecnologías Diapositiva 5


Ventajas de PHP
• PHP es gratis.
– Licencia de GNU.
• Es de código abierto.
– El código fuente está disponible, y puede ser modificado
libremente (hasta PHP 3.0).
• Es sencillo.
– Lenguaje de script con sintaxis similar a Javascript, Perl y C.
– Diseño modular de fácil ampliación.
• Es embebido.
– Son páginas HTML que “cambian” al modo PHP cuando es
necesario.
Sistemas Web y Tecnologías Diapositiva 6
Ventajas de PHP
• Es estable.
– Apache/PHP tiene una buena estadística de horas de
funcionamiento sin fallos.
– Las versiones de PHP no cambian radicalmente y de forma
incompatible entre versión y versión.
• Es rápido.
– Es mucho más rápido que la mayoría de scripts.
– El intérprete es un módulo dentro del servidor.
• Es multiplataforma.
– Se puede utilizar con prácticamente cualquier S.O.
– Integración perfecta con múltiples servidores HTTP.
– Acceso a múltiples Bases de Datos

Sistemas Web y Tecnologías Diapositiva 7


Plataformas Soportadas
• S.O:
– Windows, Linux, SunOS, AIX, IRIX, FreeBSD, HP-UX, Solaris,
Digital Unix, NetBSD, openBSD, etc. ?
• Servidores:
– Apache (UNIX,Win32), ISAPI (IIS, Zeus), NSAPI (iPlanet),
SunONE, WebSphere, AOLServer, etc.
• Base de datos:
– Adabas D, dBase, Empress, IBM DB2, Informix, Ingres,
Interbase, Frontbase, mSQL, Direct MS-SQL, MySQL, ODBC,
Oracle, PostgreSQL, Velocis, etc.

Sistemas Web y Tecnologías Diapositiva 8


Introducción a PHP
• Requisitos
– Servidor web Apache (www.apache.org)
– con el módulo PHP (www.php.net)
– y la base de datos MySQL (www.mysql.com) si se desea crear páginas
dinámicas

• Otras utilidades
– Herramientas para la gestión de MySQL, como PHPMyAdmin
(www.phpmyadmin.net)
– Editores de PHP, como DevPHP (www.sourceforge.net), Eclipse
(www.eclipse.org) o Aptana Studio (www.aptana.com) Sublime
(www.sublimetext.com)
– Manuales de PHP y MySQL

Sistemas Web y Tecnologías Diapositiva 9


Instalación de XAMPP
• ¿Qué es XAMPP?
– XAMPP es una distribución de Apache que incluye MySQL, PHP y otras
herramientas para el desarrollo de aplicaciones web, como
phpMyAdmin
– XAMPP es gratuito y fácil de instalar: basta con descargar el archivo y
extraerlo
– XAMPP es multiplataforma: existen versiones para Windows, Linux y
Mac OS
– Precaución: la configuración por defecto de XAMPP no es segura y no
es adecuada para un entorno de producción. El paquete incluye una
herramienta para obtener una configuración más segura

Sistemas Web y Tecnologías Diapositiva 10


Instalación de XAMPP
• Instalación y configuración de XAMPP
– Pasos:
• Descargar
• Instalar
• Probar

Sistemas Web y Tecnologías Diapositiva 11


Instalación de XAMPP
• Instalación y configuración de XAMPP. 1: descargar
– Conectarse a http://www.apachefriends.org/es/xampp.html
– Seleccionar la plataforma adecuada
– Elegir el fichero EXE autoextraíble
– Guardar el archivo en disco

Sistemas Web y Tecnologías Diapositiva 12


Instalación de XAMPP
• Instalación y configuración de XAMPP. 2: instalar
– Ejecutar el archivo descargado.

– Crear un acceso directo en el escritorio al programa xampp-


control.exe

Sistemas Web y Tecnologías Diapositiva 13


Instalación de XAMPP
• Instalación y configuración de XAMPP. 3: probar
– Ejecutar XAMPP haciendo doble clic sobre el icono xampp_control
– Arrancar los módulos Apache y MySQL
– Pulsar el botón Admin. Aparecerá la página de inicio del servidor
– Para parar XAMPP, pulsar el botón Exit

Sistemas Web y Tecnologías Diapositiva 14


Entornos de desarrollo para PHP
• ¿Cómo desarrollar un proyecto en PHP?
– Los ficheros PHP son ficheros de texto y se pueden crear con
cualquier editor de texto, como el NotePad de Windows
– Es mucho más conveniente utilizar entornos de desarrollo que
permiten editar el código más cómodamente, y además
proporcionan funciones como la detección y corrección de errores,
visualización de las páginas en el navegador, ayuda sensible al
contexto y gestión de todos los recursos asociados al proyecto
– Algunos entornos de desarrollo:
• Sublime
• Eclipse
• Aptana Studio

Sistemas Web y Tecnologías Diapositiva 15


Extensión y Localización de los Ficheros
• El servidor HTTP distingue que el recurso solicitado
se trata de una página php, por la extensión.
– Pasa la petición al módulo PHP para su procesado.
• Extensiones de los ficheros:
– .php - Indica código PHP. Extensión genérica.
• Localización de los ficheros:
– Normalmente, en los mismos directorios donde se ubican
el resto de ficheros html

Sistemas Web y Tecnologías Diapositiva 16


Sintaxis Básica
• Delimitadores
– El módulo de PHP busca uno de los tags que emplea para
reconocer el comienzo de código PHP.
– Ejecuta el código hasta encontrar una marca de final de
código.
– Continúa por el documento hasta encontrar otra marca de
comienzo.
– Todo lo que esté fuera de esas marcas queda inalterado .

<?php echo “delimitador recomendable”; ?>

Sistemas Web y Tecnologías Diapositiva 17


Sintaxis Básica
• El código PHP se puede insertar en cualquier lado del fichero,
combinándose con el código HTML de cualquier manera.
• El final de la sentencia está marcada por un punto y coma. La
última no lo necesita.
• Comentarios:

<?php
/* Comentarios estilo C.
Pueden extenderse durante varias líneas.
*/
// Comentarios estilo C++. Hasta fin de línea.
?>

Sistemas Web y Tecnologías Diapositiva 18


Sintaxis Básica
• Para imprimir:
– echo
– print

echo: muestra una o más cadenas


echo cadena1 [, cadena2…];
echo “Hola mundo”;
echo “Hola “, “mundo”;

print: muestra una cadena


print cadena;
print “Hola mundo”;
print “Hola “ . “mundo”;

Sistemas Web y Tecnologías Diapositiva 19


Sintaxis Básica

<html>
<head>
<title>Mi primer programa en PHP</title>
</head>
<body>
<?php
print ("<p>Hola mundo</p>”);
?>
</body>
</html>

Sistemas Web y Tecnologías Diapositiva 20


Sintaxis básica
• Inclusión de ficheros externos:
– include()
– require()
• Ambos incluyen y evalúan el fichero especificado
• Diferencia: en caso de error include() produce un
warning y require() un error fatal
• Se usará require() si al producirse un error debe
interrumpirse la carga de la página.

Sistemas Web y Tecnologías Diapositiva 21


Sintaxis básica
<html>
<head>
<title>Título</title>
<?php
// Incluir bibliotecas de funciones
require ("conecta.php");
require ("fecha.php");
require ("cadena.php");
require ("globals.php");
?>
</head>
<body>
<?php
include ("cabecera.html");
?>
// Código HTML + PHP
. . .
<?php
include ("pie.html");
?>
</body>
</html>

Sistemas Web y Tecnologías Diapositiva 22


Tipos de datos
• PHP soporta 8 tipos de datos primitivos:
– Tipos escalares: boolean, integer, double, string
– Tipos compuestos: array, object
– Tipos especiales: resource, NULL
• Funciones de interés:
– La función gettype() devuelve el tipo de una variable
– Las funciones is_type comprueban si una variable es de un tipo
dado:
is_array(), is_bool(), is_float(), is_integer(), is_null(),
is_numeric(), is_object(), is_resource(), is_scalar(),
is_string()
– La función var_dump() muestra el tipo y el valor de una variable. Es
especialmente interesante con los arrays

Sistemas Web y Tecnologías Diapositiva 23


Tipos de datos
• Tipo integer (números enteros)
– 27, -5, 0
• Tipo double (números reales)
– 1.234, -5.33
• Tipo boolean (lógico)
– Valores: true, false (insensibles a las mayúsculas)
– El 0 y la cadena vacía tienen valor false

Sistemas Web y Tecnologías Diapositiva 24


Tipos de datos
• Tipo string:
– Las cadenas se encierran entre comillas simples o dobles:
• ‘simples’: admite los caracteres de escape \’ (comilla simple) y \\ (barra).
Las variables NO se expanden
• “dobles”: admite más caracteres de escape, como \n, \r, \t, \\, \$, \”. Los
nombres de variables SÍ se expanden
• Ejemplos:
$a = 9;
echo ‘a vale $a\n’;
// muestra a vale $a\n
echo “a vale $a\n”;
// muestra a vale 9 y avanza una línea
echo “<img src =‘logo.gif’>”;
// muestra <img src=‘logo.gif’>
echo “<img src=\”logo.gif\”>”;
// muestra <img src=“logo.gif”>
– Acceso a un carácter de la cadena:
• La forma es $inicial = $nombre{0};

Sistemas Web y Tecnologías Diapositiva 25


Salidas
• echo, escribe la cadena que se le pasa como argumento.
– La cadena puede estar o no incluida entre paréntesis.
echo " Mensaje 1 ";
echo (" Mensaje 2 ");
– Sin paréntesis, admite varios argumentos.
echo "Este mensaje" , 'aparecerá' , "en
el browser";
• print, similar a echo.
– Sólo acepta un argumento.
print ('3.145159');
print (3.14159);
• printf: Salida con formato.
Sistemas Web y Tecnologías Diapositiva 26
Variables
• Variables predefinidas:
$GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIES, $_FILES,
$_ENV, $_REQUEST, $_SESSION
• Ámbito: globales al fichero (excepto funciones) o locales a una
función
• Ejemplo:
$valor = 5;
echo “El valor es: “ . $valor . “\n”;
echo “El valor es: $valor\n”; // ojo: comillas dobles

Resultado:
El valor es: 5

Sistemas Web y Tecnologías Diapositiva 27


Variables
• Las variables se nombran de acuerdo a las siguientes reglas:
– Siempre empieza con el símbolo $ ($precio, $color, $forma)
– El segundo símbolo puede ser: _, a-z, A-Z
– El tercer símbolo puede ser cualquier alfanumérico.
– Omitir los símbolos: %, &, :, ;. -,=,/,*,@ y todos aquellos caracteres
especial.
• Los nombres de variables son sensibles a
mayúsculas/minúsculas.
• No necesitan ser declaradas.
• PHP define en tiempo de ejecución el tipo que deben tener
según el contexto en el que se empleen.
Sistemas Web y Tecnologías Diapositiva 28
Variables
• Variables variables
– Se pueden crear nombres de variables dinámicamente
– La variable variable toma su nombre del valor de otra variable previamente
declarada
– Ejemplo:
$a = "hola";
$$a = "mundo";

print "$a $hola\n";


print "$a ${$a}";

Resultado:
hola mundo
hola mundo

Sistemas Web y Tecnologías Diapositiva 29


Constantes
• Definición de constantes:
define (“CONSTANTE”, “hola”);
print CONSTANTE;
• No llevan $ delante
• Sólo se pueden definir constantes de los tipos escalares (boolean, integer,
double, string)
• Pueden contener un boolean, integer, float o string
• Su nombre distingue mayúsculas de minúsculas (por convenio solo
mayúsculas)
• Se emplean poniendo su nombre ( sin $ delante)
• Una vez creadas no se puede cambiar su contenido ni eliminarlas
• Se utiliza la función define para crear constantes:
define (“CONSTANTE”, “hola”);
print CONSTANTE;
– El nombre se pasa entre comillas.
– Se distinguen de las variables porque no van precedidas de $
– Su ámbito es globa
– No pueden contener vectores.
• defined comprueba que la constante ha sido definida:
if (defined ('NOMBRE')) ...

Sistemas Web y Tecnologías Diapositiva 30


Expresiones y Operadores
Operadores aritméticos

Operador Ejemplo Nombre Resultado


- -$x Negación El opuesto de $x
+ $x + $y Adición Suma de $x y $y
- $x - $y Substracción Diferencia entre $x y $y
* $x * $y Multiplicación Producto de $x por $y
/ $x / $y División Cociente de $x y $y
% $a % $y Módulo o residuo Residuo del cociente de $x y $y

Sistemas Web y Tecnologías Diapositiva 31


Expresiones y Operadores
Operadores de asignación

Operador Ejemplo Resultado


= $a = $b Asigna a $a el valor que guarda $b
+= $a += $b Equivale a $a = $a + $b
-= $a -= $b Equivale a $a = $a - $b
*= $a *= $b Equivale a $a = $a * $b
/= $a /= $b Equivale a $a = $a / $b
%= $a %= $b Equivale a $a = $a % $b
.= $a .= $b Equivale a $a = $a . $b
&= $a &= $b Equivale a $a = $a & $b
|= $a |= $b Equivale a $a = $a | $b

Sistemas Web y Tecnologías Diapositiva 32


Expresiones y Operadores
Operadores de lógicos

Operador Ejemplo Nombre


and && $a and $b $a && $b Y
or || $a or $b $a || $b O
! ! $a NO
xor $a xor $b OR EXCLUSIVO

Sistemas Web y Tecnologías Diapositiva 33


Expresiones y Operadores
Operadores de comparación

Operador Ejemplo Nombre


> $a > $b Mayor que
< $a < $b Menor que
>= $a >= $b Mayor o igual que
<= $a <= $b Menor o igual que
<> != $a<>$b $a != $b Diferente de
== $a==$b Igual a
=== $a===$b Idéntico a

Sistemas Web y Tecnologías Diapositiva 34


Expresiones y Operadores
Operadores de incremento y decremento

Operador Nombre Efecto


++$a Pre-incremento Incrementa $a en 1 y luego lo devuelve

$a++ Post-incremento Devuelve $a y luego lo incrementa en 1

--$a Pre-decremento Decremento $a en 1, luego devuelve $a

$a-- Post-decremento Devuelve $a, luego decremento $a en 1

Sistemas Web y Tecnologías Diapositiva 35


Expresiones y operadores
• Precedencia de operadores (de mayor a menor):

++, --
*, /, %
+,-
<, <=, >, >=
==, !=
&&
||
and
or

Sistemas Web y Tecnologías Diapositiva 36


Estructuras de control
• Estructuras selectivas:
– if-else
– switch
• Estructuras repetitivas:
– while
– for
– foreach

Sistemas Web y Tecnologías Diapositiva 37


Estructuras de control
• Estructura selectiva if-else
if (condición) if (condición1)
sentencia sentencia 1
else if (condición2)
sentencia 2
if (condición)
...
sentencia 1
else if (condición n)
else
sentencia n
sentencia 2
else
sentencia n+1

• Mismo comportamiento que en C


• Las sentencias compuestas se encierran entre llaves
• elseif puede ir todo junto

Sistemas Web y Tecnologías Diapositiva 38


Estructuras de control
• Ejemplo de estructura selectiva if-else:

<?php
if ($sexo == ‘M’)
$saludo = "Bienvenida, ";
else
$saludo = "Bienvenido, ";
$saludo = $saludo . $nombre;
print ($saludo);
?>

Sistemas Web y Tecnologías Diapositiva 39


Estructuras de control
• Estructura selectiva switch
switch (expresión)
{
case valor_1:
sentencia 1
break;
case valor_2:
sentencia 2
break;

case valor_n:
sentencia n
break;
default
sentencia n+1
}
• Mismo comportamiento que en C, sólo que la expresión del case puede
ser integer, float o string

Sistemas Web y Tecnologías Diapositiva 40


Estructuras de control+
• Ejemplo de estructura selectiva switch:

switch ($extension)
{
case ("PDF"):
$tipo = "Documento Adobe PDF";
break;
case ("TXT"):
$tipo = "Documento de texto";
break;
case ("HTML"):
case ("HTM"):
$tipo = "Documento HTML";
break;
default:
$tipo = "Archivo " . $extension;
}
print ($tipo);
Sistemas Web y Tecnologías Diapositiva 41
Estructuras de control
• Estructura repetitiva while
condición
while (condición)
sentencia falsa cierta

• Mismo comportamiento que en C sentencia

Sistemas Web y Tecnologías Diapositiva 42


Estructuras de control
• Ejemplo de estructura repetitiva while:

<?php
print ("<ul>\n");
$i=1;
while ($i <= 5)
{
print ("<li>Elemento $i</li>\n");
$i++;
}
print ("</ul>\n");
?>

Sistemas Web y Tecnologías Diapositiva 43


Estructuras de control
• Estructura repetitiva for

for (inicialización; condición; incremento)


sentencia
inicialización

• Mismo comportamiento que en C


condición

falsa cierta

sentencia

incremento

Sistemas Web y Tecnologías Diapositiva 44


Estructuras de control
• Ejemplo de estructura repetitiva for:

<?php
print ("<ul>\n");
for ($i=1; $i<=5; $i++)
print ("<li>Elemento $i</li>\n");
print ("</ul>\n");
?>

Sistemas Web y Tecnologías Diapositiva 45


Estructuras de control
• Ejercicio 1:

Sistemas Web y Tecnologías Diapositiva 46


Funciones
• Ejemplo:
function suma ($x, $y)
{
$s = $x + $y;
return $s;
}

$a=1;
$b=2;
$c=suma ($a, $b);
print $c;

Sistemas Web y Tecnologías Diapositiva 47


Funciones
• Argumentos por defecto
function muestranombre ($titulo = "Sr.")
{
print "Estimado $titulo:\n";
}
muestranombre();
muestranombre("Prof.");
• Salida:
Estimado Sr.:
Estimado Prof.:

Sistemas Web y Tecnologías Diapositiva 48


Funciones
• Los argumentos con valores por defecto deben ser siempre los últimos:
function muestranombre ($nombre, $titulo= "Sr.")
{
print "Estimado $titulo $nombre:\n";
}
muestranombre (“Fernández”);
muestranombre (“Fernández”, "Prof.");
• Salida:
Estimado Sr. Fernández:
Estimado Prof. Fernández:

Sistemas Web y Tecnologías Diapositiva 49


Arrays
• Sintaxis:
array ([clave =>] valor, ...)
• La clave es una cadena o un entero no negativo. El valor puede ser de
cualquier tipo válido en PHP, incluyendo otro array
• Ejemplos:
$color = array (‘rojo’=>101, ‘verde’=>51, ‘azul’=>255);
$medidas = array (10, 25, 15);
• Acceso:
$color[‘rojo’] // No olvidar las comillas
$medidas[0]
• El primer elemento es el 0

Sistemas Web y Tecnologías Diapositiva 50


Array
• La estructura de control foreach permite iterar sobre arrays
• Sintaxis:
foreach (expresión_array as $valor)
sentencia
foreach (expresión_array as $clave => $valor)
sentencia
• Ejemplos:
foreach ($color as $valor)
print “Valor: $valor<br>\n”;
foreach ($color as $clave => $valor)
print “Clave: $clave; Valor: $valor<br>\n”;
• Salida:
Valor: 101
Valor: 51
Valor: 255
Clave: rojo; Valor: 101
Clave: verde; Valor: 51
Clave: azul; Valor: 255

Sistemas Web y Tecnologías Diapositiva 51


Bibliotecas de funciones
• Existen muchas bibliotecas de funciones en PHP
• Algunos ejemplos:
– Funciones de manipulación de cadenas
– Funciones de fecha y hora
– Funciones de arrays
– Funciones de ficheros
– Funciones matemáticas
– Funciones de bases de datos
– Funciones de red
• Algunas bibliotecas requieren la instalación de componentes
adicionales
• Todas las funciones de biblioteca están comentadas en la
documentación de PHP

Sistemas Web y Tecnologías Diapositiva 52


Bibliotecas de funciones
• Funciones de manipulación de cadenas
– explode()
• Divide una cadena en subcadenas
• array explode (string separator, string string [, int limit])
– rtrim(), ltrim(), trim()
• Eliminan caracteres a la derecha, a la izquierda o por ambos
lados de una cadena
• string rtrim ( string str [, string charlist])
– strstr()
• Busca la primera ocurrencia de una subcadena
– strtolower() / strtoupper()
• Convierte una cadena a minúscula / mayúscula
– strcmp() / strcasecmp()
• Compara dos cadenas con/sin distinción de mayúsculas
– strlen()
• Calcula la longitud de una cadena

Sistemas Web y Tecnologías Diapositiva 53


Bibliotecas de funciones
• Funciones de fecha y hora
– date()
• Formatea una fecha según un formato dado
• Ejemplo:
$fecha = date ("j/n/Y H:i");
print ("$fecha");
Resultado:
26/9/2005 17:36
– strtotime()
• Convierte una fecha en un timestamp de UNIX
• Ejemplo:
$fecha = date ("j/n/Y", strtotime(“5 april 2001"));
print ("$fecha");
Resultado:
5/4/2001

Sistemas Web y Tecnologías Diapositiva 54


Bibliotecas de funciones
• Funciones de arrays
– array_count_values()
• Calcula la frecuencia de cada uno de los elementos de un array
– array_search()
• Busca un elemento en un array
– count()
• Cuenta los elementos de un array
– sort(), rsort()
• Ordena y reindexa un array (r=decreciente)
– ksort(), krsort()
• Ordena por claves un array (r=decreciente)

Sistemas Web y Tecnologías Diapositiva 55


Acceso a formularios desde PHP
• Desde PHP se puede acceder fácilmente a los datos introducidos desde un
formulario HTML

Sistemas Web y Tecnologías Diapositiva 56


Acceso a formularios desde PHP
• Fichero uno.php
<html>
<body>
<form action=”dos.php” method=”post”>
Edad: <input type=”text” name=”txtedad”>
<input type=”submit” value=”aceptar”>
</form>
</body>
</html>

• Fichero dos.php
<hmtl>
<body>
<?php
$edad = $_POST[‘edad’];
echo “La edad es: $edad”;
?>
</body>
</html>

Sistemas Web y Tecnologías Diapositiva 57


Acceso a formularios desde PHP
• Acceso a los diferentes tipos de elementos de entrada de formulario
– Elementos de tipo INPUT
• TEXT
• RADIO
• CHECKBOX
• BUTTON
• FILE
• HIDDEN
• PASSWORD
• SUBMIT
– Elemento SELECT
• Simple / múltiple
– Elemento TEXTAREA

Sistemas Web y Tecnologías Diapositiva 58


Acceso a formularios desde PHP
• TEXT
Introduzca la cadena a buscar:
<input type="text" name="cadena" value="valor por defecto">

<?php
$cadena = $_REQUEST[‘cadena’];
echo $cadena;
?>

Sistemas Web y Tecnologías Diapositiva 59


Acceso a formularios desde PHP
• RADIO
Sexo:
<input type="radio" name=“sexo" value=“M” checked>Mujer
<input type="radio" name=“sexo" value=“H”>Hombre

<?php
$sexo = $_REQUEST[‘sexo’];
echo $sexo;
?>

Sistemas Web y Tecnologías Diapositiva 60


Acceso a formularios desde PHP
• CHECKBOX
<input type="checkbox" name="extras[]" value="garaje" checked>Garaje
<input type="checkbox" name="extras[]" value="piscina">Piscina
<input type="checkbox" name="extras[]" value="jardin">Jardín

<?php
$extras = $_REQUEST[‘extras’];

foreach ($extras as $extra)


echo $extra.”<br/>”;
?>

Sistemas Web y Tecnologías Diapositiva 61


Acceso a formularios desde PHP
• HIDDEN

<input type=’hidden’ name=’username’ value=’$usuario’/>

<?php
$username = $_REQUEST[‘username’];
echo $username;
?>

Sistemas Web y Tecnologías Diapositiva 62


Acceso a formularios desde PHP
• PASSWORD
Contraseña: <input type="password" name="clave">

<?php
$clave = $_REQUEST[‘clave’];
echo $clave;
?>

Sistemas Web y Tecnologías Diapositiva 63


Acceso a formularios desde PHP
• SELECT simple
Color:
<select name=“color">
<option value=“rojo" selected>Rojo
<option value=“verde">Verde
<option value=“azul">Azul
</select>

<?php
$color = $_REQUEST[‘color’];
echo $color;
?>

Sistemas Web y Tecnologías Diapositiva 64


Acceso a formularios desde PHP
• SELECT múltiple
Idiomas:
<select multiple size="3" name="idiomas[]">
<option value="ingles" selected>Inglés
<option value="frances">Francés
<option value="aleman">Alemán
<option value="holandes">Holandés
</select>

<?php
$idiomas = $_REQUEST[‘idiomas’];
foreach ($idiomas as $idioma)
echo $idioma.”<br/>”;
?>

Sistemas Web y Tecnologías Diapositiva 65


Acceso a formularios desde PHP
• TEXTAREA
Comentario:
<textarea cols=“50" rows=“4" name="comentario">
Este libro me parece ...
</textarea>

<?php
$comentario = $_REQUEST[‘comentario’];
echo $comentario;
?>

Sistemas Web y Tecnologías Diapositiva 66


Acceso a formularios desde PHP
• FILE
<form action="procesa.php" method="post“ enctype="multipart/form-
data">
<input type="file" name="fichero">
</form>

Sistemas Web y Tecnologías Diapositiva 67


Subida de ficheros al servidor
• Para subir un fichero al servidor se utiliza el elemento de entrada FILE
• Hay que tener en cuenta una serie de consideraciones importantes:
– El elemento FORM debe tener el atributo ENCTYPE="multipart/form-data“
– El fichero tiene un límite en cuanto a su tamaño. Este límite se fija de dos
formas diferentes:
• En el fichero de configuración php.ini
• En el propio formulario

Sistemas Web y Tecnologías Diapositiva 68


Subida de ficheros al servidor
php.ini
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use


; system default if not specified).
;upload_tmp_dir =

; Maximum allowed size for uploaded files.


upload_max_filesize = 2M

formulario
<input type=”hidden” name=”MAX_FILE_SIZE” value='102400'>
<input type=”file” name="fichero">
Sistemas Web y Tecnologías Diapositiva 69
Subida de ficheros al servidor
• Consideraciones (cont)
– Debe darse al fichero un nombre que evite coincidencias con ficheros ya
subidos. Por ello, y como norma general, debe descartarse el nombre
original del fichero y crear uno nuevo que sea único
– El fichero subido se almacena en un directorio temporal y hemos de
moverlo al directorio de destino usando la función move_upload_file()
• Procedimiento:

si se ha subido correctamente el fichero:


Asignar un nombre al fichero
Mover el fichero a su ubicación definitiva
si no:
Mostrar un mensaje de error
fsi

Sistemas Web y Tecnologías Diapositiva 70


Subida de ficheros al servidor
HTML
<input type=“file" name="imagen">

• La variable $_FILES contiene toda la información del fichero subido:


– $_FILES['imagen']['name']
• Nombre original del fichero en la máquina cliente
– $_FILES['imagen']['type']
• Tipo mime del fichero. Por ejemplo, "image/gif"
– $_FILES['imagen']['size']
• Tamaño en bytes del fichero subido
– $_FILES['imagen']['tmp_name']
• Nombre del fichero temporal en el que se almacena el fichero subido
en el servidor
– $_FILES['imagen’]['error']
• Código de error asociado al fichero subido

Sistemas Web y Tecnologías Diapositiva 71


Subida de ficheros al servidor
PHP
if (is_uploaded_file ($_FILES['imagen']['tmp_name']))
{
$nombreDirectorio = "img/";
$idUnico = time();
$nombreFichero = $idUnico . "-" . $_FILES['imagen']['name'];

move_uploaded_file ($_FILES['imagen']['tmp_name'],
$nombreDirectorio . $nombreFichero);
}
else
echo "No se ha podido subir el fichero";

Sistemas Web y Tecnologías Diapositiva 72


Subida de ficheros al servidor
PHP
if (is_uploaded_file ($_FILES['imagen']['tmp_name']))
{
$nombreDirectorio = "img/";
$nombreFichero = $_FILES['imagen']['name'];

$nombreCompleto = $nombreDirectorio . $nombreFichero;


if (is_file($nombreCompleto))
{
$idUnico = time();
$nombreFichero = $idUnico . "-" . $nombreFichero;
}

move_uploaded_file ($_FILES['imagen']['tmp_name'],
$nombreDirectorio . $nombreFichero);
}
else
echo "No se ha podido subir el fichero";

Sistemas Web y Tecnologías Diapositiva 73

S-ar putea să vă placă și