Cookies Y Bases De Datos

17
PHP y las cookies ¿QUÉ SON LAS COOKIES? Las cookies son información que el servidor web envía al navegador web y que el cliente almacena en su sistema local como ficheros de texto La información almacenada en ese fichero puede ser recuperada por el servidor web cuando el usuario visita cualquier página del servidor. Su principal objetivo es identificar al usuario para poder preparar páginas personalizadas Son muy prácticas para almacenar cosas como el número de visitas, preferencias, estado de conexión, y en general información que sirva para realzar la navegación del cliente

description

INFORMACIÓN SOBRE COOKIES Y EJEMPLO DE PROGRAMA ACCEDIENDO A BASE DE DATOS

Transcript of Cookies Y Bases De Datos

Page 1: Cookies Y Bases De Datos

PHP y las cookies

• ¿QUÉ SON LAS COOKIES?• Las cookies son información que el servidor web envía

al navegador web y que el cliente almacena en su sistema local como ficheros de texto

• La información almacenada en ese fichero puede ser recuperada por el servidor web cuando el usuario visita cualquier página del servidor.

• Su principal objetivo es identificar al usuario para poder preparar páginas personalizadas

• Son muy prácticas para almacenar cosas como el número de visitas, preferencias, estado de conexión, y en general información que sirva para realzar la navegación del cliente

Page 2: Cookies Y Bases De Datos

PHP y las cookies

• Las cookies pueden ser usadas para simular una conexión continua – Gracias a ellas el usuario puede continuar la navegación por un

sitio web en el último punto en que lo dejó su última conexión– No fueron creadas para “espiar” o invadir la privacidad de los

usuarios de Internet– No tienen posibilidades de realizar acciones sobre el equipo del

cliente– El usuario tiene la posibilidad de configurar su navegador para:

• No aceptar cookies• Aceptar únicamente las cookies de determinados servidores• Pregunta al usuario antes de generar el fichero local con la cookie

Page 3: Cookies Y Bases De Datos

PHP y las cookies

• La cookie es enviada al navegador desde el servidor y si éste la acepta, se almacena en un fichero de texto local

• Cada vez que el usuario visita una página del sitio web, el servidor solicita la cookie al navegador

• El servidor recibe la cookie con información del usuario y puede preparar una página personalizada

Page 4: Cookies Y Bases De Datos

PHP y las cookies

• Importante: Las cookies deben ser enviadas desde el servidor al cliente antes que ninguna otra información

• Para crear una cookie se utiliza la función de PHP setcookie cuya sintaxis mínima es – Setcookie(nombre, valor)La función anterior devuelve un valor booleano indicando si se

produjo algún fallo en el proceso. Si devuelve un valor true no significa que el usuario aceptó la cookie

Si en la llamada a la función no se especifica ningún valor, lo que realmente se realiza es borrar la cookie indicada

setcookie (nombre)

Page 5: Cookies Y Bases De Datos

PHP y las cookies

• Los protocolos web establecen un número máximo de cookies que pueden ser enviadas de un mismo servidor a un mismo usuario (20 como máximo)

• Para recuperar el valor de una cookie basta con utilizar una variable PHP con el nombre de la cookie

$nombre

Page 6: Cookies Y Bases De Datos

PHP y las cookies• Ejemplo: Fecha y hora del último acceso• <?• setcookie("visita",date("d/m/Y \a \l\a\s H:i"),time()+30*24*3600);• ?>• <HTML>• <HEAD>• <TITLE>• PÁGINA DE INCIIO• </TITLE>• </HEAD>• <BODY>• <H1>• Bienvenido a nuestra página• </H1>• <?php• if (isset($visita))• echo "La última vez que nos visitaste fue $visita";• ?>• </BODY>

Page 7: Cookies Y Bases De Datos

PHP y las cookies• <html> <head><title>Registro</title></head>• <body>• <h1>Registro como usuario</h1>• Introduzca su nombre:• <FORM ACTION ="COOKIE.PHP" METHOD ="GET">• <INPUT TYPE="TEXT" NAME="nombre"><BR>• <INPUT TYPE ="SUBMIT" VALUE="ENVIAR">• </FORM>• </BODY>• </HTML>• <?• if (isset($nombre))• setcookie("nomusuario",$nombre);• ?>• <?• if (isset($nomusuario))• echo "$nomusuario, gracias por su visita";• else• echo "Por favor, regístrese";• ?>

Page 8: Cookies Y Bases De Datos

Cookie 1• <!doctype html public "-//W3C//DTD HTML 4.0 //EN">• <?php• if (isset($nvis)){• $nvis++;• setcookie("nvis",$nvis,time()+3600);}• else{• setcookie("nvis",1,time()+3600);• $nvis=1;• }

• ?>• <html>• <head>• <title>Ya, ya</title>• </head>• <body>• <?php• if ($nvis>5){• echo "Acceso no permitido";}• else{• echo "Número de visita ",$nvis;• }• ?>• </body>• </html>

Page 9: Cookies Y Bases De Datos

Cookie 2• <!doctype html public "-//W3C//DTD HTML 4.0 //EN">• <?php• $ahora=time();• setcookie("ultima",$ahora);• if (isset($ultima) and ($ahora-$ultima>5))• echo "Hace más de cinco segundos que no nos visitabas, mardito roedor";

• ?>• <html>• <head>• <title>Fantabulosa segunda cookie</title>• </head>• <body>

• <H1> Bienvenido a nuestra página</H1>• </body>• </html>

Page 10: Cookies Y Bases De Datos

PHP y las cookies

• Cuando se crean las cookies con la sintaxis anterior, éstas estarán definidas únicamente durante la sesión (cuando el usuario cierra su navegador desaparecen)

• Si queremos que la cookie permanezca en el equipo del usuario cuando éste cierre la sesión, deberá indicarse en su costrucción un parámetro adicional con un período de expiraciónsetcookie (nombre, valor, expiración)

El parámetro de expiración se indica sumando a la función time() el número de segundos que se desea que permanezca la cookie en el equipo del usuario

Page 11: Cookies Y Bases De Datos

PHP y las cookies

• Cookie con un período de expiración de 60 segundos

• Setcookie(“cookie1”,”valor1”,time()+60

• Una hora:

• Setcookie(“cookie1”,”valor1”,time()+3600

• 30 días

• Setcookie(“cookie1”,”valor1”,time()+30*24*3600

Page 12: Cookies Y Bases De Datos

PHP y las cookies

• Para borrar una cookie que tiene establecido un valor con período de expiración, debe utilizarse la sintaxis:

• Setcookie(“NombreCookie”,””,time());

Page 13: Cookies Y Bases De Datos

PHP y las cookies• En todo script PHP siempre se tiene acceso a una variable de tipo

array global predefinida en la que están almacenadas todas las cookies recibidas del equipo del cliente

• $http_cookie_vars:• <?• foreach($HTTP_COOKIE_VARS as $c){• echo "$c<br>";• }• while(list($n,$v)=each($HTTP_COOKIE_VARS)){• echo "$n=$<br>";• }• ?>

Page 14: Cookies Y Bases De Datos

PHP y las cookies

• Por defecto, si una cookie ha sido generada desde una página web su valor puede ser visto desde cualquier otra página del mismo directorio o subdirectorios en el que reside la página inicial

• Si se desea modificar esa visibilidad se puede indicar la ruta concreta en el servidor web a partir de la cual la cookie es visible

• Setcookie(“micookie”,”1”,timr()+60,”/sub/ Visible a partir del subdirectorio sub

Page 15: Cookies Y Bases De Datos

PHP y las cookies

• Ejercicios:– Construir una página PHP que no permita

acceder a ella desde el mismo ordenador más de cinco veces

– Construir una página que muestre un mensaje “Bienvenido, hace mucho que no te vemos por aquí”, cuando acceda un usuario que haga más de diez días que no visitaba la página

Page 16: Cookies Y Bases De Datos

Base de datos 1• <!doctype html public "-//W3C//DTD HTML 4.0 //EN">• <html>• <head>• <title>Title here!</title>• </head>• <body>

• <table border="0" summary="">• <form action="Basedatos.php" method="post">

• <tr>• <td>Código</td>• <td><input type="text" name="Codigo" size="20" maxlength="256"></td>• </tr>• <tr>• <td>Nombre</td>• <td><input type="text" name="Nombre" size="20" maxlength="256"> </td>• </tr>• <tr>• <td>Dirección Postal</td>• <td><input type="text" name="Dirección" size="20" maxlength="256"> </td>• </tr>• <tr>• <td>E-Mail</td>• <td><input type="text" name="Mail" size="20" maxlength="256"> </td>• </tr>• </table>

Page 17: Cookies Y Bases De Datos

Base de Datos 1• <Input type="submit"value="Enviar">• <Input type="reset" value="borrar">• </form>• <?php• if (isset($Nombre)){• $c=mysql_connect("localhost","root","");• if (!$c){• die("Conexión Fallida");• }• $s=mysql_select_db("mibd",$c);• $consulta="INSERT INTO usuarios(codigus,nombre,direccion,email) VALUES ('$Codigo','$Nombre','$Dirección','$Mail')";• $resultado=mysql_query($consulta);

• if ($resultado){• print("El usuario ha quedado registrado");• }• else{• Print("Error en el registro");• }• mysql_close($c);• }

• ?>