Foros del Web » Programando para Internet » PHP »

la cookie se borra en IE pero no en firefox... ayuda!

Estas en el tema de la cookie se borra en IE pero no en firefox... ayuda! en el foro de PHP en Foros del Web. Buenas a todos, espero que me puedan ayudar con esto que me está volviendo loco y no encuentro razón alguna... así seteo la cookie Código: ...
  #1 (permalink)  
Antiguo 14/08/2007, 17:59
Avatar de marckd  
Fecha de Ingreso: febrero-2005
Ubicación: Uruguay
Mensajes: 511
Antigüedad: 19 años, 2 meses
Puntos: 11
Pregunta la cookie se borra en IE pero no en firefox... ayuda!

Buenas a todos, espero que me puedan ayudar con esto que me está volviendo loco y no encuentro razón alguna...

así seteo la cookie
Código:
setcookie("pabadpass", $pass, time()+36000);
y así la borro y funciona perfectamente con IE pero no con Firefox...
Código:
setcookie("pabadpass", "", 0);
Ya he probado enviando un tiempo negativo y con unset, pero nada me ha funcionado... sugerencias???

muchas gracias
__________________
Tonterias
Trillonario
  #2 (permalink)  
Antiguo 14/08/2007, 18:07
Avatar de eskorbutin  
Fecha de Ingreso: junio-2006
Mensajes: 65
Antigüedad: 17 años, 9 meses
Puntos: 2
Re: la cookie se borra en IE pero no en firefox... ayuda!

Para borrar una cookie debes darle un tiempo negativo como tu dices.

Código PHP:
setcookie("pabadpass"$passtime()-36000); 
La cookie no se borrará hasta la proxima recarga de la página. es decir si hasces esto:

Código PHP:
setcookie("pabadpass""",  time()-36000);

if (isset(
$_COOKIE['pabadpass'])){
     echo 
"Aún existe";
else{
     echo 
"La cookie pabadpass no existe";

Primero te dirá que la cookie aún existe, hasta que no recargues la página imprimirá que la cookie no existe. Igual al crearla, hasta que no recargues la página la coockie estará disponible.
  #3 (permalink)  
Antiguo 14/08/2007, 18:16
Avatar de marckd  
Fecha de Ingreso: febrero-2005
Ubicación: Uruguay
Mensajes: 511
Antigüedad: 19 años, 2 meses
Puntos: 11
Re: la cookie se borra en IE pero no en firefox... ayuda!

Entiendo, ahora haciendo más pruebas, he quitado todo el código que utilizo, y he creado esto:

Código:
setcookie("pabadpass", md5("123456"), time()+3600);

if (isset($_COOKIE["pabadpass"])){
	setcookie("pabadpass", "", time()-3600);
  echo "tu clave codifcada es" . $_COOKIE["pabadpass"] . "!<br />";
  
}else{
  echo "invitado!<br />";
}
Increiblemente esto funciona en ambos exploradores cada vez que refresco, pero por qué no está funcionando con todo el código del sitio que tengo? Es decir... hay algo que esté omitiendo que no permita el correcto funcionamiento en Firefox y que IE lo ignore y funcione??

No estoy enviando ningún header o text antes de setear las cookies.
__________________
Tonterias
Trillonario
  #4 (permalink)  
Antiguo 14/08/2007, 18:25
Avatar de eskorbutin  
Fecha de Ingreso: junio-2006
Mensajes: 65
Antigüedad: 17 años, 9 meses
Puntos: 2
Re: la cookie se borra en IE pero no en firefox... ayuda!

Pues sería cuestión de ver tu código.. Además si estubieras enviando las cabeceras antes de setear la cookie PHP de lo notificaría. Si lo posteas tal ves se te pueda ayudar.
  #5 (permalink)  
Antiguo 14/08/2007, 18:32
Avatar de marckd  
Fecha de Ingreso: febrero-2005
Ubicación: Uruguay
Mensajes: 511
Antigüedad: 19 años, 2 meses
Puntos: 11
Re: la cookie se borra en IE pero no en firefox... ayuda!

Pongo la parte del código relevante al caso

Para ingresar:
Código:
<?php

include("includes/functions.php");

if(!isset($_COOKIE["pabadpass"]) || strcmp($_COOKIE["pabadpass"], "")==0){
	if(isset($_POST['txtUser'])){
		$usuario = check($_POST['txtUser']);
		if(strcmp($usuario, "admin")==0){
			//admin
			include("includes/constantes.php");
			include("dao/Datasource.php");
			include("dao/Passadmin.php");
			include("dao/PassadminDAO.php");

			$pass = md5($_POST['txtPassword']);

			$connection = new Datasource(HOST, DB, USER, PASSWORD);

			$passAdminHandler = new PassadminDao();
			$passAdmin = new Passadmin();

			$passAdmin->setIdPass(1);

			$passAdmin = $passAdminHandler->getObject($connection, $passAdmin->getIdPass());
			if(strcmp($passAdmin->getPass(), $pass)==0){
				//setcookie("pabadpass", $pass, time()+36000);
				setcookie("pabadpass", $pass, time()+3600);

				echo 'Bienvenido Administrador, por favor espere<META HTTP-EQUIV="refresh" content="0;URL=index.php">';
			}else{
				echo "$pass<br>$passAdmin->getPass()";
				?>
				<form name="FormLogin" method="post" action="index.php">
				<br>
				<table width="200px">
				<tr>
				<td colspan="2" align="center"><b>Acceso usuarios</b><br><font color="Red">Contrase&ntilde;a incorrecta</font></td>
				</tr>
				<tr>
				<td>Usuario:</td>
				<td><input type="text" name="txtUser" size="15"></td>
				</tr>
				<tr>
				<td>Contrase&ntilde;a:</td>
				<td><input type="password" name="txtPassword" size="15"></td>
				</tr>
				<tr>
				<td colspan="2" align="center">
				<input type="submit" name="btnLogin" value="Acceder">
				</td>
				</tr>
				</table>
				</form>
				<?php
			}
		}else{
			//usuarios

		}
	}else{

?>
		<form name="FormLogin" method="post" action="index.php">
		<br>
		<table width="200px">
		<tr>
		<td colspan="2" align="center"><b>Acceso usuarios</b></td>
		</tr>
		<tr>
		<td>Usuario:</td>
		<td><input type="text" name="txtUser" size="15"></td>
		</tr>
		<tr>
		<td>Contrase&ntilde;a:</td>
		<td><input type="password" name="txtPassword" size="15"></td>
		</tr>
		<tr>
		<td colspan="2" align="center">
		<input type="submit" name="btnLogin" value="Acceder">
		</td>
		</tr>
		</table>
		</form>
<?php
	}
}else{
?>
	<table width="200px">
	<tr>
	<td colspan="2" align="center"><b>Bienvenido administrador</b><br>
	<a href="admin/changePass.php">Cambiar contrase&ntilde;a.</a><br>
	<a href="admin/logout.php">Salir.</a></td>
	</tr>
	</table>
<?php	
	

}
?>
y el logout es:
Código:
<?php
//setcookie("pabadpass", "", 0);
if (isset($_COOKIE["pabadpass"])){
	setcookie("pabadpass", "", time()-3600);
	echo "kk";
}

//echo $pabliniadminpass;
if(!isset($_COOKIE["pabadpass"]) || strcmp($_COOKIE["pabadpass"], "")==0){
	echo 'Espere a que se refresque. <META HTTP-EQUIV="refresh" content="2;URL=../index.php">';
}else{
	echo 'No se borr&oacute;. <META HTTP-EQUIV="refresh" content="1;URL=logout.php">';
}

?>
Gracias
__________________
Tonterias
Trillonario
  #6 (permalink)  
Antiguo 14/08/2007, 21:06
Avatar de eskorbutin  
Fecha de Ingreso: junio-2006
Mensajes: 65
Antigüedad: 17 años, 9 meses
Puntos: 2
Re: la cookie se borra en IE pero no en firefox... ayuda!

Lo que pasa es que el logout.php lo tienes en un directorio diferente y, entonces tienes que especificar el path donde la cookie va a estar disponible, si especificas como "/" estará disponible en el dominio especificado, es decir, en todos tus directorios. Ejemplo:

para establecer la cookie:

Código PHP:
setcookie("pabadpass"$passtime() + 3600"/"tudominio.com); 
y para eliminarla

Código PHP:
setcookie("pabadpass"""time() - 3600"/"tudominio.com); 
si estas trabajando localmente puedes substituir tudomino.com por localhost, o el nombre que le hayas puesto.
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 23:18.