Foros del Web » Programando para Internet » PHP »

tengo un prblema con cookies.. creo que no las creo bien

Estas en el tema de tengo un prblema con cookies.. creo que no las creo bien en el foro de PHP en Foros del Web. Tengo un script con el cual el usuario se logea. Quiero usar la la variable session para armar una cookie que lleve el valor id. ...
  #1 (permalink)  
Antiguo 26/07/2006, 13:51
 
Fecha de Ingreso: junio-2006
Mensajes: 80
Antigüedad: 17 años, 10 meses
Puntos: 0
Información tengo un prblema con cookies.. creo que no las creo bien

Tengo un script con el cual el usuario se logea. Quiero usar la la variable session para armar una cookie que lleve el valor id. Es decir, en la session comparo el nombre y si es verdader, conecto y saco el id.

este es el bloque del problema

Código PHP:
    $nn=$_SESSION['MM_Username'];
    
mysql_select_db($database_chistesvip$chistesvip);
    
$query_crea_cookie "SELECT owners.id_ow FROM owners WHERE owners.nombre_web ='$nn'";
    
$crea_cookie mysql_query($query_crea_cookie$chistesvip) or die(mysql_error());
    
$row_crea_cookie mysql_fetch_assoc($crea_cookie);
    
$totalRows_crea_cookie mysql_num_rows($crea_cookie);

    
$valor $row_crea_cookie['id_ow'];
    
setcookie("id_usuario"$valor); 
el tema es que no logro ver la cookie. hago echo $_cookie["id_usuario"] y no imprime nada..
en que estoy fallando..
agradezco de antemano su ayuda
  #2 (permalink)  
Antiguo 26/07/2006, 13:57
Avatar de Infernal  
Fecha de Ingreso: septiembre-2004
Ubicación: Tamaulipas, Mexico
Mensajes: 124
Antigüedad: 19 años, 7 meses
Puntos: 0
Es porque la variable que guarda el valor de las cookies es $_COOKIE, por lo que para imprimir deberia ser: $_COOKIE["id_usuario"]
  #3 (permalink)  
Antiguo 26/07/2006, 14:10
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
tenes q usar $_COOKIE["id_usuario"] es con mayusculas
  #4 (permalink)  
Antiguo 26/07/2006, 15:08
 
Fecha de Ingreso: junio-2006
Mensajes: 80
Antigüedad: 17 años, 10 meses
Puntos: 0
amigos..
No me funciona...
aca va el codigo completo.. se que no es muy simple.. pero por ahora sirve..

Código PHP:
if (isset($_POST['user'])) {
  
$loginUsername=$_POST['user'];
  
$password=$_POST['pass'];
  
$MM_fldUserAuthorization "id_perfil";
  
$MM_redirectLoginSuccess "listado.php";
  
$MM_redirectLoginFailed "listado.php?error=Datos Incorrectos";
  
$MM_redirecttoReferrer false;
  
mysql_select_db($database_chistesvip$chistesvip);
      
  
$LoginRS__query=sprintf("SELECT nombre_web, pass, id_perfil FROM owners WHERE nombre_web='%s' AND pass='%s'",
  
get_magic_quotes_gpc() ? $loginUsername addslashes($loginUsername), get_magic_quotes_gpc() ? $password addslashes($password)); 
   
  
$LoginRS mysql_query($LoginRS__query$chistesvip) or die(mysql_error());
  
$loginFoundUser mysql_num_rows($LoginRS);
  if (
$loginFoundUser) {
    
    
$loginStrGroup  mysql_result($LoginRS,0,'id_perfil');
    
    
//declare two session variables and assign them
    
$GLOBALS['MM_Username'] = $loginUsername;
    
$GLOBALS['MM_UserGroup'] = $loginStrGroup;          

    
//register the session variables
    
session_register("MM_Username");
    
session_register("MM_UserGroup");

    if (isset(
$_SESSION['PrevUrl']) && false) {
      
$MM_redirectLoginSuccess $_SESSION['PrevUrl'];    
    }
//
    
header("Location: " $MM_redirectLoginSuccess );
$nn='pp';
    
mysql_select_db($database_chistesvip$chistesvip); 
    
$query_crea_cookie "SELECT owners.id_ow FROM owners WHERE owners.nombre_web ='$nn'"
    
$crea_cookie mysql_query($query_crea_cookie$chistesvip) or die(mysql_error()); 
    
$row_crea_cookie mysql_fetch_assoc($crea_cookie); 
    
$totalRows_crea_cookie mysql_num_rows($crea_cookie); 

    
$valor $row_crea_cookie['id_ow']; 
    
setcookie("id_usuario"$valor);  

//
  
}
  else {
    
header("Location: "$MM_redirectLoginFailed );
  }

y para imprimir pongo..
Código PHP:
 <? php echo $_COOKIE["id_usuario"];?>
saludos y gracias de antemano
  #5 (permalink)  
Antiguo 26/07/2006, 15:23
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
Hola,

El valor de una cookie no puede ser utilizado en caliente. Me explico, si creas una cookie en la página 1.php, no podrás imprimir su valor mientras se este ejecutando dicho script. Por lo tanto, si creas la cookie en 1.php, podrás retornar imprimir su valor en 2.php, o en cualquier otra page.

Por ejemplo:

Código PHP:
setcookie("test"'hola');
echo 
$_COOKIE['test'];
//esto no funcionara 
Un saludo,
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.

Última edición por Takitei; 26/07/2006 a las 15:28
  #6 (permalink)  
Antiguo 26/07/2006, 17:10
 
Fecha de Ingreso: junio-2006
Mensajes: 80
Antigüedad: 17 años, 10 meses
Puntos: 0
Perdon mi ignorancia, pero sigo sin verlas....

gracias igual por su ayuda...
  #7 (permalink)  
Antiguo 26/07/2006, 20:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por heman25
Perdon mi ignorancia, pero sigo sin verlas....

gracias igual por su ayuda...
Y tienes algùn navegador con nivel de seguridad alto, antivirus .. o proxy incluso por el que pases con tu conexiòn que estè bloqueando esas cookies?

Por cierto .. el uso de session_register() es INCOMPATIBLE y NO RECOMENDABLE si ya usas los arrays superglobales: $_SESSION .. quita de tu còdigo todo session_register() que uses. Y usa sesion_start() al principio de tu còdigo (o intención de acceso/creación de variables de sesión) para iniciar la sesión.

más info:
www.php.net/session

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 01:05.