Manual Para Desarrollar Aplicaciones Web Con HMTL y PHP Con MySQL
Desarrollo de aplicaciones PHP para bases de datos Almería 2007
-
Upload
jennifer-doyle -
Category
Documents
-
view
38 -
download
2
description
Transcript of Desarrollo de aplicaciones PHP para bases de datos Almería 2007
Antonio Becerra Teró[email protected]
Departamento de Lenguajes y ComputaciónUniversidad de Almería
Desarrollo de aplicaciones PHP para
bases de datos Almería 2007
Lenguajes de Desarrollo. PHP
Contenidos
10. Paso de variables entre scripts PHP11. Formularios en PHP
12. Scripts de autenticación y sesiones13. Cookies en PHP
14. Gestión de envío de archivos en PHP
Desarrollo de aplicaciones PHP
para bases de datos
Almería 2007
Lenguajes de Desarrollo. PHP
Desarrollo de aplicaciones PHP
para bases de datos
Almería 2007
Lenguajes de Desarrollo. PHP
Contenidos
10. Paso de variables entre scripts PHP11. Formularios en PHP
12. Scripts de autenticación y sesiones13. Cookies en PHP
14. Gestión de envío de archivos en PHP
Paso de variables por URL
10. Paso de variables entre scripts PHP
En un sitio Web, las páginas y los scripts utilizados son muy numerosos. Muy a menudo, vamos a necesitar que nuestros distintos scripts estén conectados unos con otros, y, sobretodo, que se sirvan y se pasen variables comunes.
<a href="destino.php?variable1=valor1&variable2=valor2&...">Mi enlace</a>
• Estas variables no tienen el símbolo $ delante• Una vez realizado el paso, nuestras variables pertenecen al entorno de la página destino.php• Activada/desactivada la opción de configuración register_globals del archivo php.ini
Paso de variables por URL
10. Paso de variables entre scripts PHP
phporiegenurl.php<HTML><HEAD><TITLE>phporigenurl.php</TITLE></HEAD><BODY><?PHP$username = "abecerra";?><a href="destino.php?saludo=hola&texto= Esto es una variable texto&username= <?php echo $username;?>"> Paso variables saludo y texto a la página
destino.php</a></BODY></HTML>
Paso de variables por URL
10. Paso de variables entre scripts PHP
destino.php<HTML><HEAD><TITLE>destino.php</TITLE></HEAD><BODY><?echo "Variable \$saludo: $saludo <br>\n";echo "Variable \$texto: $texto <br>\n";echo "Variable \$username: $username
<br>\n";?></BODY></HTML>
register_globals On en php.ini
Paso de variables con $_GET
10. Paso de variables entre scripts PHP
destinoget.php<HTML><HEAD><TITLE>destinoget.php</TITLE></HEAD><BODY><?// Captura de las variables pasadas por la
URL$saludo = $_GET['saludo'];$texto = $_GET['texto'];$username = $_GET['username'];echo "Variable \$saludo: $saludo <br>\n";echo "Variable \$texto: $texto <br>\n";echo "Variable \$username: $username
<br>\n";?></BODY></HTML>
register_globals Off en php.ini
phporiegenurl.php...<a href="destinoget.php?saludo=hola&texto= Esto es una variable texto&username= <?php echo $username;?>">...
Paso de variables con $_GET
10. Paso de variables entre scripts PHP
register_globals Off en php.ini
destinoget.php<HTML><HEAD><TITLE>destinoget.php</TITLE></HEAD><BODY><?// Captura de las variables pasadas por la
URL$saludo = $_GET['saludo'];$texto = $_GET['texto'];$username = $_GET['username'];echo "Variable \$saludo: $saludo <br>\n";echo "Variable \$texto: $texto <br>\n";echo "Variable \$username: $username
<br>\n";?></BODY></HTML>
Desarrollo de aplicaciones PHP
para bases de datos
Almería 2007
Lenguajes de Desarrollo. PHP
Contenidos
10. Paso de variables entre scripts PHP11. Formularios en PHP
12. Scripts de autenticación y sesiones13. Cookies en PHP
14. Gestión de envío de archivos en PHP
Procesar variables de formularios en PHP
11. Formularios en PHP
• Presentar una primera página con el formulario clásico a rellenar• Las variables del formularios son recogidas en una segunda página que las procesa
<FORM action="lo_que_sea.php" method="POST/GET">
script PHP que procesa lainformación del formulario
POST: usuario envía datosGET: usuario recoge datos
register_globals Off en php.ini
Procesar variables de formularios en PHP
11. Formularios en PHP
phpformu1.php<HTML><HEAD><TITLE>phpformu1.php</TITLE></HEAD><BODY><FORM METHOD="POST" ACTION="phpdestino.php">Nombre<br><INPUT TYPE="TEXT" NAME="nombre"><br>Apellidos<br><INPUT TYPE="TEXT" NAME="apellidos"><br><INPUT TYPE="SUBMIT"></FORM></BODY></HTML>
Procesar variables de formularios en PHP
11. Formularios en PHP
phpformu1.php<HTML><HEAD><TITLE>phpformu1.php</TITLE></HEAD><BODY><FORM METHOD="POST" ACTION="phpdestino.php">Nombre<br><INPUT TYPE="TEXT" NAME="nombre"><br>Apellidos<br><INPUT TYPE="TEXT" NAME="apellidos"><br><INPUT TYPE="SUBMIT"></FORM></BODY></HTML>
Procesar variables de formularios en PHP
11. Formularios en PHP
phpformu1.php<HTML><HEAD><TITLE>phpformu1.php</TITLE></HEAD><BODY><FORM METHOD="POST" ACTION="phpdestino.php">Nombre<br><INPUT TYPE="TEXT" NAME="nombre"><br>Apellidos<br><INPUT TYPE="TEXT" NAME="apellidos"><br><INPUT TYPE="SUBMIT"></FORM></BODY></HTML>
Procesar variables de formularios en PHP
11. Formularios en PHP
phpformu1.php<HTML><HEAD><TITLE>phpformu1.php</TITLE></HEAD><BODY><FORM METHOD="POST" ACTION="phpdestino.php">Nombre<br><INPUT TYPE="TEXT" NAME="nombre"><br>Apellidos<br><INPUT TYPE="TEXT" NAME="apellidos"><br><INPUT TYPE="SUBMIT"></FORM></BODY></HTML>
Procesar variables de formularios en PHP
11. Formularios en PHP
phpformu1.php<HTML><HEAD><TITLE>phpformu1.php</TITLE></HEAD><BODY><FORM METHOD="POST" ACTION="phpdestino.php">Nombre<br><INPUT TYPE="TEXT" NAME="nombre"><br>Apellidos<br><INPUT TYPE="TEXT" NAME="apellidos"><br><INPUT TYPE="SUBMIT"></FORM></BODY></HTML>
phpdestino.php<HTML><HEAD><TITLE>phpdestino.php</TITLE></HEAD><BODY><?PHP$nombre = $_POST['nombre'];$apellidos = $_POST['apellidos'];echo "Variable \$nombre: $nombre <br>\n";echo "Variable \$apellidos: $apellidos <br>\n"?></BODY></HTML>
Procesar variables de formularios en PHP
11. Formularios en PHP
phpformu1.php<HTML><HEAD><TITLE>phpformu1.php</TITLE></HEAD><BODY><FORM METHOD="POST" ACTION="phpdestino.php">Nombre<br><INPUT TYPE="TEXT" NAME="nombre"><br>Apellidos<br><INPUT TYPE="TEXT" NAME="apellidos"><br><INPUT TYPE="SUBMIT"></FORM></BODY></HTML>
phpdestino.php<HTML><HEAD><TITLE>phpdestino.php</TITLE></HEAD><BODY><?PHP$nombre = $_POST['nombre'];$apellidos = $_POST['apellidos'];echo "Variable \$nombre: $nombre <br>\n";echo "Variable \$apellidos: $apellidos <br>\n"?></BODY></HTML>
Procesar variables de formularios en PHP
11. Formularios en PHP
phpformu1.php<HTML><HEAD><TITLE>phpformu1.php</TITLE></HEAD><BODY><FORM METHOD="POST" ACTION="phpdestino.php">Nombre<br><INPUT TYPE="TEXT" NAME="nombre"><br>Apellidos<br><INPUT TYPE="TEXT" NAME="apellidos"><br><INPUT TYPE="SUBMIT"></FORM></BODY></HTML>
phpdestino.php<HTML><HEAD><TITLE>phpdestino.php</TITLE></HEAD><BODY><?PHP$nombre = $_POST['nombre'];$apellidos = $_POST['apellidos'];echo "Variable \$nombre: $nombre <br>\n";echo "Variable \$apellidos: $apellidos <br>\n"?></BODY></HTML>
Procesar variables de formularios en PHP
11. Formularios en PHP
phpformu1.php<HTML><HEAD><TITLE>phpformu1.php</TITLE></HEAD><BODY><FORM METHOD="POST" ACTION="phpdestino.php">Nombre<br><INPUT TYPE="TEXT" NAME="nombre"><br>Apellidos<br><INPUT TYPE="TEXT" NAME="apellidos"><br><INPUT TYPE="SUBMIT"></FORM></BODY></HTML>
phpdestino.php<HTML><HEAD><TITLE>phpdestino.php</TITLE></HEAD><BODY><?PHP$nombre = $_POST['nombre'];$apellidos = $_POST['apellidos'];echo "Variable \$nombre: $nombre <br>\n";echo "Variable \$apellidos: $apellidos <br>\n"?></BODY></HTML>
Procesar variables de formularios en PHP
11. Formularios en PHP
phpformu1.php<HTML><HEAD><TITLE>phpformu1.php</TITLE></HEAD><BODY><FORM METHOD="POST" ACTION="phpdestino.php">Nombre<br><INPUT TYPE="TEXT" NAME="nombre"><br>Apellidos<br><INPUT TYPE="TEXT" NAME="apellidos"><br><INPUT TYPE="SUBMIT"></FORM></BODY></HTML>
phpdestino.php<HTML><HEAD><TITLE>phpdestino.php</TITLE></HEAD><BODY><?PHP$nombre = $_POST['nombre'];$apellidos = $_POST['apellidos'];echo "Variable \$nombre: $nombre <br>\n";echo "Variable \$apellidos: $apellidos <br>\n"?></BODY></HTML>
Procesar variables de formularios en PHP
11. Formularios en PHP
phpformu1.php<HTML><HEAD><TITLE>phpformu1.php</TITLE></HEAD><BODY><FORM METHOD="POST" ACTION="phpdestino.php">Nombre<br><INPUT TYPE="TEXT" NAME="nombre"><br>Apellidos<br><INPUT TYPE="TEXT" NAME="apellidos"><br><INPUT TYPE="SUBMIT"></FORM></BODY></HTML>
Procesar variables de formularios en PHP
11. Formularios en PHP
phpdestino.php<HTML><HEAD><TITLE>phpdestino.php</TITLE></HEAD><BODY><?PHP$nombre = $_POST['nombre'];$apellidos = $_POST['apellidos'];echo "Variable \$nombre: $nombre <br>\n";echo "Variable \$apellidos: $apellidos <br>\n"?></BODY></HTML>
Restricción de acceso por edad
11. Formularios en PHP
edad.php<html>
<head> <title>Restringir por edad</title>
</head> <body> <form action="edad2.php" method="post">
Escribe tu edad: <input type="text" name="edad" size =
"2"> <input type="submit" value="Entrar"> </form>
</body> </html>
edad2.php<html>
<head> <title>Restringir por edad</title>
</head> <body> <? $edad = $_POST["edad"];
echo "Tu edad: $edad<p>"; if ($edad < 18) { echo "No puedes entrar"; }else{
echo "Bienvenido"; }
?> </body> </html>
Restricción de acceso por edad
11. Formularios en PHP
Restricción de acceso por edad
11. Formularios en PHP
Formulario habitual
11. Formularios en PHP
phpformunormal.php <HTML><BODY><FORM METHOD="post" ACTION="mis_datos.php"><input type="hidden" name="edad" value="55"><p>Tu nombre <input type="text" name="nombre" size="30" value="antonio becerra"></p><p>Tu sistema favorito <select size="1" name="sistema"><option selected value="Linux">Linux</option><option value="Unix">Unix</option><option value="Macintosh">Macintosh</option><option value="Windows">Windows</option></select></p><p>¿Te gusta el futbol ? <input type="checkbox" name="futbol" value="ON"></p><p>¿Cual es tu sexo?</p>
<blockquote><p>Hombre<input type="radio" value="hombre" checked name="sexo"></p><p>Mujer <input type="radio" name="sexo" value="mujer"></p></blockquote><p>Aficiones</p><p><textarea rows="5" name="aficiones" cols="28"></textarea></p><p><input type="submit" value="Enviar datos" name="enviar"> <input type="reset" value="Restablecer" name="B2"></p></FORM></BODY><HTML>
Formulario habitual
11. Formularios en PHP
Formulario habitual
11. Formularios en PHP
mis_datos.php <?PHP$enviar = $_POST['enviar'];$nombre = $_POST['nombre'];$sexo = $_POST['sexo'];$edad = $_POST['edad'];$sistema = $_POST['sistema'];$futbol = $_POST['futbol'];$aficiones = $_POST['aficiones'];if ($enviar) {echo "Hola <b>" . $nombre . "</b> que tal estás<BR>\n";echo "Eres " . $sexo . "<BR>\n";echo "Tienes " . $edad . "<BR>\n";echo "Tu sistema favorito es " . $sistema . "<BR>\n";if ($futbol) {echo "Te gusta el futbol <BR>\n";}
else {echo "NO te gusta el futbol <BR>\n";}if ($aficiones != "") {echo "Tus aficiones son: <BR>\n";echo nl2br($aficiones);} else {echo "NO tienes aficiones <BR>\n";}}echo "<br>";echo “<a href=phpformunormal.php>VOLVER AL FORMULARIO</a>"?>
Formulario habitual
11. Formularios en PHP
Formulario más complejo
11. Formularios en PHP
phpformucomplex.php <?phpif (isset($_POST['Accion'])){ print '<pre>'; print_r($_POST); echo "<a href= $_SERVER[PHP_SELF]
> Por favor, intentálo de
nuevo</a>"; print '</pre>';}else{?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">Nombre: <input type="text" name="personal[nombre]"><br>
Email: <input type="text" name="personal[email]"><br>Cerveza: <br> <select multiple name="beer[ ]"><option value="warthog">Warthog</option><option value="guinness">Guinness</option><option value="stuttgarter">Stuttgarter Schwabenbräu</option></select><br><input type="hidden" name="Accion" value="enviado"> <input type="submit" name="Enviar" value="Envíame!"></form><?PHP} ?>
Formulario más complejo
11. Formularios en PHP
Ejercicio de Formulario
11. Formularios en PHP
Desarrollo de aplicaciones PHP
para bases de datos
Almería 2007
Lenguajes de Desarrollo. PHP
Contenidos
10. Paso de variables entre scripts PHP11. Formularios en PHP
12. Scripts de autenticación y sesiones13. Cookies en PHP
14. Gestión de envío de archivos en PHP
Scripts de autenticación
12. Scripts de autenticación y sesiones en PHP
Autenticación basada en contraseñasphpinicio_sesion.php<HTML><HEAD><TITLE>Inicio de sesión</TITLE></HEAD><BODY bgcolor="Aqua"><FORM name="form1" method="POST" action="phpautenticacion.php"><TABLE width="400"><TR> <td colspan="2"> <div align="center"><B>Introduzca un nombre de usuario y una contraseña</B></DIV></TD></TR><TR><TD> <DIV align="right">Nombre de usuario:</DIV></TD><TD><INPUT type="text" name="username"></TD></TR>
<TR><TD><DIV align="right">Contraseña</DIV></TD><TD><INPUT type="pasword" name="password" maxlength="15"></TD></TR><TR><TD colspan="2"><CENTER><INPUT type="submit" name="submit" value="Enviar"></CENTER></TD></TR></TABLE></FORM></BODY><HTML>
Scripts de autenticación
12. Scripts de autenticación y sesiones en PHP
Scripts de autenticación
12. Scripts de autenticación y sesiones en PHP
phpautenticacion.php<HTML><HEAD><TITLE>Página de autenticación</TITLE></HEAD><BODY bgcolor="Gray"><?PHP$username = $_POST['username'];$password = $_POST['password'];if (empty($password)){ die("No se ha introducido la contraseña");}if (strlen($password) < 5){ die("La contraseña introducida es demasiado corta");}
if (!(strcmp($password,"antonio"))){ echo "Bienvenido a su página de inicio " . "<b>" . $username . "</b><br>";}else{ die("No ha introducido la contraseña correcta");}?></BODY></HTML>
Scripts de autenticación
12. Scripts de autenticación y sesiones en PHP
Autenticación HTTP
12. Scripts de autenticación y sesiones en PHP
Sólo disponible cuando PHP se ejecuta como módulo de ApacheFunción header()
Autenticación controlada por variables predefinidas PHP
$_SERVER[‘PHP_AUTH_USER’]$_SERVER[‘PHP_AUTH_PW’]
$_SERVER[‘AUTH_TYPE’]
Autenticación HTTP
12. Scripts de autenticación y sesiones en PHP
php-autenticacion.php<?php if (!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authenticate: Basic realm="Acceso a Zona Restringida"'); header('HTTP/1.0 401 Unauthorized'); echo '<h1>Autorización Requerida</h1>'; exit; } else { echo "<p>Hola " . $_SERVER['PHP_AUTH_USER'] . ".</p>"; echo "<p>Has introducido " . $_SERVER['PHP_AUTH_PW'] . " como contraseña.</p>"; } ?>
Autenticación HTTP
12. Scripts de autenticación y sesiones en PHP
Autenticación HTTP
12. Scripts de autenticación y sesiones en PHP
</head><body>Ha conseguido el acceso a la <B>zona restringida</B> de <? echo $_SERVER['PHP_AUTH_USER'];?></body></html>
php-autenticacion-abecerra.php<?php if (($_SERVER['PHP_AUTH_USER']!="abecerra") || ($_SERVER['PHP_AUTH_PW']!="123")){ header('WWW-Authenticate: Basic realm="Acceso restringido"'); header('HTTP/1.0 401 Unauthorized'); echo '<H2>Authorization Required.</H2>'; exit;}?><html><head><title>Ejemplo de Autenticación HTTP con PHP</title>
Autenticación HTTP
12. Scripts de autenticación y sesiones en PHP
Control y manejo de sesiones
12. Scripts de autenticación y sesiones en PHP
Sesión = intervalo de tiempo empleado por un usuario en recorrer nuestras páginas, hasta que:
• abandona nuestro sitio,• deja de actuar sobre él durante un tiempo prolongado,
• cierra el navegador
PHP nos permite almacenar variables de sesión que, una vez definidas, podrán ser utilizadas durante la actividad
del usuario por cualquiera de los scripts de nuestro sitio Web
Hemos utilizado variables que sólo existían en el script ejecutado. ¿Cuál es el problema?
Cargamos otra página distinta y los valores de estas variables se pierden a menos que pasemos estos valores por la URL,
o en un formulario para su posterior explotación
Funciones para control de sesiones
12. Scripts de autenticación y sesiones en PHP
Inicio y registro de la sesión
bool session_start ( void )
bool session_register ( mixed nombre [, mixed ...])
register_globals On/Off en php.ini
register_globals On en php.ini
$_SESSION[‘nombrevarsesion’ ] = valorregister_globals Off en php.ini
Idetificación de sesión
string session_id ( [string id])register_globals On/Off en php.ini
Funciones para control de sesiones
12. Scripts de autenticación y sesiones en PHP
Asignación de nombre a la sesión
string session_name ( [string nombre])register_globals On/Off en php.ini
<?php// Cambiar el nombre de la sesión a WebsiteID$nombre_anterior = session_name("WebsiteID");echo "El anterior nombre de la sesión era $nombre_anterior<p>";echo "Mientras que el nuevo es " . session_name();?>
Funciones para control de sesiones
12. Scripts de autenticación y sesiones en PHP
Comprobación de registro de sesión
bool session_is_registered ( string nombre ) register_globals On en php.ini
if (isset($_SESSION[‘nombrevarsesion’ ]))register_globals Off en php.ini
Borrado de la sesión
bool session_destroy ( void )register_globals On/Off en php.ini
Funciones para control de sesiones
12. Scripts de autenticación y sesiones en PHP
Eliminar variables de sesión
void session_unset ( void )register_globals On en php.ini
unset($_SESSION[‘nombresvarsesion’ ])register_globals Off en php.ini
Ejemplos de control de sesiones
12. Scripts de autenticación y sesiones en PHP
Ejemplos de control de sesiones
12. Scripts de autenticación y sesiones en PHP
phpunset.php<?phpsession_name("abecerra");session_start();unset($_SESSION['abecerra']);echo "Acabo de eliminar la variable de sesión <b>" . session_name() ."</b>";?>
Ejemplo de control de autenticación
12. Scripts de autenticación y sesiones en PHP
phplogin.php phpsesion.php miinicio.php
Proceso deautenticación
Definir el entorno de sesión
Página deinicio de usuario
No inicio de sesión
mipagina2.php
Segunda página deinicio de usuario
No inicio de sesión
logout.php
Destruir el entornode la sesión
Presentar ejemplo por pantalla
Ejemplo de control de autenticación
12. Scripts de autenticación y sesiones en PHP
phplogin.php<HTML><HEAD><TITLE>Inicio de sesión</TITLE></HEAD><BODY bgcolor="Aqua"><FORM name="form1" method="POST" action="phpsesion.php"><TABLE width="400"> <TR> <td colspan="2"> <div align="center"><B>Introduzca un nombre de usuario y una contraseña</B></DIV> </TD></TR><TR> <TD><DIV align="right">Nombre de usuario:</DIV></TD><TD><INPUT type="text" name="username"></TD></TR>
<TR><TD><DIV align="right">Contraseña</DIV></TD><TD><INPUT type="password" name="password" maxlength="15"></TD></TR><TR><TD colspan="2"><CENTER><INPUT type="submit" name="submit" value="Enviar"></CENTER></TD></TR></TABLE></FORM></BODY><HTML>
Ejemplo de control de autenticación
12. Scripts de autenticación y sesiones en PHP
phpsesion.php<?PHP// Obteniendo las variables externas // del inicio de sesion$username = $_POST['username'];$password = $_POST['password'];// Definición del entorno de sesionsession_start();$_SESSION['username']=$username;// Autenticando la contraseñaif (empty($password)){ unset($_SESSION['username']); die("No se ha introducido la contraseña. <a href=phplogin.php>Vuelva a intentarlo");}if (strlen($password) < 5){ unset($_SESSION['username']); die("La contraseña introducida es demasiado corta.
<a href=phplogin.php>Vuelva a intentarlo");}// Enviando a la página de inicio del usuario$url = "Location:miinicio.php";header($url);?>
Ejemplo de control de autenticación
12. Scripts de autenticación y sesiones en PHP
miinicio.php<?PHP// Iniciar la sesiónsession_start();// Obtener el entorno de la sesión y comprobar // que esté definido. if (!isset($_SESSION['username'])){session_destroy(); die ("Por favor, <a href=phplogin.php>inicie, primero, la sesión");}?><HTML><HEAD><TITLE> Mi página de inicio</TITLE></HEAD><BODY bgcolor="Silver" text="Red"><TABLE width="330" border="10" align="center"
cellpadding="5"cellspacing="2"><TR><TD>
<DIV align="center"><B>Bienvenido a la página de inicio de <?PHP echo $_SESSION['username'];?><B></DIV>...<CENTER><B> ¡¡ Mi Página de Inicio !! </B></CENTER>...<CENTER><a href="mipagina2.php">Página 2</a></CENTER>...<CENTER><a href="logout.php">Cerrar la sesión</a></CENTER>
Ejemplo de control de autenticación
12. Scripts de autenticación y sesiones en PHP
mipagina2.php<?PHP// Iniciar la sesiónsession_start();// Obtener el entorno de la sesión y// comprobar que esté definido. if (!isset($_SESSION['username'])){ session_destroy(); die ("Por favor, <a href=phplogin.php>inicie, primero, la sesión");}?><HTML><HEAD><TITLE> Mi página 2</TITLE></HEAD><BODY><TABLE width="330" border="10" align="center"
cellpadding="5"cellspacing="2"><TR><TD>
<DIV align="center"><B>Bienvenido a la zona privada de <?PHP echo $_SESSION['username'];?><B></DIV>...<CENTER><B> ¡¡ Mi Página 2 !! </B></CENTER>...<CENTER><a href="miinicio.php">Página de Inicio de <?PHP echo $_SESSION['username']; ?></a></CENTER>...<a href="logout.php">Cerrar la sesión</a></CENTER>
Ejemplo de control de autenticación
12. Scripts de autenticación y sesiones en PHP
logout.php<?PHP// Iniciar la sesiónsession_start();// Obtener el entorno de la sesión y // comprobar que esté definidoif (isset($_SESSION['username'])){ // Caso de que la sesión esté definida unset($_SESSION['username']); session_destroy(); $url = "Location:phplogin.php"; header($url);}else { die("Sólo los usuarios registrados pueden cerrar la sesión. <a href=phplogin.php>Inicie primero la sesión");}?>
Ejercicio de carrito de la compra
12. Scripts de autenticación y sesiones en PHP
Desarrollo de aplicaciones PHP
para bases de datos
Almería 2007
Lenguajes de Desarrollo. PHP
Contenidos
10. Paso de variables entre scripts PHP11. Formularios en PHP
12. Scripts de autenticación y sesiones13. Cookies en PHP
14. Gestión de envío de archivos en PHP
Control y manejo de cookies
13. Cookies en PHP
Ingredientes de una cookieIngredientes de una cookie:nombre
valorfecha de caducidad
dominio desde el que se puede leer la cookieruta dentro del servidor
seguridadLimitaciones de las cookiesLimitaciones de las cookies:
300 cookies en total4KBytes por cookie
20 cookies por servidor o dominio
Pequeños archivos de texto que contienen informaciónpara identificar al cliente y personalizar su navegación
Creación de cookies
bool setcookie ( string nombre, string valor, int expirar, string ruta, string dominio, bool segura)
Llamadas a las cookies antes que cualquier salidaLlamadas a las cookies antes que cualquier salidacabeceras http – antes que <html> y <head>cabeceras http – antes que <html> y <head>
13. Cookies en PHP
Ejemplos de cookies
<? setcookie("saludo");?>
<? setcookie("saludo",
"hola");?>
<? // Esta cookie dura una hora. 1 hora = 3600
segundos setcookie("visitas", "1", time()+3600);?>
13. Cookies en PHP
Ejemplos de cookies<? // Esta cookie dura un año setcookie("visitas", "1", time()
+60*60*24*365);?>
php-setcookie.php<? $valor = "algo desde algun lugar"; setcookie("cookiedeprueba",$valor, time() + 3600); /*
expira en una hora */?>
Lectura de cookies
$_COOKIE[‘nombre_cookie’]
13. Cookies en PHP
Ejemplos de cookies
php-leercookie.php<? // Imprime una cookie echo $_COOKIE['cookiedeprueba'] . "<br>"; // Otra forma de depurar las cookies echo "<pre>"; print_r($_COOKIE); echo "</pre>";?>
Eliminación de cookies
Crear la cookie con valor vacío y tiempo de vida pasado
13. Cookies en PHP
Ejemplos de cookies
php-borrarcookie.php<? setcookie("cookiedeprueba","", time() - 3600); /* expiró hace una hora */ echo "Acabo de eliminar la cookie
cookiedeprueba";?>
Ejemplo interesante de cookies (restricción de acceso)
13. Cookies en PHP
php-accesocookie.php<?phpif (!isset($_COOKIE['intentos'])) $intentos = 1;else $intentos = $_COOKIE['intentos'] + 1;
setcookie('intentos',$intentos,time() + 60);if ($intentos <= 3){ echo "<tt>Eres el intento número: " . $intentos . "<br>"; echo "Por tanto, puedes pasar</tt>";}else echo "<tt>Prueba un poco mas tarde, crack</tt>";?>
Un minuto más tarde
Desarrollo de aplicaciones PHP
para bases de datos
Almería 2007
Contenidos
10. Paso de variables entre scripts PHP11. Formularios en PHP
12. Scripts de autenticación y sesiones13. Cookies en PHP
14. Gestión de envío de archivos en PHP
Lenguajes de Desarrollo. PHP
14. Gestión de archivos en PHP
php-file.php<html><head><title>Ejemplo de envio de archivos en PHP</title></head><body><form enctype="multipart/form-data" action="php-upload.php" method="post"><input type="hidden" name="MAX_FILE_SIZE" value="100000">Enviando este archivo: <input name="archivousuario“ type="file"><br><input type="submit" value="Enviar Archivo"></form></body></html>
14. Gestión de archivos en PHP
Control de upload
$_FILES [‘archivousuario’][‘name’]$_FILES [‘archivousuario’][‘type’]$_FILES [‘archivousuario’][‘size’]$_FILES [‘archivousuario’][‘tmp_name’]$_FILES [‘archivousuario’][‘error’]
bool is_uploaded_file ($_FILES [‘archivousuario’][‘tmp_name’])
Funciones de gestión de archivos
bool move_uploaded_file (nombre_archivo_servidor, destino)
14. Gestión de archivos en PHP
Control de uploadphp-upload.php<html><head><title>Ejemplo de envio de archivos en PHP</title></head><body><?php if (is_uploaded_file($_FILES['archivousuario']['tmp_name'])) { echo "He recibido el archivo: " . $_FILES['archivousuario']
['name'] . "<br>"; echo "Su tamaño es de: " . $_FILES['archivousuario']['size'] .
"<br>"; echo "Su nombre temporal en el servidor es: “ . $_FILES['archivousuario']['tmp_name'] . "<br>"; $nombre_archivo = "/temp/uploads/" . $_FILES['archivousuario']
['name']; move_uploaded_file($_FILES['archivousuario']['tmp_name'],
$nombre_archivo);}
14. Gestión de archivos en PHP
Control de upload
php-upload.phpelse { echo "Possible ataque de carga de archivo. Nombre Archivo: " . $_FILES['archivousuario']['name'] . "<br>"; if ($_FILES['archivousuario']['error']==UPLOAD_ERR_INI_SIZE) echo "El tamaño excede lo especificado en el archivo
php.ini"; if ($_FILES['archivousuario']['error']==
UPLOAD_ERR_FORM_SIZE) echo "El tamaño excede lo especificado para este caso"; if ($_FILES['archivousuario']['error']==UPLOAD_ERR_PARTIAL) echo "El tamaño no ha subido completamente";}?></body></html>
14. Gestión de archivos en PHP
Control de upload
14. Gestión de archivos en PHP
Ejercicio de envío múltiple de archivos
Antonio Becerra Teró[email protected]
Departamento de Lenguajes y ComputaciónUniversidad de Almería
Desarrollo de aplicaciones PHP para bases de datos
Almería 2007
Lenguajes de Desarrollo. PHP