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
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
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
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)
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
PHP y las cookies Ejemplo: Fecha y hora del último acceso <? setcookie(&quot;visita&quot;,date(&quot;d/m/Y \a \l\a\s H:i&quot;),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 &quot;La última vez que nos visitaste fue $visita&quot;; ?> </BODY>
PHP y las cookies <html> <head><title>Registro</title></head> <body> <h1>Registro como usuario</h1> Introduzca su nombre: <FORM ACTION =&quot;COOKIE.PHP&quot; METHOD =&quot;GET&quot;> <INPUT TYPE=&quot;TEXT&quot; NAME=&quot;nombre&quot;><BR> <INPUT TYPE =&quot;SUBMIT&quot; VALUE=&quot;ENVIAR&quot;> </FORM> </BODY> </HTML> <? if (isset($nombre)) setcookie(&quot;nomusuario&quot;,$nombre); ?> <? if (isset($nomusuario)) echo &quot;$nomusuario, gracias por su visita&quot;; else echo &quot;Por favor, regístrese&quot;; ?>
Cookie 1 <!doctype html public &quot;-//W3C//DTD HTML 4.0 //EN&quot;> <?php if (isset($nvis)){ $nvis++; setcookie(&quot;nvis&quot;,$nvis,time()+3600);} else{ setcookie(&quot;nvis&quot;,1,time()+3600); $nvis=1; } ?> <html> <head> <title>Ya, ya</title> </head> <body> <?php if ($nvis>5){ echo &quot;Acceso no permitido&quot;;} else{ echo &quot;Número de visita &quot;,$nvis; } ?> </body> </html>
Cookie 2 <!doctype html public &quot;-//W3C//DTD HTML 4.0 //EN&quot;> <?php $ahora=time(); setcookie(&quot;ultima&quot;,$ahora); if (isset($ultima) and ($ahora-$ultima>5)) echo &quot;Hace más de cinco segundos que no nos visitabas, mardito roedor&quot;; ?> <html> <head> <title>Fantabulosa segunda cookie</title> </head> <body> <H1> Bienvenido a nuestra página</H1> </body> </html>
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ón setcookie (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
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
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());
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 &quot;$c<br>&quot;; } while(list($n,$v)=each($HTTP_COOKIE_VARS)){ echo &quot;$n=$<br>&quot;; } ?>
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
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
Base de datos 1 <!doctype html public &quot;-//W3C//DTD HTML 4.0 //EN&quot;> <html> <head> <title>Title here!</title> </head> <body> <table border=&quot;0&quot; summary=&quot;&quot;> <form action=&quot;Basedatos.php&quot; method=&quot;post&quot;> <tr> <td>Código</td> <td><input type=&quot;text&quot; name=&quot;Codigo&quot; size=&quot;20&quot; maxlength=&quot;256&quot;></td> </tr> <tr> <td>Nombre</td> <td><input type=&quot;text&quot; name=&quot;Nombre&quot; size=&quot;20&quot; maxlength=&quot;256&quot;>  </td> </tr> <tr> <td>Dirección Postal</td> <td><input type=&quot;text&quot; name=&quot;Dirección&quot; size=&quot;20&quot; maxlength=&quot;256&quot;>  </td> </tr> <tr> <td>E-Mail</td> <td><input type=&quot;text&quot; name=&quot;Mail&quot; size=&quot;20&quot; maxlength=&quot;256&quot;>  </td> </tr> </table>
Base de Datos 1 <Input type=&quot;submit&quot;value=&quot;Enviar&quot;> <Input type=&quot;reset&quot; value=&quot;borrar&quot;> </form> <?php if (isset($Nombre)){ $c=mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;&quot;); if (!$c){ die(&quot;Conexión Fallida&quot;); } $s=mysql_select_db(&quot;mibd&quot;,$c); $consulta=&quot;INSERT INTO usuarios(codigus,nombre,direccion,email) VALUES ('$Codigo','$Nombre','$Dirección','$Mail')&quot;; $resultado=mysql_query($consulta); if ($resultado){ print(&quot;El usuario ha quedado registrado&quot;); } else{ Print(&quot;Error en el registro&quot;); } mysql_close($c); } ?>

Cookies Y Bases De Datos

  • 1.
    PHP y lascookies ¿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
  • 2.
    PHP y lascookies 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
  • 3.
    PHP y lascookies 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
  • 4.
    PHP y lascookies 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)
  • 5.
    PHP y lascookies 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
  • 6.
    PHP y lascookies Ejemplo: Fecha y hora del último acceso <? setcookie(&quot;visita&quot;,date(&quot;d/m/Y \a \l\a\s H:i&quot;),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 &quot;La última vez que nos visitaste fue $visita&quot;; ?> </BODY>
  • 7.
    PHP y lascookies <html> <head><title>Registro</title></head> <body> <h1>Registro como usuario</h1> Introduzca su nombre: <FORM ACTION =&quot;COOKIE.PHP&quot; METHOD =&quot;GET&quot;> <INPUT TYPE=&quot;TEXT&quot; NAME=&quot;nombre&quot;><BR> <INPUT TYPE =&quot;SUBMIT&quot; VALUE=&quot;ENVIAR&quot;> </FORM> </BODY> </HTML> <? if (isset($nombre)) setcookie(&quot;nomusuario&quot;,$nombre); ?> <? if (isset($nomusuario)) echo &quot;$nomusuario, gracias por su visita&quot;; else echo &quot;Por favor, regístrese&quot;; ?>
  • 8.
    Cookie 1 <!doctypehtml public &quot;-//W3C//DTD HTML 4.0 //EN&quot;> <?php if (isset($nvis)){ $nvis++; setcookie(&quot;nvis&quot;,$nvis,time()+3600);} else{ setcookie(&quot;nvis&quot;,1,time()+3600); $nvis=1; } ?> <html> <head> <title>Ya, ya</title> </head> <body> <?php if ($nvis>5){ echo &quot;Acceso no permitido&quot;;} else{ echo &quot;Número de visita &quot;,$nvis; } ?> </body> </html>
  • 9.
    Cookie 2 <!doctypehtml public &quot;-//W3C//DTD HTML 4.0 //EN&quot;> <?php $ahora=time(); setcookie(&quot;ultima&quot;,$ahora); if (isset($ultima) and ($ahora-$ultima>5)) echo &quot;Hace más de cinco segundos que no nos visitabas, mardito roedor&quot;; ?> <html> <head> <title>Fantabulosa segunda cookie</title> </head> <body> <H1> Bienvenido a nuestra página</H1> </body> </html>
  • 10.
    PHP y lascookies 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ón setcookie (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
  • 11.
    PHP y lascookies 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
  • 12.
    PHP y lascookies Para borrar una cookie que tiene establecido un valor con período de expiración, debe utilizarse la sintaxis: Setcookie(“NombreCookie”,””,time());
  • 13.
    PHP y lascookies 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 &quot;$c<br>&quot;; } while(list($n,$v)=each($HTTP_COOKIE_VARS)){ echo &quot;$n=$<br>&quot;; } ?>
  • 14.
    PHP y lascookies 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
  • 15.
    PHP y lascookies 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
  • 16.
    Base de datos1 <!doctype html public &quot;-//W3C//DTD HTML 4.0 //EN&quot;> <html> <head> <title>Title here!</title> </head> <body> <table border=&quot;0&quot; summary=&quot;&quot;> <form action=&quot;Basedatos.php&quot; method=&quot;post&quot;> <tr> <td>Código</td> <td><input type=&quot;text&quot; name=&quot;Codigo&quot; size=&quot;20&quot; maxlength=&quot;256&quot;></td> </tr> <tr> <td>Nombre</td> <td><input type=&quot;text&quot; name=&quot;Nombre&quot; size=&quot;20&quot; maxlength=&quot;256&quot;> </td> </tr> <tr> <td>Dirección Postal</td> <td><input type=&quot;text&quot; name=&quot;Dirección&quot; size=&quot;20&quot; maxlength=&quot;256&quot;> </td> </tr> <tr> <td>E-Mail</td> <td><input type=&quot;text&quot; name=&quot;Mail&quot; size=&quot;20&quot; maxlength=&quot;256&quot;> </td> </tr> </table>
  • 17.
    Base de Datos1 <Input type=&quot;submit&quot;value=&quot;Enviar&quot;> <Input type=&quot;reset&quot; value=&quot;borrar&quot;> </form> <?php if (isset($Nombre)){ $c=mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;&quot;); if (!$c){ die(&quot;Conexión Fallida&quot;); } $s=mysql_select_db(&quot;mibd&quot;,$c); $consulta=&quot;INSERT INTO usuarios(codigus,nombre,direccion,email) VALUES ('$Codigo','$Nombre','$Dirección','$Mail')&quot;; $resultado=mysql_query($consulta); if ($resultado){ print(&quot;El usuario ha quedado registrado&quot;); } else{ Print(&quot;Error en el registro&quot;); } mysql_close($c); } ?>