Foros del Web » Programando para Internet » PHP »

Mis dudas con cookies

Estas en el tema de Mis dudas con cookies en el foro de PHP en Foros del Web. Hola amigos, ya estoy por aquí mareando la perdíz con mis dudas una vez más. Tengo mi registro y reconocimiento de usuarios. Y quiera que ...
  #1 (permalink)  
Antiguo 23/12/2008, 17:15
 
Fecha de Ingreso: octubre-2008
Mensajes: 180
Antigüedad: 15 años, 6 meses
Puntos: 1
Mis dudas con cookies

Hola amigos, ya estoy por aquí mareando la perdíz con mis dudas una vez más.

Tengo mi registro y reconocimiento de usuarios. Y quiera que al rellenar el form de login, se cree una cookie con el nombre usuario, para que la proxima vez que entres al sitio te aparezca tu sesion directamente.

Bueno he intentado varias cosas como crear directamente la cookie con la variable del form donde ponemos el nick, y más tarde al entrar a las páginas que hacen la comprovación de sesión, si no encuetra la sesión iniciada o la cookie no nos sale nick, y al contrario nos muestra nuestro nick.

Pongo los códigos de mis intentos:

control.php
este procesa el form
Código PHP:
<?php
session_start
();    
$usuario $_POST['usuario'];
$_SESSION['usuario'] = $usuario
//conecto con la base de datos  
$conn mysql_connect("localhost","+++","+++");  
//selecciono la BBDD  
mysql_select_db("aerotechdb",$conn);

//Sentencia SQL para buscar un usuario con esos datos  
$ssql "SELECT * FROM mi_db WHERE nombre_usuario='$usuario' and clave_usuario='$contrasena'";  
 
//Ejecuto la sentencia  
$rs mysql_query($ssql,$conn);  
 
//vemos si el usuario y contraseña es váildo  
//si la ejecución de la sentencia SQL nos da algún resultado  
//es que si que existe esa conbinación usuario/contraseña  
if (mysql_num_rows($rs)!=0){  
    
//usuario y contraseña válidos  
    //defino una sesion y guardo datos  
    
session_start();  
    
session_register("autentificado");  
    
$autentificado "SI";
    
setcookie("nick"$valor); //INTENTO DE CREAR LA COOKIE SI EL NICK ESTÁ EN LA BASE DE DATOS EL $valor viene de el form que es la variables donde insertamos el nick
    
header ("Location: http://www.web.es/gracias.php");  
}else {  
    
//si no existe le mando otra vez a la portada  
    
header("Location: index.php?errorusuario=si");  
}  
mysql_free_result($rs);  
mysql_close($conn);  
?>
miembros.php
este lo incluyo con un include en todas las páginas para checkear la sesion o cookie
Código PHP:
<?php 
session_start
();
if ( isset ( 
$_SESSION['usuario'] ) ) {
          
$msj 'Hola <b> '.$_SESSION['usuario'].$_COOKIE[nick]' </b> <a href="login/salir.php"><img src="imagenesweb/x.jpg"/></a>';
}else{
          
$msj 'Hola <b>Invitado</b><DIV ALIGN=right><a href="login/index.php">Identificarse</a> | <a href="login/registro.php">Registrarse</DIV></a>';
}
echo 
$msj;
?>
Bueno, como está esto? alguien me ayuda por favor.
Muchas gracias*
*(no me valen respuestas como, "mira el manual de php" etc etc... he intentado varias cosas y es por eso que posteo aquí)
  #2 (permalink)  
Antiguo 23/12/2008, 17:26
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Mis dudas con cookies

Y que vigencia tiene la cookie?, prueba poniendole una fecha para expirar.

Código PHP:
$expira time() + 3600// Fecha actual mas 1 hora
setcookie("nick"$valor$expira); 
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 24/12/2008, 02:16
 
Fecha de Ingreso: octubre-2008
Mensajes: 180
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Mis dudas con cookies

Tampoco da resultado. Creo que el error no está ahí, creo que está en la forma en como recupera la cookie y comprueba sesion. No se la verdad. Alguiene tiene alguna sujerencia?
  #4 (permalink)  
Antiguo 24/12/2008, 04:14
 
Fecha de Ingreso: octubre-2008
Mensajes: 180
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Mis dudas con cookies

Vale, ya lo tengo arreglado, me crea la cookie y todo correctamente.
Ahora tengo otra duda.
Cada vez que entramos a una página del site, incluyo mediante un include el archivo miembro.php.
Básicamente me busca que haya una session creada y hace un echo con el valor. El tema está en cómo podria hacer que el archivo miembro.php, me buscase la session y la cookie, y si uno de los 2 existe hacer el echo correspondiente al valor, y si existen los 2 que no me haga 2 echos. Comprendeis?

Este es el archivo miembro.php que solo busca la sesión.
Código PHP:
<?php 
session_start
();
if ( isset ( 
$_SESSION['usuario'] ) ) {
          
$msj 'Hola <b> '.$_SESSION['usuario'].' </b> <a href="login/salir.php"><img src="imagenesweb/x.jpg"/></a>';
}else{
          
$msj 'Hola <b>Invitado</b><DIV ALIGN=right><a href="login/index.php">Identificarse</a> | <a href="login/registro.php">Registrarse</DIV></a>';
}
echo 
$msj;
?>
Este otro busca la cookie prueba-cookie.php
Código PHP:
<?
//conecto con la base de datos
$conn mysql_connect("localhost","+++","+++");
//selecciono la BBDD
mysql_select_db("aerotechdb",$conn); 

//primero tengo que ver si el usuario está memorizado en una cookie
if (isset($_COOKIE["id_usuario_dw"]) && isset($_COOKIE["marca_aleatoria_usuario_dw"])){
   
//Tengo cookies memorizadas
   //además voy a comprobar que esas variables no estén vacías
   
if ($_COOKIE["id_usuario_dw"]!="" || $_COOKIE["marca_aleatoria_usuario_dw"]!=""){
      
//Voy a ver si corresponden con algún usuario
      
$ssql "select * from usuario where id_usuario=" $_COOKIE["id_usuario_dw"] . " and cookie='" $_COOKIE["marca_aleatoria_usuario_dw"] . "' and cookie<>''";
      
$rs mysql_query($ssql);
      if (
mysql_num_rows($rs)==1){
         
$usuario_encontrado mysql_fetch_object($rs);
         echo 
"<br>Hola :" $usuario_encontrado->usuario;
      }
   }
}
?>
Entonces, como se podrian mezclar estos 2 códigos para que si encuentra una de las 2 consultas
Código PHP:
$_SESSION['usuario'
Ó
Código PHP:
$_COOKIE["id_usuario_dw"]) && isset($_COOKIE["marca_aleatoria_usuario_dw"
me haga el echo correspondiente a la consulta y además, en el caso de que las 2 consultas existan, que no me haga doble echo tipo Hola: pepe Hola: pepe
Además habria otro problema si existe la cookie y no la session porque se vera Hola: Invitado Hola:pepe
Bueno, no se si he liado bastante las cosas ya, si alguien sabe por favor como solcionar esto que me ayude. Muchas gracias!
  #5 (permalink)  
Antiguo 29/01/2009, 20:18
Avatar de LOCOHUESOS2  
Fecha de Ingreso: noviembre-2003
Ubicación: Cali - Colombia
Mensajes: 248
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: Mis dudas con cookies

Código PHP:
<?php  
session_start
(); 
if ( isset ( 
$_SESSION['usuario'] ) ) { 
          
$msj 'Hola <b> '.$_SESSION['usuario'].$_COOKIE[nick]' </b> <a href="login/salir.php"><img src="imagenesweb/x.jpg"/></a>'
}else{ 
          
$msj 'Hola <b>Invitado</b><DIV ALIGN=right><a href="login/index.php">Identificarse</a> | <a href="login/registro.php">Registrarse</DIV></a>'

echo 
$msj
?>

// en esta linea le falta las comillas '.$_SESSION['usuario'].$_COOKIE[nick]'

//mira tu codigo y colocalas asi ].$_COOKIE['nick']'
__________________
No creas que eres superior a mi sin antes ver mi trabajo webcol.net
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 17:34.