https://es.wikieducator.org/index.php?title=Usuario:ManuelRomero/PHP/sesiones&feed=atom&action=history
Usuario:ManuelRomero/PHP/sesiones - Historial de revisiones
2024-03-29T07:40:52Z
Historial de revisiones para esta página en el wiki
MediaWiki 1.23.14
https://es.wikieducator.org/index.php?title=Usuario:ManuelRomero/PHP/sesiones&diff=17052&oldid=prev
ManuelRomero en 13:15 25 feb 2015
2015-02-25T13:15:05Z
<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Revisión anterior</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revisión de 13:15 25 feb 2015</td>
</tr><tr><td colspan="2" class="diff-lineno">Línea 1:</td>
<td colspan="2" class="diff-lineno">Línea 1:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><!--__NOEDITSECTION__--></div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><!--__NOEDITSECTION__--></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>__NOTOC__</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>__NOTOC__</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>{{:Usuario:ManuelRomero/php/<del class="diffchange diffchange-inline">cookies</del>/nav}}</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{:Usuario:ManuelRomero/php/<ins class="diffchange diffchange-inline">sesiones</ins>/nav}}</div></td></tr>
</table>
ManuelRomero
https://es.wikieducator.org/index.php?title=Usuario:ManuelRomero/PHP/sesiones&diff=17047&oldid=prev
ManuelRomero en 11:46 25 feb 2015
2015-02-25T11:46:02Z
<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Revisión anterior</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revisión de 11:46 25 feb 2015</td>
</tr><tr><td colspan="2" class="diff-lineno">Línea 1:</td>
<td colspan="2" class="diff-lineno">Línea 1:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><!--__NOEDITSECTION__--></div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><!--__NOEDITSECTION__--></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>__NOTOC__</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>__NOTOC__</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>{{:Usuario:ManuelRomero/php/<del class="diffchange diffchange-inline">sesiones</del>/nav}}</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{:Usuario:ManuelRomero/php/<ins class="diffchange diffchange-inline">cookies</ins>/nav}}</div></td></tr>
</table>
ManuelRomero
https://es.wikieducator.org/index.php?title=Usuario:ManuelRomero/PHP/sesiones&diff=17039&oldid=prev
ManuelRomero: Página reemplazada por «<!--__NOEDITSECTION__--> __NOTOC__ {{:Usuario:ManuelRomero/php/sesiones/nav}}»
2015-02-25T11:41:38Z
<p>Página reemplazada por «<!--__NOEDITSECTION__--> __NOTOC__ {{:Usuario:ManuelRomero/php/sesiones/nav}}»</p>
<a href="https://es.wikieducator.org/index.php?title=Usuario:ManuelRomero/PHP/sesiones&diff=17039&oldid=17037">Mostrar los cambios</a>
ManuelRomero
https://es.wikieducator.org/index.php?title=Usuario:ManuelRomero/PHP/sesiones&diff=17037&oldid=prev
ManuelRomero en 11:40 25 feb 2015
2015-02-25T11:40:36Z
<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Revisión anterior</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revisión de 11:40 25 feb 2015</td>
</tr><tr><td colspan="2" class="diff-lineno">Línea 1:</td>
<td colspan="2" class="diff-lineno">Línea 1:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><!--__NOEDITSECTION__--></div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div><!--__NOEDITSECTION__--></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>__NOTOC__</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>__NOTOC__</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>{<del class="diffchange diffchange-inline">|cellpadding="5" cellspacing="6" style="width:100%;background:#DFFFFF; border-style:solid; border-width:2px; border-color:#0066FF;" </del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{:<ins class="diffchange diffchange-inline">Usuario</ins>:<ins class="diffchange diffchange-inline">ManuelRomero</ins>/<ins class="diffchange diffchange-inline">php/sesiones/nav}</ins>}</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">| width="100%" valign="top" style="padding: 0; margin:0px;" |</del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>{<del class="diffchange diffchange-inline">|cellpadding="5" cellspacing="6" style="width</del>:<del class="diffchange diffchange-inline">100%;background</del>:<del class="diffchange diffchange-inline">#DFFFFF; border-style:solid; border-width:1px; border-color:#0066FF;" </del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">| width="100%" valign="top" style="padding: 0; margin:0px;" |</del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline"><span style="background:#FFFF99"></del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline"><</del>/<del class="diffchange diffchange-inline">span> </del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">[[Imagen:DWES_TituloTema5.png|center]]</del></div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">|</del>}</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>===Qué es una Cookie===</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>===Qué es una Cookie===</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>*Una cookie es una pequeña cantidad de datos almacenada por el navegador del usuario cuando solicita una página a un servidor.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>*Una cookie es una pequeña cantidad de datos almacenada por el navegador del usuario cuando solicita una página a un servidor.</div></td></tr>
<tr><td colspan="2" class="diff-lineno">Línea 339:</td>
<td colspan="2" class="diff-lineno">Línea 332:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>*'''''Opera''''': http://help.opera.com/Windows/11.50/es-ES/cookies.html</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>*'''''Opera''''': http://help.opera.com/Windows/11.50/es-ES/cookies.html</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>*'''''Safari''''': http://support.apple.com/kb/ph5042</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>*'''''Safari''''': http://support.apple.com/kb/ph5042</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">|}</del></div></td><td colspan="2"> </td></tr>
</table>
ManuelRomero
https://es.wikieducator.org/index.php?title=Usuario:ManuelRomero/PHP/sesiones&diff=17036&oldid=prev
ManuelRomero: Página creada con «<!--__NOEDITSECTION__--> __NOTOC__ {|cellpadding="5" cellspacing="6" style="width:100%;background:#DFFFFF; border-style:solid; border-width:2px; border-color:#0066FF;" | w...»
2015-02-25T11:39:12Z
<p>Página creada con «<!--__NOEDITSECTION__--> __NOTOC__ {|cellpadding="5" cellspacing="6" style="width:100%;background:#DFFFFF; border-style:solid; border-width:2px; border-color:#0066FF;" | w...»</p>
<p><b>Página nueva</b></p><div><!--__NOEDITSECTION__--><br />
__NOTOC__<br />
{|cellpadding="5" cellspacing="6" style="width:100%;background:#DFFFFF; border-style:solid; border-width:2px; border-color:#0066FF;" <br />
| width="100%" valign="top" style="padding: 0; margin:0px;" |<br />
{|cellpadding="5" cellspacing="6" style="width:100%;background:#DFFFFF; border-style:solid; border-width:1px; border-color:#0066FF;" <br />
| width="100%" valign="top" style="padding: 0; margin:0px;" |<br />
<span style="background:#FFFF99"><br />
</span> <br />
[[Imagen:DWES_TituloTema5.png|center]]<br />
|}<br />
===Qué es una Cookie===<br />
*Una cookie es una pequeña cantidad de datos almacenada por el navegador del usuario cuando solicita una página a un servidor.<br />
*Con esto podemos suplir la característica de que http es un protocolo sin estado (Insistir en que esto es una característica del protocolo, no una limitación.<br />
*Una Cookie es un fichero que se '''''almacene en el cliente''''' y guarda información de ese cliente en referencia a una determinada sitio web.<br />
*Como se guardan en el cliente, se necesita confirmación expresa del cliente para dejar que se almacenen cosas en su equipo<br />
*En general no se debe de abusar de ellas, máxime cuando muchos las pueden tener deshabilitadas y esto puede impedir que nuestra aplicación web se ejecute de forma eficiente o incluso correcta.<br />
*El servidor es quien solicita la creación del coockie en el cliente<br />
*El cliente crea un fichero con dicha información<br />
*Una vez creada, solo puede ser leída por el sitio web que la creó.<br />
*Para trabajar con cookies tenemos que hacer dos cosas<br />
*El tamaño máximo de un cookie está limitado a 4K.<br />
#Alamacenar o crear la cookie<br />
#Poder leerla en un momento determinado<br />
====Crear una coockie====<br />
*Para ello usaremos la fucnión '''''setCookie(...)'''''<br />
*En esta función puede recibir hasta 7 parámetros, (sólo el primero es obligatorio).<br />
http://es.php.net/manual/es/function.setcookie.php<br />
*Es habitual usar los tres primeros que serían<br />
#Nombre de la cookie<br />
#Valor que almacenamos en ella<br />
#Tiempo de expiración: es un entero en segundos. Si no se especifica, la cookie termiará junto a esta sesión.<br />
*Por ejemplo si quieremos almacenar el usuario y que tenga un tiempo de duración de 1 hora<br />
<source lang=php><br />
setcookie("usuario", $_SERVER['PHP_AUTH_USER'], time()+3600);<br />
</source><br />
*Importante el envío de cookies al cliente ha de hacerse antes de que se escriba nada en html, igual que las funciones header.<br />
====Recuperar la cookie====<br />
*El proceso de recuperación de la información que almacena una cookie es muy simple. <br />
*Cuando accedes a un sitio web, el navegador (cliente), le envía de forma automática todo el contenido de las cookies que almacene relativas a ese sitio en concreto (servidor). <br />
*Desde PHP se puede acceder a esta información por medio del array $_COOKIE.<br />
*Para recuperar los datos anteriores<br />
<source lang=php><br />
$usuario = $_COOKIE['usuario'];<br />
</source><br />
====Borrar una cookie====<br />
*Para borrar la cookie usamos la función setcookie con un tiempo negativo<br />
<source lang="php"><br />
<?php<br />
// Ponemos un tiempo de expiración negativo<br />
setcookie("user", "", time()-3600);<br />
?><br />
</source><br />
{{Actividad|<br />
*En la página registro.php anterior, almacena en una cookie el último instante en que el cualquier usuario visitó la página. <br />
*Si es su primera visita, muestra un mensaje de bienvenida.<br />
* En caso contrario, muestra la fecha y hora de su anterior visita.<br />
* Deberás utilizar la función setcookie para guardar el instante de su anterior visita y mostrar su contenido utilizando el array $_COOKIE.<br />
<br />
==Posible solucion==<br />
*Tomado el ejemplo anterior (de autentificación), habría que añadir el siguiente código<br />
<source lang=php><br />
<br />
if($resultado->num_rows == 0) {<br />
//......<br />
<br />
<br />
else {<br />
if (isset($_COOKIE['ultimo_login'])) {<br />
$ultimo_login = $_COOKIE['ultimo_login'];<br />
}<br />
setcookie("ultimo_login", time(), time()+3600);<br />
}<br />
<br />
//..... y una vez dentro de la página<br />
<br />
if (isset($ultimo_login))<br />
echo "Ultimo login: " . date("d/m/y \a \l\a\s H:i", $ultimo_login);<br />
else<br />
echo "Bienvenido. Esta es su primera visita."<br />
<br />
<br />
<br />
<br />
</source><br />
<br />
}}<br />
{{Resumen|<br />
==Creación de coockies==<br />
<source lang="php"><br />
<?php<br />
$expire = time()*60*60*24*30 //La coockie durará un mes<br />
setcookie("user", "Alex Porter", $expire);<br />
?><br />
</source><br />
*Si tiempo de expiración es 0, la coockie que solo dura la sesion<br />
<source lang="php"><br />
<?php<br />
$expire = =; //La coockie durará lo que dure la sesión<br />
setcookie("user", "Alex Porter", $expire);<br />
?><br />
</source><br />
== Ver el valor de una cookie ==<br />
<source lang="php"><br />
<?php<br />
// Ver una cookie concreta<br />
echo $_COOKIE["user"];<br />
<br />
// Para ver todas las cookies<br />
print_r($_COOKIE);<br />
?><br />
</source><br />
<br />
== Borrado ==<br />
<source lang="php"><br />
<?php<br />
// Ponemos un tiempo negativo<br />
setcookie("user", "", time()-3600);<br />
?><br />
</source><br />
}}<br />
<br />
{{Actividades|<br />
*Crea una pagina que simule ser la de un periódico. La misma debe permitir configurar que tipo de titular deseamos que aparezca al visitarla, pudiendo ser:<br />
#Noticia política.<br />
#Noticia económica.<br />
#Noticia deportiva.<br />
*Mediante tres objetos de tipo radio, permitir seleccionar que titular debe mostrar el periódico. <br />
*Almacenar en una cookie el tipo de titutar que desea ver el cliente.<br />
*La primera vez que visita el sitio deben aparecer los tres titulares.<br />
}}<br />
{{Actividad|<br />
*Realiza el ejercicio de la siguiente referencia<br />
*http://www.mclibre.org/consultar/php/ejercicios/cookies/cookies.html}}<br />
}}<br />
{{Lectura|Title=Referencias en la web|<br />
*http://docs.php.net/manual/es/features.cookies.php<br />
*http://docs.php.net/manual/es/function.setcookie.php<br />
*http://www.w3schools.com/php/php_cookies.asp<br />
*http://www.mclibre.org/consultar/php/lecciones/php_cookies.html<br />
Normativa: Directiva 2009/136/CE}}<br />
===Coockies con array===<br />
*En este caso la cookie en lugar de contener un solo valor va a contener un array<br />
*A la hora de leer la cookie se hace igual que hasta ahora<br />
*Supongamos que tenemos varias cookies, dependiendo del usuario que se ha conectado<br />
*De cada uno de esos usuarios tendríamos los accesos que ha realizado en un array indexado indicando la hora <br />
*Leemos la cookie<br />
<source lang=php><br />
<?php<br />
....<br />
$usuario = $_POST['usuario']<br />
......<br />
//Leemos la cookie que es un array de accesos<br />
$arrayAccesos = $_COOKIE[$usuario];<br />
.....<br />
</source><br />
*Guardar la cookie<br />
*Esto crea el plateamiento de como guardar la cookie a la hora de qué nombre va a tener esta cookie<br />
*Es como que en la misma cookie queremos guardar muchos valores, pero en realidad guardamos uno solo que es el array<br />
*Una manera de hacerlo es incorporar a la cookie ya guardada el nuevo índice<br />
*Para ello una manera de hacerlo es obtener el valor del indice del nuevo elemento obteniendo el tamaño del vector hasta ahora<br />
*Incorporamos en la posición correspondiente el nuevo valor<br />
<source lang=php><br />
....<br />
$usuario = $_POST['usuario']<br />
......<br />
//Leemos la cookie que es un array de accesos<br />
$arrayAccesos = $_COOKIE[$usuario];<br />
.....<br />
//Ahora ya puedo obtener el tamaño del vector<br />
$indice = count($arrayAccesos);<br />
//Con este valor añado la nueva entrada<br />
setCookie($usuario.'['.$indice.']',time(),time()+3600<br />
.....<br />
</source><br />
<br />
{{Actividad|<br />
*Añade en la base de datos usuarios varios usuarios diferentes<br />
*Crea un formulario para que el usuario sepuede registrar<br />
<source lang=html5><br />
<div id="login"><br />
<fieldset ><br />
<legend>Login</legend><br />
<form action="." method="POST"><br />
<label for='nombre' >Nombre:</label><br />
<input type="text" name ="nombre"><br />
<label for='pass'>Password: </label><br />
<input type="text" name ="pass"><br />
<input type="submit" value="Cambiar Usuario" name="registrar"/><br />
</form><br />
</fieldset><br />
</div><br />
</source><br />
*Visualiza los accesos del usuario acutual así como los accesos del resto de usuarios<br />
*Aquí podemos ver el ejemplo<br />
http://www.manuel.infenlaces.com/cookies/<br />
*Para el formulario este sencillo css<br />
<source lang=css><br />
#login fieldset {<br />
width: 230px;<br />
padding:10px;<br />
border:1px solid #ccc;<br />
background-color: #eee;<br />
}<br />
<br />
#login legend {<br />
font-family : Arial, sans-serif;<br />
font-size: 1.3em;<br />
font-weight:bold;<br />
color:#333;<br />
}<br />
</source><br />
<br />
===Posible solución del ejercicio===<br />
<source lang=php><br />
<br />
<?php<br />
// Si el usuario aún no se ha autentificado, pedimos las credenciales<br />
//Si me he registrado verifico los datos<br />
require_once "baseDatos.php";<br />
$usuario = $_POST['nombre'];<br />
$pass = $_POST['pass'];<br />
$conexion = conectar();<br />
if ($conexion != null) { //Se ha conectado ok a la bd<br />
date_default_timezone_set('Europe/Madrid');<br />
// Ejecutamos la consulta para comprobar si existe<br />
// esa combinación de usuario y contraseña<br />
$sql = <<<SQL<br />
SELECT usuario FROM usuarios<br />
where usuario = ?<br />
and<br />
contrasena =?<br />
SQL;<br />
<br />
$stmt = $conexion->stmt_init();<br />
$stmt->prepare($sql);<br />
<br />
$stmt->bind_param("ss", $usuario, md5($pass));<br />
$stmt->execute();<br />
$stmt->store_result();<br />
//$stmt->bind_result($u);<br />
// Si no existe, se vuelven a pedir las credenciales<br />
$indice = 0;<br />
if ($stmt->num_rows == 0) {<br />
$error = "Usuario no reconocido";<br />
} else {<br />
if (isset($_COOKIE[$usuario])) {<br />
//Leemos la cookie y obtenemos el índice<br />
$acceso = $_COOKIE[$usuario];<br />
$indice = count($acceso);<br />
}<br />
//Añadimos el nuevo acceso en la cookie correspondiente<br />
setcookie($usuario . "[" . ($indice) . "]", time(), time() + 3600);<br />
}<br />
$stmt->free_result();<br />
$conexion->close();<br />
<br />
}<br />
?><br />
<!DOCTYPE html><br />
<html><br />
<head><br />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"><br />
<title>Ejemplo Cookies en autentificación </title><br />
<link href="cookie.css" rel="stylesheet" type="text/css"><br />
</head><br />
<body><br />
<div id="login"><br />
<fieldset ><br />
<legend>Login</legend><br />
<form action="." method="POST"><br />
<label for='nombre' >Nombre:</label><br />
<input type="text" name ="nombre"><br />
<label for='pass'>Password: </label><br />
<input type="text" name ="pass"><br />
<input type="submit" value="Cambiar Usuario" name="registrar"/><br />
</form><br />
</fieldset><br />
</div><br />
<br />
<?php<br />
if ($error == null) {<br />
echo"<h2>Lista de accesos del usuario conectado actualmente $usuario</h2><hr/>";<br />
if (isset($acceso)) {<br />
for ($i = 0; $i < $indice; $i++)<br />
echo "-Acceso número $i a las " . date("d/m/y \a \l\a\s H:i", $acceso[$i]) . "<br/>";<br />
} else<br />
echo "Bienvenido. Esta es su primera visita. $nombre<br/>";<br />
//ahora recorro todos los usuarios";<br />
foreach ($_COOKIE as $user => $accesos) {<br />
if ($user != $usuario) {<br />
echo "<h2> Usuario $user </h2><br/><hr/>";<br />
foreach ($accesos as $numAcceso => $hora) {<br />
echo "Acceso número $numAcceso a las " . date("d/m/y \a \l\a\s H:i", $hora) . "<br/>";<br />
}<br />
}<br />
}<br />
} else<br />
echo "Se ha producido el error $error.<br />";<br />
?><br />
</body><br />
</html><br />
</source><br />
*Bases de datos donde habrá que actualizar las credenciales<br />
<source lang =php><br />
<?php<br />
<br />
/* <br />
* To change this license header, choose License Headers in Project Properties.<br />
* To change this template file, choose Tools | Templates<br />
* and open the template in the editor.<br />
*/<br />
<br />
function conectar(){<br />
$usuarioBD ="manuel_manuel";<br />
$pass ="xv2e6w";<br />
$host = "localhost";<br />
$bd = "manuel_dwes";<br />
$conexion = new mysqli($host,$usuarioBD,$pass,$bd);<br />
//Hacemos una consulta a ver si el usuario existe<br />
if ($conexion->connect_errno){<br />
echo ("Se ha producido un error conectado a la base de datos ".$conexion->connect_error);<br />
return null;<br />
}<br />
return $conexion;<br />
}<br />
?><br />
</source><br />
<br />
}}<br />
<br />
<br />
<br />
<br />
<br />
{{Lectura|Title=Administrar cookies en diferentes navegadores|}}<br />
*'''''Firefox''''' http://support.mozilla.org/es/kb/Borrar%20cookies?esab=a&s=cookies&r=2&as=s<br />
*'''''Chrome/Chromium''''': http://support.google.com/chrome/bin/answer.py?hl=es&answer=95647<br />
*'''''Internet Explorer''''': http://windows.microsoft.com/es-es/windows7/how-to-manage-cookies-in-internet-explorer-9<br />
*'''''Opera''''': http://help.opera.com/Windows/11.50/es-ES/cookies.html<br />
*'''''Safari''''': http://support.apple.com/kb/ph5042<br />
<br />
|}</div>
ManuelRomero