Foros del Web » Programando para Internet » PHP »

setcookie()

Estas en el tema de setcookie() en el foro de PHP en Foros del Web. Bueno he hecho una pregunta sobre el nuke: http://www.forosdelweb.com/s/msg180934.html Parece que mas o menos voy pillando un poco esto de las cookies, segun lo que ...
  #1 (permalink)  
Antiguo 05/02/2004, 18:56
 
Fecha de Ingreso: septiembre-2003
Mensajes: 49
Antigüedad: 20 años, 7 meses
Puntos: 0
setcookie()

Bueno he hecho una pregunta sobre el nuke:

http://www.forosdelweb.com/s/msg180934.html

Parece que mas o menos voy pillando un poco esto de las cookies, segun lo que esta leyendo con la funcion setcookie() se crean o modifican las cookies, tb he leido que se le puede dar un nombre a esa cookie para que no coja por defecto el nombre del dominio, pero tengo mis dudas, por dentro del nuke, se hace muchas veces referencia a la funcion setcookie, pero siempre usa un valor o tres, pro ejemplo:
Código:
setcookie("lang",$newlang,time()+31536000);
Leyendo en:

http://es2.php.net/manual/es/function.setcookie.php

creo que la cuarta varaible que se le puede poner es el nombre donde se guardara la cookie, porque por lo que veo,

la primera es nombre dentro de la cookie, la segunda es el valor de ese nombre, la tercera el tiempo que eestara esa cookie activa, la cuarta no tengo ni idea, la quinta el nombre de la cookie en si y la sexta tampoco tengo ni idea.

entonces yo me encuentro setcookies asi: (por dentro del nuke)
Código:
   setcookie("lang",$newlang,time()+31536000);
   setcookie("p_msg");
   setcookie("p_msg",$mid,time()+600);

    setcookie("user");

...
amos que como mucho me marca las tres primera opciones, el nombre dentro de la cookie, lo que guarda la cookie y el tiempo. como añadiria que se guardara en cierto nombre ?¿

Creo que es sencillo pero antes de tocar nada y dejarlo todo patas arriba me gustaria estar seguro.

Un saludo A todos

Última edición por VerderoL; 07/02/2004 a las 11:35
  #2 (permalink)  
Antiguo 05/02/2004, 19:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Código PHP:
setcookie("lang",$newlang,time()+31536000); 
así defines una cookie de nombre 'lang' y con el valor de esa variable $newlang .. y con tiempo de expiración ese (son segundos multiplica y ya sabras ...)

Código PHP:
setcookie("p_msg"); 
así "matas" esa variable de cookie llamada "p_msg" ... (ya que no le defines nombre y el tiempo de expiración es "ya" (0).

Las otra dos que pones de ejemplo son más de lo mismo ..

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 05/02/2004, 19:24
 
Fecha de Ingreso: septiembre-2003
Mensajes: 49
Antigüedad: 20 años, 7 meses
Puntos: 0
pero al crear la cookie puedo decirle en que cookie se guarde,por defecto se me guardan en www.covercaratulas.com como podria guardalas con otro nombre?

con eso:

setcookie("TestCookie",$value,time()+3600,"/~rasmus/",".utoronto.ca",1)

y que pongo en la cuarta varaible ? y en la sexta? imagino que la quinta sera el nombre, que en vez de guardarla en www.covercartulas.com la guardara en utoronto.ca
  #4 (permalink)  
Antiguo 06/02/2004, 04:01
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Me parece que no comprendes del todo las cookies. El "nombre" que dices de la cookie, es el dominio al que pertenece la cookie. Si a tu cookie que creas en covercaratulas.com pones otro dominio (pe, miweb.com), en ese caso esa cookie ya no es accesible desde covercaratulas.com, solo desde miweb.com. Ademas, puede que tu navegador no acepte crear cookies desde otro dominio (la rechazara), todo en funcion del nivel de seguridad que tenga configurado.

Asi que el cuarto y quinto parametros especifican para que directorio y dominio el navegador enviara esa cookie, y creo recordar que el sexto es para indicar si la cookie se enviara solo por HTTPS.

Asi que todas las cookies del dominio covercaratulas.com estan agrupadas en ese nombre. Solo esas se enviaran a ese dominio desde el navegador.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 06/02/2004, 04:06
 
Fecha de Ingreso: septiembre-2003
Mensajes: 49
Antigüedad: 20 años, 7 meses
Puntos: 0
Muchas Gracias Josemi, ya se me estan ocurriendo otras soluciones, ejemplo en cada setcookie ponerle un dos, ejemplo, setcookie(user2 ..............) y luego en cada global $user que tenga porner $global $user2 y justo despues del global $user = $user2; nuse si rulará, esta tarde lo probaré!!

Saludos y Muchas Gracias por contestar!!
  #6 (permalink)  
Antiguo 07/02/2004, 11:33
 
Fecha de Ingreso: septiembre-2003
Mensajes: 49
Antigüedad: 20 años, 7 meses
Puntos: 0
Tengo otra duda, cuando elimino una cookie, se queda definida pero sin valores, ejemplo, yo defino en la cookie la varaible $user .asi : setcookie("user",$user,time()+31536000); ok, entonces para eliminarla se hace con el setcookie("user"); pero .......... no se elimina, lo que se elimina es su cantenido la varaible sigue existiendo, pero sin valor. adjunto una captura del opera que me dice que cookies tiene cada dominio, para que entais a lo que me refiero:



Entonces como podria eliminarla del todo?¿ porque claro cuando entro a la segunda web, pilla la variable del dominio y no la del subdomninio, y como esta vacia no reconoce la del subdominio. o de que manera puedo definir yo el $gobal $user para pillase la del subdominio ?¿ porque cuando uso el global $user; en el subdominio si existes un user del dominio me tira a leer ese: conclusion que no me reconoce.

Bueno ave si damos con ellos, Saludos
  #7 (permalink)  
Antiguo 07/02/2004, 11:50
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Veamos, si quieres que una cookie sea especifica del dominio o del subdomiino, debes especificar especificamente ( ) el dominio o subdominio que quieres. Si quieres que una cookie sirva para el dominio y subdominio indistintamente,especificas '.dominio.com' en el quinto parametro:
Código PHP:
setcookie("user","el jefe"time()+360,'/','www.webderol.com'); // solo para [url]www.webderol.com[/url]
setcookie("user","el otro"time()+360,'/','sub.webderol.com'); // solo para sub.webderol.com
setcookie("lang","japones"time()+360,'/','.webderol.com'); // para todos los subdominios de webderol.com, incluido www 
Puedes probar a poner este script en el dominio y en el subdominio:
Código PHP:
echo 'Usuario: '.$_COOKIE['user'].'<br>';
echo 
'Lang: '.$_COOKIE['lang'].'<br>'
Y sobre el tema de borrar cookie, con :
Código PHP:
setcookie("user"); 
Lo que estas haciendo es asignar el valor "" a la cookie y poner que la cookie expire cuando se cierre el navegador.

Para borrar una cookie tienes que especificar una fecha de expiracion anterior a ahora:
Código PHP:
setcookie("user","",time()-3600); 
Eso si, para borrar una cookie que la creaste usando los parametros cuarto, quinto y sexto, debes poner esos mismos valores para borrarla.

Todo eso viene en www.php.net/setcookie .

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #8 (permalink)  
Antiguo 07/02/2004, 11:57
 
Fecha de Ingreso: septiembre-2003
Mensajes: 49
Antigüedad: 20 años, 7 meses
Puntos: 0
Muchas Gracias Josemi y sobre por la rapidez en contestar, ave si congo hacer andar las dos webs y que se compatibilicen las cookies ... menudo dolor de cabeza :)

saludos y Gracias de nuevo
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:50.