Foros del Web » Programando para Internet » PHP »

Como funcionan las COOKIE

Estas en el tema de Como funcionan las COOKIE en el foro de PHP en Foros del Web. Quiero guardar unas variables con cookie y no se como se utilizan, como funcionan, ni como se las llaman. De donde puedo sacar la informacion ...
  #1 (permalink)  
Antiguo 21/03/2003, 08:05
Avatar de Chuty  
Fecha de Ingreso: noviembre-2002
Ubicación: el bar de la esquina
Mensajes: 609
Antigüedad: 21 años, 5 meses
Puntos: 2
Como funcionan las COOKIE

Quiero guardar unas variables con cookie y no se como se utilizan, como funcionan, ni como se las llaman.
De donde puedo sacar la informacion o un ejemplo,
Gracias
  #2 (permalink)  
Antiguo 21/03/2003, 08:31
Avatar de Chuty  
Fecha de Ingreso: noviembre-2002
Ubicación: el bar de la esquina
Mensajes: 609
Antigüedad: 21 años, 5 meses
Puntos: 2
Bueno encontre en un manuel este ejemplo para guardar una cookie

<?php
/* /////////////////////////////////////////////////////////
* <!-- Cap07/envio_cookie.php -->
* Este script envía una cookie llamada Cap07
* ////////////////////////////////////////////////////// */

// Generamos los valores que se van a especificar para la cookie
$nombre = 'Cap07'; // Nombre de la cookie
$valor = 404; // Un valor cualquiera
$fecha_expiracion = time() + 600; // Expira en 10 minutos
$path = dirname($HTTP_SERVER_VARS['REQUEST_URI']); // El path actual

// Enviamos la cookie
setcookie($nombre, $valor, $fecha_expiracion, $path, '', 0);

// Escribimos algo (para que no aparezca una página en blanco :)
echo "Cookie enviada: $nombre, $valor, $fecha_expiracion, $path \n";
?>
me guarda la cookie bien ya que con el otro ejemplo borrar_cookie la puedo borrar bien.
Pero con el ejemplo para leer la cookie me da error
este es el codigo
<!-- Cap07/cabeceraHTTP.php -->
<HTML>
<HEAD><TITLE>Cabecera Petición HTTP</TITLE></HEAD>
<BODY>
<H2 ALIGN="CENTER">Cabecera Petición HTTP</H2>
<TABLE BORDER="1">
<?php
// Mostramos la primera línea con la petición
echo "<TR><TH>Petición HTTP:</TH><TD>";
echo $HTTP_SERVER_VARS['REQUEST_METHOD'], ' ';
echo $HTTP_SERVER_VARS['REQUEST_URI'], ' ';
echo $HTTP_SERVER_VARS['SERVER_PROTOCOL'], "</TD></TR>\n";

// Obtenemos todas las cabeceras
$CabeceraHTTP = getallheaders();

// Listamos el contenido de la matriz
echo "<TR><TH>Campo</TH><TH>Valor</TH></TR> \n";
foreach ($CabeceraHTTP as $campo => $valor)
echo "<TR><TD NOWRAP>$campo</TD> <TD>$valor</TD> </TR>\n"
?>
</TABLE>
</BODY>
</HTML>
y el manseje de error es el siguiente

Cabecera Petición HTTP
Petición HTTP: GET HTTP/1.1
Campo Valor

Warning: Invalid argument supplied for foreach() in c:\inetpub\wwwroot\phptest\SGF_ControlPanel\leerco okie.php on line 19

tengo que tocar el ini de Php
  #3 (permalink)  
Antiguo 21/03/2003, 09:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Lee y práctica con este tutorial:
http://www.webestilo.com/php/php13a.phtml

(las cookies se guardan en el cliente .. no en el servidor .. En la configuración de PHP no tienes que tocar nada .. En tal caso sería en la configuración de tu navegador si acepta o no cookies ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 21/03/2003, 10:26
Avatar de Chuty  
Fecha de Ingreso: noviembre-2002
Ubicación: el bar de la esquina
Mensajes: 609
Antigüedad: 21 años, 5 meses
Puntos: 2
En el caso de querer guardar 4 variables en una cookie como se hace
ya que para pasar una variable se hace

<?php
// Generamos los valores que se van a especificar para la cookie
$nombre = 'Nombre1'; // Nombre de la cookie
$usuario = 'usuario'; // Un valor cualquiera
$passw = 'xxxx';
$server = 'server';
$base = 'Base';
$fecha_expiracion = time() + 600; // Expira en 10 minutos
$path = dirname($HTTP_SERVER_VARS['REQUEST_URI']); // El path actual

// Enviamos la cookie
setcookie($nombre, $usuario, $fecha_expiracion, $path, '', 0);
// y si quiero enviar las variables $passw, $server, $base.. como se hace.
?>
  #5 (permalink)  
Antiguo 21/03/2003, 10:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Guarda tus variables en un array por ejemplo ..

Lee este mensaje:
http://www.forosdelweb.com/showthrea...hreadid=121906

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 21/03/2003, 11:12
Avatar de Chuty  
Fecha de Ingreso: noviembre-2002
Ubicación: el bar de la esquina
Mensajes: 609
Antigüedad: 21 años, 5 meses
Puntos: 2
Gracias Cluster por la ayuda pero Utilizando el ejemplo que me muestras

<?
$datos_cookie=array($variable1,$variable2,$variabl e2);
// y a la cookie
setcookie("datos_cookie",$datos_cookie,time()+1728 00)
?>

me da el siguiente error
Warning: setcookie() expects parameter 2 to be string, array given in c:\inetpub\wwwroot\phptest\SGF_ControlPanel\envio_ cookie.php on line 4

y el articulo en el que esta el ejemplo dice
No sé si te hará falta serializar el array .. pero es problable que lo necesites .. En tal caso revisa la FAQ sobre "pasara un array entre páginas" ...

Pero en los FAQ el enlase a SERIALIZAR no anda y no entiendo que es lo que hay que hacer con el Array como solucionar esto
  #7 (permalink)  
Antiguo 21/03/2003, 13:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si, es necesario serializar un array si va a parar a una cookie .. (se nota que no lo probe xD .. ¬¬ y q no uso cookies xD)

El ejemplo completo sería:

guarda_cookie_array.php
Código PHP:
<?
$variable1
="algo";
$variable2="algo1";
$variable3="algo2";

$datos_cookie=array("algo",$variable1,$variable2,$variable3);
setcookie("datos_cookie",serialize($datos_cookie),time()+172800)
?>
<a href="lee_cookie_array.php">cookie</a>
lee_cookie_array.php
Código PHP:
<?
$datos_cookie
=unserialize(stripslashes($_COOKIE['datos_cookie']));
echo 
$datos_cookie[1]."<br>";
echo 
$datos_cookie[2]."<br>";
echo 
$datos_cookie[3]."<br>";
?>
Se ha de acceder por el indice numerico (y no asociativo por lo que he visto y comprobado ..) a los datos del array ..

En PHP.net .. se propone otra forma para pasar multiples variables bajo un mismo nombre de cookie:

Código PHP:
setcookie ("cookie[three]""cookiethree");
setcookie ("cookie[two]""cookietwo");
setcookie ("cookie[one]""cookieone"); 
fijate los comentarios en:
http://www.php.net/manual/en/function.setcookie.php

Un saludo,
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 13:21.