Foros del Web » Programando para Internet » PHP »

Sesiones+cookies

Estas en el tema de Sesiones+cookies en el foro de PHP en Foros del Web. Hola me he mirado y remirado varios tutoriales sobre las cookies y las sesiones y "creo" entenderlo pero donde me lío es en cómo puedo ...
  #1 (permalink)  
Antiguo 26/11/2003, 04:41
Avatar de neofito  
Fecha de Ingreso: noviembre-2003
Mensajes: 138
Antigüedad: 20 años, 5 meses
Puntos: 0
Sesiones+cookies

Hola me he mirado y remirado varios tutoriales sobre las cookies y las sesiones y "creo" entenderlo pero donde me lío es en cómo puedo mezclar ambas cosas os explico lo que estoy desarrollando para practicar y a ver si me podeis tirar un cable porque soy bastante novato.

Quizás si explico lo que quiero hacer será más fácil que me ayudeis a comprender como fuciona ya que no estoy seguro de que se pueda "mezclar"cookies con sesiones:

Tengo una aplicación montada con sesiones pero además quiero añadirle esto:

Que cuando el usuario llegue a la pantalla inicial: (se muestra un formulario con dos campos nombre y nif) se compruebe con una cookie si el usuario está registrado (si lo está deberá aparecer el valor dentro de la casilla del formulario).
Si no la encuentra deberá pedir al usuario que se identifique (si ya se registró en alguna otra ocasión), y si no lo está deberá ofrecerle la posibilidad de registrarse.


Otra pregunta: Posteriormente puedo rescatar y mostrar el valor de la cookie dentro de la aplicación en el lugar donde me interese?

Gracias!

Última edición por neofito; 26/11/2003 a las 04:43
  #2 (permalink)  
Antiguo 26/11/2003, 05:08
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Si se pueden mezclar. Simplemente este foro lo hace. Es mas, hace lo mismo que comentas, crear una cookie cuando eliges la opcion de "recordar usuario y password". Simplemente en la rutina de login, despues de comprobar si existe ya la sesion, en caso de no existir compruebas si existe la cookie con el nombre y password, si existe la cookie validas los datos y creas la sesion, si no existe sigues con el proceso de pedir los datos.

Y la cookie (si existe) esta disponible para toda la aplicacion, asi que puedes mostrarla en cualquier punto, simplemente usando el array $_COOKIE.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 26/11/2003, 05:14
Avatar de neofito  
Fecha de Ingreso: noviembre-2003
Mensajes: 138
Antigüedad: 20 años, 5 meses
Puntos: 0
Gracias Josemi, tengo otra duda

Como he explicado en la página de login el usuario escribe el nombre de usuario y nif para entrar, ¿cómo le paso el valor de la variable nombre de usuario a la cookie?

Gracias
  #4 (permalink)  
Antiguo 26/11/2003, 06:13
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 9 meses
Puntos: 2
Primero deberás definir la cookie con setcookie() (http://us3.php.net/manual/es/function.setcookie.php) Luego, le das los valores que desees mediante el array superglobal $_COOKIE.

Ejemplo:

setcookie(...);
$_COOKIE[user]=$_POST[usuario];

Saludos.
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #5 (permalink)  
Antiguo 26/11/2003, 08:45
Avatar de neofito  
Fecha de Ingreso: noviembre-2003
Mensajes: 138
Antigüedad: 20 años, 5 meses
Puntos: 0
Gracias Josemi y DrCyber entre los dos habeis conseguido que resuelva al 100% mi duda

Muchas gracias por tener tanta paciencia con los más novatos!
  #6 (permalink)  
Antiguo 27/11/2003, 03:36
Avatar de neofito  
Fecha de Ingreso: noviembre-2003
Mensajes: 138
Antigüedad: 20 años, 5 meses
Puntos: 0
Me pegué ayer toda la tarde con esto y no logro ver el error, os pego el código de la página login y luego os pego un la línea que pongo en php en cualquier otra página de la aplicación donde quiero mostrar el nombre de usuario (recuperándolo del valor de la cookie)

Por cierto tengo las variables globales en OFF (como vienen por defecto en PHP) no se si eso influirá.

Archivo login.php
Código PHP:
 <? 
setcookie
("nombreusr",$p_nombre );
$_COOKIE[nombreusr]=$_POST[$p_nombre];
?>

<?
if ($_GET['mensaje']=='error') {
  
$mensaje='Se ha equivocado al escribir su nombre o el NIF. Por favor vuelva a probar';
} else {
  
$mensaje='Antes de acceder a la aplicacion debes identificarte';
}
?>
El formulario que sigue a continuación forma también parte de la página login.php
<html>
<body>
<p align=center><?=$mensaje?></p>
<form action=login_res.php method=POST>
<table align=center bgcolor="#CCCCCC" cellpadding="10">
<tr>
<td>Nombre:</td>
<td><input name=p_nombre type=text size=20></td>
</tr>
<tr>
<td>NIF:</td>
<td><input name=p_nif type=password size=20></td>
</tr>
<tr>
<td colspan=2 align=right><input type=submit value="Enviar datos"></td>
</tr>
</table>
</form>
</body>
</html>

Encuanquier página donde quiero mostrar el nombre de usuario recuperándo el valor desde la cookie escribo
Código PHP:
 <?php echo $HTTP_COOKIE_VARS["nombreusr"]; ?>
Pero no me muestra nada ¿?
  #7 (permalink)  
Antiguo 27/11/2003, 03:48
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Es que no estas leyendo el valor del formulario bien. Debe ser:
Código PHP:
 <? 
setcookie
("nombreusr",$_POST['p_nombre']);
$_COOKIE['nombreusr']=$_POST['p_nombre'];
?>
Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #8 (permalink)  
Antiguo 27/11/2003, 04:13
Avatar de neofito  
Fecha de Ingreso: noviembre-2003
Mensajes: 138
Antigüedad: 20 años, 5 meses
Puntos: 0
Ok he mirado las faqs y veo que para mostrar el valor en cualquier página de la aplicación he de poner por ejemplo el fragmento de código que pego más abajo pero no me funciona, el problema es que no entiendo el porqué no puedomostrar el valor.



Código PHP:
<?php echo "Bienvenido ".$HTTP_COOKIE_VARS["nombreusr"]; ?>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:06.