Foros del Web » Programando para Internet » PHP »

leer cookie desde funciones...

Estas en el tema de leer cookie desde funciones... en el foro de PHP en Foros del Web. Hola a todos: miren, tengo los siguientes codigos... funciones1.php Código PHP: <?php function  cabecera ( $title ){   echo  "<html>   <head><title>$title</title></head>   <body>" ;    $ver  =  ...
  #1 (permalink)  
Antiguo 23/03/2004, 11:09
 
Fecha de Ingreso: agosto-2003
Ubicación: Piura
Mensajes: 238
Antigüedad: 20 años, 8 meses
Puntos: 0
leer cookie desde funciones...

Hola a todos:
miren, tengo los siguientes codigos...

funciones1.php
Código PHP:
<?php
function cabecera($title){
  echo 
"<html>
  <head><title>$title</title></head>
  <body>"
;
  
$ver ver_cookie("user");
  if (
$ver == TRUE) echo "bienvenido $user";
  else echo 
"es tu primer ingreso";
  echo 
"</body></html>";
}

function 
ver_cookie($cookie_var){
  
$var = $$cookie_var;
  if (!empty(
$var)) return TRUE;
  else return 
FALSE;
}
?>
script.php
Código PHP:
<?php
include ("funciones1.php");
cabecera("Prueba cookie");
<?
Para esto la cookie "user" ya ha sido creada y tiene una duración de un mes... la consulta de la cookie la hago luego de 10 minutos.... me doy cuenta que no reconoce la cookie porque la busqueda de la misma esta dentro de una función y estas funciones me son ultra necesarias y me es indispensable tener la busqueda de la cookie dentro de ella... ¿que puedo hacer para poder encontrar la cookie con un script que este dentro de una funcón?
Agradecido de antemano por la ayuda se despide de ustedes deseándles los mas grandes exitos
Paco
__________________
Un hombre inteligente, caminando, llega mucho mas rápido que un torpe en coche
  #2 (permalink)  
Antiguo 23/03/2004, 11:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Parecer que estás asumiendo las variabels de cookies (externas) como globales?

Deberías usar los arrays superglobales como el caso de cookies:

$_COOKIE['nombre_cookie'] para acceder a una variable de cookie .. además, estos arrays son "super-globales" es decir .. prevalece su valor en todo el ambito en llamadas a funciones.

otros detalles ...

$ver = ver_cookie("user");
if ($ver == TRUE) echo "bienvenido $user";

eso lo puedes hacer directamente vía:
if (ver_cookie("user")) echo "bienvenido $user";

Usa { y } donde correspondan .. facilita la lectura del código y segumiento de este ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 30/03/2004, 10:44
 
Fecha de Ingreso: agosto-2003
Ubicación: Piura
Mensajes: 238
Antigüedad: 20 años, 8 meses
Puntos: 0
muchas gracias por la respuesta y las orientaciones pero he seguido probando y no me sale, a mi mensaje original agrego el código que crea la cookie:

valida.php
Código PHP:
<?php
// validamos al usuario, para esto ya hemos
// consultado la bd donde esta el usuario
if (existe($user$pw)){
  
setcookie("user"$usertime()+2592000);
}
?>
y luego se va a ejecutar el codigo script.php
No sé cual es mi error, ya he usado las variables superglobales pero no coge el valor de la variable, el nuevo código de funciones1.php es:
Código PHP:
<?php
function cabecera($title){
  echo 
"<html>
  <head><title>$title</title></head>
  <body>"
;
  if (
ver_cookie("user")){
    echo 
"bienvenido"$HTTP_COOKIE_VARS["user"];
  }
  else {
    echo 
"es tu primer ingreso";
  }
  echo 
"</body></html>";
}

function 
ver_cookie($cookie_var){
  
$var $HTTP_COOKIE_VARS[$cookie_var];
  if (!empty(
$var)) return TRUE;
  else return 
FALSE;
}
?>
¿será acaso que estoy trabajando todos mis códigos en mi máquina local usando el phptriad?
Muy agradecido de antemano y éxitos para todos...
__________________
Un hombre inteligente, caminando, llega mucho mas rápido que un torpe en coche
  #4 (permalink)  
Antiguo 30/03/2004, 11:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Tu navegador es que debe aceptar cookeis en principio .. La versión de PHP que instalase el "PHP Triad" define si puedes usar o no los arrays superglobales $_COOKIE (entre otros) .. pero tu estás usando los arrays $HTTP_xxx_VARS que están desde mucho antes que los "superglobales" que aparecieron en PHP 4.1.0 ...

La función setcookie() dispone de más parámetros como el domino que puede usar .. (usa "\" .. revisa en www.php.net/setcookie como definir ese parámetro). E intenta hacer echo $HTTP_COOKIE_VARS['user'] a ver si obtienes algún valor para descartar que la lógica de tus funciones y condicionales esté fallando.

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 03:36.