you w3schools usarse una set_cookie sentencia puede para how funciona enviar eliminar delete create cookie php session cookies session-cookies

w3schools - ¿Cómo desarmar las cookies en PHP?



set cookie php no funciona (6)

En el manual de php, puede eliminar una cookie al establecer una fecha de caducidad en el pasado:

setcookie("key","",time()-3600);

En algún caso, debe proporcionar la ruta y el dominio para los argumentos.

De hecho, si asigna una cookie con una cadena vacía, también se cancelará:

setcookie("key","");

Necesito averiguar cómo desarmar esta cookie. Todo lo que probé hasta ahora ha fallado.

Así es como actualmente lo estoy desestabilizando y parece que no funciona.

setcookie("user_id", $user_id, time() - 7200);

Así es como lo configuro:

setcookie("user_id", $user_id, time() + 7200);

Tengo esta función llamada set_session_from_cookie() que verifica si una cookie está configurada, y si está configurada, inicia una nueva sesión utilizando la cookie.

El problema es que cuando uso esto en mi página no puedo cerrar sesión. Supongo que esto se debe a que no puedo cancelar la sesión.

La razón por la que tengo esta función es que si un usuario desea ser recordado después de finalizar la sesión, puede reiniciar la sesión llamando a la cookie.

function set_session_from_cookie() { if (isset($_SESSION[''user_id''])) { echo ''''; } else { $_SESSION[''user_id'']=$_COOKIE[''user_id'']; } }

Cerrar sesión:

<?php require''core.php''; session_destroy(); setcookie("user_id", "", time() - 7200); header(''Location:/social_learning/site_pages/starter-template.php'');

Pongo mi cookie con el siguiente código:

if ($rememberme == "on") { $user_id = mysql_result($query_run, 0, ''id''); setcookie("user_id", $user_id, time() + 7200); $_SESSION[''user_id''] = $user_id; redirect(''home_page.php''); } else { if ($rememberme == "") { echo ''ok''; $user_id = mysql_result($query_run, 0, ''id''); echo $user_id; $_SESSION[''user_id''] = $user_id; redirect(''home_page.php''); } }

¿Cómo puedo reiniciar la sesión usando la cookie guardada sin usar la función que creé? Dado que la función parece estar causando que el usuario ya no pueda cerrar sesión.


Establezca la fecha de vencimiento de la cookie en un tiempo pasado (como un segundo después de la epoch , por ejemplo).

setcookie("yourCookie", "yourValue", 1);

Esto hará que la cookie caduque.

Se usa 1 lugar de 0 , porque 0 establece que la cookie caduca al final de la sesión.


Hay algunas preocupaciones de seguridad con respecto a su código, sin embargo, para responder a su pregunta, para desactivar una cookie en php, todo lo que necesita hacer es establecer el tiempo de caducidad en un tiempo en el pasado:

setcookie("user_id", "", time()-10, "/");

"loginform.php" no es un dominio válido, ese podría ser el problema aquí.


La solución a este problema fue que necesitaba configurar la ruta correcta para desactivar la cookie, ya que la estaba desarmando de un archivo diferente en el que la configuré originalmente.

Descubrí qué ruta necesitaba usar para desarmar buscando la cookie dentro de las cookies de mi navegador, y una vez que encontré la cookie dentro de mi navegador, la ruta estaba cerca de la cookie. Entonces puse la ruta a la cookie de esta manera:

setcookie("user_id", $user_id, time() - 1, "/social_learning/site_pages");

El último parámetro es el camino. Y funcionó.

Mi setcookie original se ve así:

setcookie("user_id", $user_id, time() + 7200, "");


Mira el manual de php para obtener información sobre setcookie

http://php.net/manual/en/function.setcookie.php

Estas notas deben explicar el proceso:

bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )

Las cookies se deben eliminar con los mismos parámetros con los que se configuraron. Si el argumento de valor es una cadena vacía, o FALSO, y todos los demás argumentos coinciden con una llamada anterior a setcookie, la cookie con el nombre especificado se eliminará del cliente remoto. Esto se logra internamente estableciendo el valor en ''eliminado'' y el tiempo de vencimiento a un año en el pasado.

Debido a que la configuración de una cookie con un valor FALSO intentará eliminar la cookie, no debe usar valores booleanos. En su lugar, use 0 para FALSO y 1 para VERDADERO.


usa este código

setcookie("CookieName", "", time()-(60*60*24), "/");

Funciona cada vez para mí en todos los sitios web.