복붙노트

쿠키 제거

PHP

쿠키 제거

쿠키를 제거하고 싶을 때 시도해 봅니다.

unset($_COOKIE['hello']);

파이어 폭스에서 내 쿠키 브라우저에 쿠키가 여전히 있음을 알 수 있습니다. 쿠키를 어떻게 제거 할 수 있습니까?

해결법

  1. ==============================

    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. ==============================

    2.값을 ""로 설정하고 만료일을 어제 (또는 과거의 모든 날짜)로 설정합니다.

    값을 ""로 설정하고 만료일을 어제 (또는 과거의 모든 날짜)로 설정합니다.

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

    그러면 다음에 페이지가로드 될 때 쿠키가 만료됩니다.

  3. ==============================

    3.쿠키를 삭제하는 확실한 방법은 $ _COOKIE 값과 브라우저 쿠키 파일을 모두 지우는 것입니다.

    쿠키를 삭제하는 확실한 방법은 $ _COOKIE 값과 브라우저 쿠키 파일을 모두 지우는 것입니다.

    if (isset($_COOKIE['key'])) {
        unset($_COOKIE['key']);
        setcookie('key', '', time() - 3600, '/'); // empty value and old timestamp
    }
    
  4. ==============================

    4.이렇게하면 코드에서 쿠키가 설정되지 않지만 $ _COOKIE 변수가 각 요청에 대해 새로 고쳐지기 때문에 다음 페이지 요청으로 다시 돌아옵니다.

    이렇게하면 코드에서 쿠키가 설정되지 않지만 $ _COOKIE 변수가 각 요청에 대해 새로 고쳐지기 때문에 다음 페이지 요청으로 다시 돌아옵니다.

    실제로 쿠키를 제거하려면 과거의 만료 날짜를 설정하십시오.

    // set the expiration date to one hour ago
    setcookie("hello", "", time()-3600);
    
  5. ==============================

    5.안정적으로 쿠키를 삭제하려면 PHP 서버에서 계산 한대로 과거에 언제든지 만료되도록 설정하는 것만으로는 충분하지 않습니다. 이는 클라이언트 컴퓨터가 서버와 다른 시간을 가질 수 있고 종종 할 수 있기 때문입니다.

    안정적으로 쿠키를 삭제하려면 PHP 서버에서 계산 한대로 과거에 언제든지 만료되도록 설정하는 것만으로는 충분하지 않습니다. 이는 클라이언트 컴퓨터가 서버와 다른 시간을 가질 수 있고 종종 할 수 있기 때문입니다.

    가장 좋은 방법은 현재 쿠키를 임시 쿠키 (1970 년 1 월 1 일 00:00:00 UTC) 이후에 1 초 후에 만료되는 빈 쿠키로 덮어 쓰는 것입니다.

    setcookie("hello", "", 1);
    
  6. ==============================

    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. ==============================

    7.이전에 쿠키가 만료되도록 설정하면 브라우저가 쿠키를 삭제합니다. php.net에서 setcookie () delete 예제를 참조하십시오.

    이전에 쿠키가 만료되도록 설정하면 브라우저가 쿠키를 삭제합니다. php.net에서 setcookie () delete 예제를 참조하십시오.

  8. ==============================

    8.PHP 문서에서 "예제 # 2 setcookie () delete example"이라는 샘플을 참조하십시오. 브라우저에서 쿠키를 삭제하려면 브라우저에 쿠키가 만료되었음을 알려줘야합니다. 그러면 브라우저가 쿠키를 제거합니다. 쿠키를 사용하지 않았 으면 COOKIE 배열에서 'hello'쿠키 만 제거합니다.

    PHP 문서에서 "예제 # 2 setcookie () delete example"이라는 샘플을 참조하십시오. 브라우저에서 쿠키를 삭제하려면 브라우저에 쿠키가 만료되었음을 알려줘야합니다. 그러면 브라우저가 쿠키를 제거합니다. 쿠키를 사용하지 않았 으면 COOKIE 배열에서 'hello'쿠키 만 제거합니다.

  9. ==============================

    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. ==============================

    10.쿠키를 삭제하려면 값을 NULL로 설정하면됩니다.

    쿠키를 삭제하려면 값을 NULL로 설정하면됩니다.

    "만료 시간, 경로 또는 도메인에 대해 기본값 이외의 값으로 쿠키를 설정 한 경우 쿠키를 삭제할 때 해당 값을 다시 입력해야 쿠키가 제대로 삭제됩니다." "Learning PHP5"책의 견적서.

    그래서이 코드는 작동 할 것입니다 (저에게 좋습니다) :

    쿠키 설정 : setcookie ( 'foo', 'bar', time () + 60 * 5);

    쿠키 삭제 : setcookie ( 'foo', '', 시간 () + 60 * 5);

    그러나 모든 사람들이 만료 날짜를 과거로 설정하고있는 것을 보았습니다. 필요한 것이고, 그 이유는 무엇입니까?

  11. ==============================

    11.작성할 수있는 모든 쿠키를 제거하려면 다음을 수행하십시오.

    작성할 수있는 모든 쿠키를 제거하려면 다음을 수행하십시오.

    foreach ($_COOKIE as $key => $value) {
        unset($value);
        setcookie($key, '', time() - 3600);
    }
    
  12. ==============================

    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. ==============================

    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. ==============================

    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. ==============================

    15.간단 해!

    간단 해!

    setcookie("cookiename", "cookievalue", 1);
    
  16. ==============================

    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. ==============================

    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. ==============================

    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. ==============================

    19.대부분의 사람들은 이것이 로컬 컴퓨터에서만 작동한다는 것을 잊고 있습니다. 도메인에서이 예제와 같은 패턴이 필요합니다.

    대부분의 사람들은 이것이 로컬 컴퓨터에서만 작동한다는 것을 잊고 있습니다. 도메인에서이 예제와 같은 패턴이 필요합니다.

    setcookie("example_cookie", 'password', time()-3600, "/", $_SERVER['SERVER_NAME']);
    
  20. from https://stackoverflow.com/questions/686155/remove-a-cookie by cc-by-sa and MIT license