Foros del Web » Programando para Internet » PHP »

eliminar cookies

Estas en el tema de eliminar cookies en el foro de PHP en Foros del Web. Hola, Necesito ayuda porque ya llevo dos dias viendo y buscando y no encuentro manera, he creado una cookies de esta manera: if (isset($_COOKIE['itenerario'])) { ...
  #1 (permalink)  
Antiguo 25/04/2007, 11:02
 
Fecha de Ingreso: enero-2006
Mensajes: 233
Antigüedad: 18 años, 3 meses
Puntos: 2
eliminar cookies

Hola,
Necesito ayuda porque ya llevo dos dias viendo y buscando y no encuentro manera, he creado una cookies de esta manera:
if (isset($_COOKIE['itenerario'])) {
foreach ($_COOKIE['itenerario'] as $name => $value) {
$i++;
}
}
setcookie("itenerario[ref$i]",$itin,time()+7776000);
}
este codigo esta super me crea las cookien bien, en la maquina se ven asi
itenerario[ref1],..itenerario[ref2]...itenerario[refN].
y en otra session del sitio las muestro,
ellas guardan el Id de unos itenerarios q estan en bases de datos esta todo super asta ahora,
ahora quiero una opcion q me permita eliminar la cookie
digamos q escogo el itenerario con un checkbox, hay no se q hacer osea creo q no la puedo eliminar pero entonces renombrar para que salga de la listas de los itenerarios la renombro con una variable cualquiera q no tenga un valor q nesesitenos o no le pongo valor y no le pongo fecha de expiracion para q se elimine imediatamente pero en teoria estoy clara al programar no tengo idea esto es lo q he hecho:

<u><a href="/Tripplanning/itineraries/customized/accion.php?itin=<?=$queryitem["Codigo"];?>&accion=delete" >delete</a><u>
vamos a la pagina accion:

if ($_GET['accion']=="delete") { //1
$itin=$_GET['itin'];
if (isset($_COOKIE['itenerario'])) {//2
foreach ($_COOKIE['itenerario'] as $cookiename => $cookievalue){//3
$cookieitin=$cookievalue;
$cookiecount++;
}//3

if ($cookieitin=='$itin'){
setcookie("itenerario","","");
//setcookie($cookieitin);
}
}
}
aqui me quedo no se que hacer
plisss ayuda
  #2 (permalink)  
Antiguo 25/04/2007, 11:09
Avatar de @ndreX!  
Fecha de Ingreso: abril-2007
Mensajes: 161
Antigüedad: 17 años
Puntos: 4
Re: eliminar cookies

Para eliminar una cookie es facil:

Código PHP:
<?
    
unset($_COOKIE['nombre']);
?>
Puedes colocar eso dentro de tu foreach.

Espero te sirva.

Saludos.
  #3 (permalink)  
Antiguo 25/04/2007, 11:37
 
Fecha de Ingreso: enero-2006
Mensajes: 233
Antigüedad: 18 años, 3 meses
Puntos: 2
Re: eliminar cookies

ok pero como quedaria estoy usando un array me confundo como debo mostrale caul es el q debe eliminar
quedaria asi?
if ($_GET['accion']=="delete") { //1
$itin=$_GET['itin'];
if (isset($_COOKIE['itenerario'])) {//2
foreach ($_COOKIE['itenerario'] as $cookiename => $cookievalue){//3
$cookieitin=$cookievalue;
$cookiecount++;
}//3

if ($cookieitin=='$itin'){
unset($_COOKIE['itenerario'])
//setcookie("itenerario","","");
//setcookie($cookieitin);
}
}
}
te pregunto porq es un poc dificil trabajar con array
  #4 (permalink)  
Antiguo 25/04/2007, 13:53
Avatar de @ndreX!  
Fecha de Ingreso: abril-2007
Mensajes: 161
Antigüedad: 17 años
Puntos: 4
Re: eliminar cookies

Bueno según he entendido, quedaría el codigo así:

Código PHP:
<?
    
if ($_GET['accion']=="delete") { //1
        
$itin=$_GET['itin'];
        if (isset(
$_COOKIE['itenerario'])) {//2
            
foreach ($_COOKIE['itenerario'] as $cookiename => $cookievalue){
                if (
$cookievalue == $itin){
                    unset(
$_COOKIE['itenerario']);
                }
                
$cookiecount++; //Nose para que es est contador
            
}
        }
    }
?>
Yo te agregue al Yahoo, cualquier duda me avisas.

Saludos.
  #5 (permalink)  
Antiguo 26/04/2007, 10:26
 
Fecha de Ingreso: enero-2006
Mensajes: 233
Antigüedad: 18 años, 3 meses
Puntos: 2
Re: eliminar cookies

bueno no funciona mis cookies se guardadn de esta manera itenerario[ref1],....itenerario[refn],osea la diferencia el index ellas guardan el codigo del itenerarias el cliente agrega a sus favoritos los q le gusta.
le mustro lo q he hecho hasta ahora y esta bastante logico
<p><a href="/Tripplanning/itineraries/customized/accion.php?itin=<?=$itin?>&accion=add" class="RMenuText"><u>Save to my favorite.</u></a></p>
<a href="/Tripplanning/itineraries/customized/accion.php?itin=<?=$fullqueryitem["Codigo"];?>&accion=delete" style="text-decoration:none" >delete</a>

estos van a la pagina accion
que contiene el siguiente script
<?php
include '../../dboconnect.php';

if ($_GET['accion']=="add") { //1
$itin=$_GET['itin'];

$i=1;

if (isset($_COOKIE['itenerario'])) {

foreach ($_COOKIE['itenerario'] as $name => $value) {
$i++;
}
}
setcookie("itenerario[ref$i]",$itin,time()+7776000);
echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=http://www.costaricaexpeditions.com/Tripplanning/itineraries/customized/indextest.php?itin=$itin\">";

}
?>

<?php

if ($_GET['accion']=="delete") { //1
$itin=$_GET['itin'];
if (isset($_COOKIE['itenerario'])) {//2

$borra="";

$cookie_count = count($_COOKIE['itenerario']);
for($i = 0; $i<$cookie_count; $i++){
$current_cookie = current($_COOKIE['itenerario']);
$cookie_name = key($_COOKIE['itenerario']);
$current_cookie_count = count($current_cookie);
for($c = 0; $c < $current_cookie_count; $c++){
$val =$current_cookie;
echo $val;
echo $cookie_name;
if ($val==$itin) {
setcookie("itenerario[".$cookie_name."]",$borra,time()+1);
/*linea donde me manda el error, lo hice asi porque las cookies se estan guardando de esta manera itenerario[ref1],itenerario[ref2], .......itenerario[refn]
y la variable $cookie_name contiene el indece ref1....refn*/
}

//next($current_cookie);
}
next($_COOKIE['itenerario']);
}

}//2
}//1
el error q me manda es
Warning: Cannot modify header information - headers already sent by (output started at /home/iem/www/costaricaexpeditions.com/Tripplanning/itineraries/customized/accion.php:21) in /home/iem/www/costaricaexpeditions.com/Tripplanning/itineraries/customized/accion.php on line 49
gracias


?>
  #6 (permalink)  
Antiguo 26/04/2007, 10:39
Avatar de @ndreX!  
Fecha de Ingreso: abril-2007
Mensajes: 161
Antigüedad: 17 años
Puntos: 4
Re: eliminar cookies

A ver, prueba así:

Código PHP:
<?php
    
if ($_GET['accion']=="delete") { //1
        
$itin=$_GET['itin'];
        if (isset(
$_COOKIE['itenerario'])) {//2
            
$cookie_count count($_COOKIE['itenerario']);
            for(
$i 0$i<$cookie_count$i++){
                
$current_cookie current($_COOKIE['itenerario']);
                
$cookie_name key($_COOKIE['itenerario']);
                
$current_cookie_count count($current_cookie); //Esto no es necesario ya tienes el valor en $cookie_count 
                
for($c 0$c $current_cookie_count$c++){
                    
$val =$current_cookie;
                    echo 
$val;
                    echo 
$cookie_name;
                    if (
$val==$itin) {
                        unset(
$_COOKIE['itinerario'][$cookie_name]);
                    }
                
//next($current_cookie);
                
}
                
next($_COOKIE['itenerario']);
            }
        }
//2
    
}//1
?>
Según entiendo, la cookie itinerario es un Array, entonces para eliminar, según deseen, hacemos referencia al campo de la matriz así:

unset($_COOKIE['name']['valor_en_matriz']);

Espero te sirva.
Saludos.
  #7 (permalink)  
Antiguo 26/04/2007, 10:40
 
Fecha de Ingreso: enero-2006
Mensajes: 233
Antigüedad: 18 años, 3 meses
Puntos: 2
Re: eliminar cookies

ya señores ya vi el error, no se puede poner setcookie despues de una salida
lo "echo" eran al causa del errror el script funciona bien tanto para crear como para renombrar cookie
bye
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 22:48.