Проблемы с авторизацией.. Как убить куку?

Discussion in 'PHP' started by Nicca, 20 Feb 2010.

  1. Nicca

    Nicca Elder - Старейшина

    Joined:
    11 Jan 2008
    Messages:
    93
    Likes Received:
    4
    Reputations:
    -6
    Знаю миллион раз обсуждалось, но все-таки.. целый день уже бьюсь:
    Если авторизирюсь и выбираю пункт запомнить меня на 2 недели (тоесть ставлю куку), то не работает логаут.
    Если не ставлю куки а авторизация проходит только с помощью сессий, то все нормально..
    Что не так:???

    PHP:
    function login_saver() {
    if (
    $this->save_login == "no") {
        if (isset(
    $_COOKIE[$this->cookie_name])) {
            
    $expire time()-3600;
        } else {
            return;
        }
    } else {
        
    $expire time()+1209600;
    }
    $cookie_str $this->login.chr(31).base64_encode($this->pass);
    setcookie($this->cookie_name$cookie_str$expire'/''.site.com'falsetrue);        
    }

    function 
    login_user($login$pass) {
    if (
    $login != "" && $pass != "")
        {
            
    $this->login $login;
            
    $this->pass md5($pass);
            if (
    $this->check_user())    //проверяем есть ли в таблице запись с таким логином и паролем
                
    {    
                    
    $this->login_saver();
                    
    $this->reg_visit($this->login$this->pass);   // Отмечаем заход пользователя
                    
    $_SESSION['uslogin']=$this->login;
                    
    $_SESSION['uspass']=$this->pass;                
                    return 
    true;
                } 
        } 
    }

    function 
    log_out() {
            
    setcookie ($this->cookie_name""time()-25*14*360000'/');
            
    session_unregister("uslogin");
            
    session_unregister("uspass");
            
    session_destroy();
            
    header("Location:_h_ttp://site.com");
            exit();
        }    
    }
     
  2. felix_

    felix_ New Member

    Joined:
    25 Sep 2008
    Messages:
    24
    Likes Received:
    3
    Reputations:
    0
    setcookie ($this->cookie_name, ""); или setcookie ($this->cookie_name, "", NULL, '/');