Foros del Web » Programando para Internet » PHP »

3 preguntas Básicas sobre cookies

Estas en el tema de 3 preguntas Básicas sobre cookies en el foro de PHP en Foros del Web. ____________________________________________ Las cookies solo pueden ser utilizadas por la pagina PHP que las genera? ____________________________________________ Genero una cookie en una pagina de nombre 22.php asi: ...
  #1 (permalink)  
Antiguo 17/11/2003, 09:14
Usuario baneado!
 
Fecha de Ingreso: diciembre-2002
Ubicación: En mi chozita
Mensajes: 142
Antigüedad: 21 años, 3 meses
Puntos: 0
Exclamación 3 preguntas Básicas sobre cookies

____________________________________________

Las cookies solo pueden ser utilizadas por la pagina PHP que las genera?
____________________________________________

Genero una cookie en una pagina de nombre 22.php asi:

<?php
if ($galleta != 2) {setcookie("coo","anulada", time()-3600);}
else {setcookie("coo","$coo");}
?>
<FORM ACTION="22.php" METHOD=POST>
Valor para la coo: <INPUT TYPE=TEXT NAME=coo>
<INPUT TYPE=HIDDEN NAME=GALLETA VALUE=2>
<INPUT TYPE=SUBMIT VALUE=ENVIAR>
</FORM>

<A HREF="22.php">Salir</A>
______________________________________________

Cuando abro otra pagina de nombre index.php que contienen esto:

El valor de la cookie es: <?php echo $coo; ?>

No me sale NADA, la pagina no me imprime la cookie, cosa que si hace 22.php, (ambos files estan en el mismo directorio).

La segunda pregunta es:

Cuando pulso en salir se elimina la coo, (es esa forma correcta de eliminar una cookie a travez de un link?, o hai una forma mas apropiada?

Tercera y ultima:

Si coloco:

<?php setcookie("coo","Valor de esta galleta"); ?>

En un lugar diferente al inicio de la pagina.php me sale error.

¿Por que las cookies no se pueden generar luego de por ejemplo procesar un poco de codigo para que la salida se un valor y ese valor la cookie?
-----------------
MUCHAS GRACIAS
  #2 (permalink)  
Antiguo 17/11/2003, 09:32
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

1) No, lo que pasa es que si tienes register_globals a OFF debes acceder mediante $_COOKIE['nombre de la cookie'].

2) Si, creo que es una de las apropiadas.

3) El problema no es al inicio de la pagina. Puedes colocar setcookie() en cualquier punto del codigo, siempre y cuando antes no hayas enviado salida al navegador. Ni HTML, ni echos, ni espacios en blanco. Lo mismo que el header() y en algunos casos session_start() (cuando usa cookies para propagar el ID de session).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 17/11/2003, 11:02
Usuario baneado!
 
Fecha de Ingreso: diciembre-2002
Ubicación: En mi chozita
Mensajes: 142
Antigüedad: 21 años, 3 meses
Puntos: 0
JOSEMI, muchas gracias por su prontisima ayuda,

Resulta que hice el phpinfo(), y me salio esto:

register_argc_argv
On
On

register_globals
On
On

safe_mode
Off
Off

Parece que "register_globals" esta ON, verdad?.

De todas formas hice esto en index.php:
(22.php me sigue imprimiendo el valor que sea que yo le de a la cookie):

El valor de la cookie es: <?php echo $coo; ?>
<BR><BR>
O puede ser que: <?php $_COOKIE['$coo']; ?>


Y no me sale nada por pantalla.
_________________________

Incluso abri una nueva ventana de 22.php, le di F5, y si me imprime:

################
Valor para la coo: [CAJA DE TEXTO]

Salir Todo vacanisimo
################
  #4 (permalink)  
Antiguo 17/11/2003, 15:59
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Esto, ¿cierras el navegador para abrir la segunda pagina? Es que si no especificas fecha de expiracion a una cookie, se supone que es una cookie de sesion, es decir, que se destruye al cerrar la ventana del navegador. Prueba a poner un link a index.php desde 22.php.

Y si no prueba a poner una fecha de expiracion a la cookie en el setcookie.

Por cierto, lo que si deben estar las paginas que manejan la misma cookie en el mismo dominio.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 18/11/2003, 11:47
Usuario baneado!
 
Fecha de Ingreso: diciembre-2002
Ubicación: En mi chozita
Mensajes: 142
Antigüedad: 21 años, 3 meses
Puntos: 0
Exclamación Que sera?

No JOSEMI,

Nunca cierro la ventana, de echo lo que hago es: Crtl + N.

Le doyi F5, y nada, me sale en blanco.

Incluso le agregue tiempo a la COOK, y no se desaparece.

Nota. YO UTILIZO OPERA.

Para mas caridad, coloco el codigo:

File 22.php:

<?php
if ($GALLETA != 2) {setcookie("dato","anulada", time()-3600);}
else {setcookie("dato","$valor", time()+10);}
?>
<FORM ACTION="22.php" METHOD=POST>
Valor para la coo: <INPUT TYPE=TEXT NAME=valor>
<INPUT TYPE=HIDDEN NAME=GALLETA VALUE=2>
<INPUT TYPE=SUBMIT VALUE=ENVIAR>
</FORM><A HREF="22.php">Salir</A>
<?php echo $dato; ?>

File index.php:

Aqui esta el valor del dato: <?php echo $dato; ?>
==============================================

Eso es todo.

Como pueden ver, le coloco 10 segundos de vida a la COOKIE, pero ella queda guardada durante infinidad...
(Hasta que la elimine).

Gracias, ¿Que estoy haciendo mal?.
  #6 (permalink)  
Antiguo 18/11/2003, 16:11
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Pues es culpa de opera. He probado un codigo semejante al tuyo en Mozilla, y sin problemas. En cambio en Opera no va.

Es el problema de las cookies, son del lado del cliente y dependen del navegador.

Como nunca uso ese navegador, pues nunca se me habia presentado ese problema. No se si sera culpa de la configuracion de Opera, o es que necesita que se le especifiquen todos los parametros a setcookie() o cualquier otra cosa.

Veamos si alguien con experiencia en ese navegador sabe decirnos algo.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 18/11/2003, 16:41
Usuario baneado!
 
Fecha de Ingreso: diciembre-2002
Ubicación: En mi chozita
Mensajes: 142
Antigüedad: 21 años, 3 meses
Puntos: 0
Gracias, y como aprendo lo que vos sabes?

Gracias, JOSEMI y como aprendo lo que vos sabes?

Podrias indicarme un URL para manual de cookies?.

Es que me has dejado "confundido" con eso que dices de TODOS LOS para,metros de setcookie().

O me puedes indicar cuales parametros son esos parametros que podrian ser tenidos en cuenta.

Madre mia!, pero si es que apenas con sus palabras me "DESAYUNO" de que las cookies dependen del navegador...

Yo pensaba que eso era = para cualesquier browser!...

Muchas gracias, como siempre, hwe aprendido de sus respuestas.
  #8 (permalink)  
Antiguo 18/11/2003, 16:50
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Manual para las cookies: www.php.net/setcookie . Y para todo lo demas, VISA, esto digo, www.php.net

Las cookies dependen del cliente porque son ficheros que se crean en el cliente. En teoria, deberia funcionar el mismo codigo PHP en todos los navegadores. Pero con las multiples configuraciones de seguridad, a saber cual es el problema.

¿Lo has probado en local? Porque yo si lo he probado en local. Y en windows, que es peor. Quizas es un bug del PHP para windows.

El gran problema de la programacion: demasiadas configuraciones imposibles de controlar. Si solo existiese u navegador ..., o mejor, si todos los navegadores respetasen los estandares, que felices seriamos.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #9 (permalink)  
Antiguo 18/11/2003, 18:07
Usuario baneado!
 
Fecha de Ingreso: diciembre-2002
Ubicación: En mi chozita
Mensajes: 142
Antigüedad: 21 años, 3 meses
Puntos: 0
No te rias JOSEMI,

Primero: SIEMPRE TRABAJO EN LOCAL.

Segundo: No te rias, es que:

Mirando el Invision, y el phpBB me cruzo por la cabeza una idea que me queda MUY GRANDE, pero que no logro sacarme de la cabeza:

CREAR MI PROPIO FORO CON CODIGO RAZACALO, Y CON BD

Asi que pense:

Lo primero sera comenzar por las paginas y accesos del ADMIN, y ahi fue donde ya me encontre el primer obstaculo, (se que voy a tener cientos), por que comence por crear por primer vez en mi vida una cookie.

Como digo, SIEMPRE TRABAJO EN LOCAL, y con OPERA asi que el Invision, que es un monton de COOKIES, si me corre perfectamente, (Con las COOK de Invision + OPERA + localhost, un apache)
__________________________________

Ahora me he topado con una cosa que dice asi: "session_start()"
Puede eso servirme?
Mejor le sigo buscando el lado a las cook?
Por donde me indicas que debo comenzar?

Que hago con "session_start()"?, como se usa?.

Gracias.
  #10 (permalink)  
Antiguo 19/11/2003, 06:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
session_start() se refiere a que usa sessiones en lugar de cookies para propagar esas variabels que requiere la aplicación ..

Eso es tema de:
www.php.net/sessions

En las FAQ's de este foro y si buscas por "sesiones" verás una pequeña introducción y multitud de ejemplos sobre el tema.

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 10:22.