쿠키 제거
PHP쿠키 제거
쿠키를 제거하고 싶을 때 시도해 봅니다.
unset($_COOKIE['hello']);
파이어 폭스에서 내 쿠키 브라우저에 쿠키가 여전히 있음을 알 수 있습니다. 쿠키를 어떻게 제거 할 수 있습니까?
해결법
-
==============================
1.너는 이것을 시도 할 수있다.
너는 이것을 시도 할 수있다.
if (isset($_COOKIE['remember_user'])) { unset($_COOKIE['Hello']); unset($_COOKIE['HelloTest1']); setcookie('Hello', null, -1, '/'); setcookie('HelloTest1', null, -1, '/'); return true; } else { return false; }
-
==============================
2.값을 ""로 설정하고 만료일을 어제 (또는 과거의 모든 날짜)로 설정합니다.
값을 ""로 설정하고 만료일을 어제 (또는 과거의 모든 날짜)로 설정합니다.
setcookie("hello", "", time()-3600);
그러면 다음에 페이지가로드 될 때 쿠키가 만료됩니다.
-
==============================
3.쿠키를 삭제하는 확실한 방법은 $ _COOKIE 값과 브라우저 쿠키 파일을 모두 지우는 것입니다.
쿠키를 삭제하는 확실한 방법은 $ _COOKIE 값과 브라우저 쿠키 파일을 모두 지우는 것입니다.
if (isset($_COOKIE['key'])) { unset($_COOKIE['key']); setcookie('key', '', time() - 3600, '/'); // empty value and old timestamp }
-
==============================
4.이렇게하면 코드에서 쿠키가 설정되지 않지만 $ _COOKIE 변수가 각 요청에 대해 새로 고쳐지기 때문에 다음 페이지 요청으로 다시 돌아옵니다.
이렇게하면 코드에서 쿠키가 설정되지 않지만 $ _COOKIE 변수가 각 요청에 대해 새로 고쳐지기 때문에 다음 페이지 요청으로 다시 돌아옵니다.
실제로 쿠키를 제거하려면 과거의 만료 날짜를 설정하십시오.
// set the expiration date to one hour ago setcookie("hello", "", time()-3600);
-
==============================
5.안정적으로 쿠키를 삭제하려면 PHP 서버에서 계산 한대로 과거에 언제든지 만료되도록 설정하는 것만으로는 충분하지 않습니다. 이는 클라이언트 컴퓨터가 서버와 다른 시간을 가질 수 있고 종종 할 수 있기 때문입니다.
안정적으로 쿠키를 삭제하려면 PHP 서버에서 계산 한대로 과거에 언제든지 만료되도록 설정하는 것만으로는 충분하지 않습니다. 이는 클라이언트 컴퓨터가 서버와 다른 시간을 가질 수 있고 종종 할 수 있기 때문입니다.
가장 좋은 방법은 현재 쿠키를 임시 쿠키 (1970 년 1 월 1 일 00:00:00 UTC) 이후에 1 초 후에 만료되는 빈 쿠키로 덮어 쓰는 것입니다.
setcookie("hello", "", 1);
-
==============================
6.내 코드에서 동일한 문제가 발생하여 쿠키 경로 문제라는 것을 알았습니다. 이 스택 오버 플로우 게시물을 확인하십시오 : PHP 세트 쿠키를 삭제할 수 없습니다.
내 코드에서 동일한 문제가 발생하여 쿠키 경로 문제라는 것을 알았습니다. 이 스택 오버 플로우 게시물을 확인하십시오 : PHP 세트 쿠키를 삭제할 수 없습니다.
"/"경로 값을 사용하여 쿠키를 설정했지만 쿠키를 지울 때 경로 값이 없으므로 지워지지 않았습니다. 그래서 여기에 효과가있는 예제가 있습니다.
쿠키 설정 :
$cookiePath = "/"; $cookieExpire = time()+(60*60*24);//one day -> seconds*minutes*hours setcookie("CookieName",$cookieValue,$cookieExpire,$cookiePath);
쿠키 지우기 :
setcookie("cookieName","", time()-3600, $cookiePath); unset ($_COOKIE['cookieName']);
희망이 도움이됩니다.
-
==============================
7.이전에 쿠키가 만료되도록 설정하면 브라우저가 쿠키를 삭제합니다. php.net에서 setcookie () delete 예제를 참조하십시오.
이전에 쿠키가 만료되도록 설정하면 브라우저가 쿠키를 삭제합니다. php.net에서 setcookie () delete 예제를 참조하십시오.
-
==============================
8.PHP 문서에서 "예제 # 2 setcookie () delete example"이라는 샘플을 참조하십시오. 브라우저에서 쿠키를 삭제하려면 브라우저에 쿠키가 만료되었음을 알려줘야합니다. 그러면 브라우저가 쿠키를 제거합니다. 쿠키를 사용하지 않았 으면 COOKIE 배열에서 'hello'쿠키 만 제거합니다.
PHP 문서에서 "예제 # 2 setcookie () delete example"이라는 샘플을 참조하십시오. 브라우저에서 쿠키를 삭제하려면 브라우저에 쿠키가 만료되었음을 알려줘야합니다. 그러면 브라우저가 쿠키를 제거합니다. 쿠키를 사용하지 않았 으면 COOKIE 배열에서 'hello'쿠키 만 제거합니다.
-
==============================
9.이것은 PHP v7 setcookie () 코드가 다음과 같은 경우 작동하는 방식입니다.
이것은 PHP v7 setcookie () 코드가 다음과 같은 경우 작동하는 방식입니다.
<?php setcookie('user_id',''); setcookie('session',''); ?>
포트 80에서 스니핑하는 동안 tcpdump의 출력에서 서버는 다음 HTTP 헤더를 클라이언트 (브라우저)로 보냅니다.
Set-Cookie: user_id=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0 Set-Cookie: session=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0
다음 요청에서 패킷을 관찰하면 브라우저가 더 이상이 쿠키를 헤더에 보내지 않습니다.
-
==============================
10.쿠키를 삭제하려면 값을 NULL로 설정하면됩니다.
쿠키를 삭제하려면 값을 NULL로 설정하면됩니다.
"만료 시간, 경로 또는 도메인에 대해 기본값 이외의 값으로 쿠키를 설정 한 경우 쿠키를 삭제할 때 해당 값을 다시 입력해야 쿠키가 제대로 삭제됩니다." "Learning PHP5"책의 견적서.
그래서이 코드는 작동 할 것입니다 (저에게 좋습니다) :
쿠키 설정 : setcookie ( 'foo', 'bar', time () + 60 * 5);
쿠키 삭제 : setcookie ( 'foo', '', 시간 () + 60 * 5);
그러나 모든 사람들이 만료 날짜를 과거로 설정하고있는 것을 보았습니다. 필요한 것이고, 그 이유는 무엇입니까?
-
==============================
11.작성할 수있는 모든 쿠키를 제거하려면 다음을 수행하십시오.
작성할 수있는 모든 쿠키를 제거하려면 다음을 수행하십시오.
foreach ($_COOKIE as $key => $value) { unset($value); setcookie($key, '', time() - 3600); }
-
==============================
12.다음과 같이 쿠키를 "제거"하려면 1 시간 전에 만료 날짜를 설정하십시오.
다음과 같이 쿠키를 "제거"하려면 1 시간 전에 만료 날짜를 설정하십시오.
setcookie ("TestCookie", "", time() - 3600);
또는
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", "example.com", 1);
출처 : http://www.php.net/manual/en/function.setcookie.php
다음과 같이 방문자가 입력 / 조작 할 수있는 모든 전역에 대해 filter_input () 함수를 사용해야합니다.
$visitors_ip = filter_input(INPUT_COOKIE, 'id');
자세한 내용은 http://www.php.net/manual/en/function.filter-input.php 및 http://www.w3schools.com/php/func_filter_input.asp에서 확인할 수 있습니다.
-
==============================
13.이 주제가 작성된 이후로 오랜 시간이 걸렸으나이 솔루션 내에서 약간의 실수를 보았습니다 (세부 사항이기 때문에 그렇게 부를 수 있음). 나는 더 나은 해결책은 아마도이 해결책이라고 동의한다.
이 주제가 작성된 이후로 오랜 시간이 걸렸으나이 솔루션 내에서 약간의 실수를 보았습니다 (세부 사항이기 때문에 그렇게 부를 수 있음). 나는 더 나은 해결책은 아마도이 해결책이라고 동의한다.
if (isset($_COOKIE['remember_user'])) { unset($_COOKIE['Hello']); unset($_COOKIE['HelloTest1']); setcookie('Hello', null, -1, '/'); setcookie('HelloTest1', null, -1, '/'); return true; } else { return false; }
그러나 현재의 경우 unset 함수가 작동하는 모든 경우에 쿠키를 삭제하고 unset 함수가 작동하지 않는 경우 즉시 만료 된 쿠키를 새로 만듭니다.
이는 설정되지 않은 기능이 작동하더라도 컴퓨터에 여전히 2 개의 쿠키가 있음을 의미합니다. 논리적 인 관점에서 질문 된 목표는 가능한 경우 쿠키를 삭제하고 실제로 쿠키가 아니면 만료되도록 설정하는 것입니다. "가장 깨끗한"결과를 얻으십시오.
그래서 나는 우리가해야한다고 생각합니다.
if (isset($_COOKIE['remember_user'])) { setcookie('Hello', null, -1, '/'); setcookie('HelloTest1', null, -1, '/'); unset($_COOKIE['Hello']); unset($_COOKIE['HelloTest1']); return true; } else { return false; }
고마워 좋은 하루 되세요 :)
-
==============================
14.
$cookie_name = "my cookie"; $cookie_value = "my value"; $cookie_new_value = "my new value"; // Create a cookie, setcookie($cookie_name, $cookie_value , time() + (86400 * 30), "/"); //86400 = 24 hours in seconds // Get value in a cookie, $cookie_value = $_COOKIE[$cookie_name]; // Update a cookie, setcookie($cookie_name, $cookie_new_value , time() + (86400 * 30), "/"); // Delete a cookie, setcookie($cookie_name, '' , time() - 3600, "/"); // time() - 3600 means, set the cookie expiration date to the past hour.
-
==============================
15.간단 해!
간단 해!
setcookie("cookiename", "cookievalue", 1);
-
==============================
16.쿠키 값을 기반으로 세션 변수를 설정할 수 있습니다.
쿠키 값을 기반으로 세션 변수를 설정할 수 있습니다.
session_start(); if(isset($_COOKIE['loggedin']) && ($_COOKIE['loggedin'] == "true") ){ $_SESSION['loggedin'] = "true"; } echo ($_SESSION['loggedin'] == "true" ? "You are logged in" : "Please Login to continue");
-
==============================
17.이 사용자 정의 기능을 사용하면됩니다.
이 사용자 정의 기능을 사용하면됩니다.
function unset_cookie($cookie_name) { if (isset($_COOKIE[$cookie_name])) { unset($_COOKIE[$cookie_name]); setcookie($cookie_name, null, -1); } else { return false; } }
$ _COOKIE [ 'user_account']을 (를) 제거하고 싶습니다. 그냥 사용 :
unset_cookie('user_account');
-
==============================
18.서버에서 php로 쿠키를 삭제하고 브라우저에서 js로 쿠키를 삭제해야합니다 (쿠키는 php로 만들었지 만 쿠키 파일은 브라우저 클라이언트에도 있음).
서버에서 php로 쿠키를 삭제하고 브라우저에서 js로 쿠키를 삭제해야합니다 (쿠키는 php로 만들었지 만 쿠키 파일은 브라우저 클라이언트에도 있음).
예 :
if ($_GET['action'] == 'exit'){ // delete cookies with js and then in server with php: echo ' <script type="text/javascript"> var delete_cookie = function(name) { document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:01 GMT;"; }; delete_cookie("madw"); delete_cookie("usdw"); </script> '; unset($_COOKIE['cookie_name']); unset($_COOKIE['cookie_time']);
-
==============================
19.대부분의 사람들은 이것이 로컬 컴퓨터에서만 작동한다는 것을 잊고 있습니다. 도메인에서이 예제와 같은 패턴이 필요합니다.
대부분의 사람들은 이것이 로컬 컴퓨터에서만 작동한다는 것을 잊고 있습니다. 도메인에서이 예제와 같은 패턴이 필요합니다.
setcookie("example_cookie", 'password', time()-3600, "/", $_SERVER['SERVER_NAME']);
from https://stackoverflow.com/questions/686155/remove-a-cookie by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
문자열에서 utf8 이외의 문자 제거 (0) | 2018.09.11 |
---|---|
json_encode가 NULL을 반환하고 있습니까? (0) | 2018.09.11 |
PHP - SSL 인증서 오류 : 로컬 발급자 인증서를 가져올 수 없습니다. (0) | 2018.09.11 |
isset와 array_key_exists의 차이점 (0) | 2018.09.11 |
문자열의 처음 n 문자 가져 오기 (0) | 2018.09.11 |