NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Nefunkčné vymazanie cookies.

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar

Člen
Avatar
:30.4.2017 17:14

Zdravím, nemôžem vymazať z nejakého dôvodu cookie - loggedIn. Funguje to len v tom prípade, ak sa nenachádza v if, alebo ak v podmienke nemám variable $url (ostatné príkazy v podmienke fungujú ako je napríklad echo(), len odignoruje to vymazanie cookie) Kód:

<?php
//http://www.itnetwork.cz

class AdministrationController extends Controller {

        private function checkFF($field, $content = null){
                if (isset($_POST[$field])) {
                        if($content !== null){
                                if($_POST[$field] === $content){
                                        return true;
                                }
                        } else{
                                if($_POST[$field]){
                                        return true;
                                }
                        }
                }
        }

    public function zpracuj($url) {
                if(isset($_SESSION['loggedIn']) || isset($_COOKIE['loggedIn']) && $_COOKIE['loggedIn'] == true){

                        if($url[0] === 'log-out'){
                                setcookie('loggedIn', true, time()-3600);
                                unset($_SESSION['loggedIn']);
                        }

                        $this->view = 'loggedIn';
                        $this->header['title'] = 'Logged In';
                } else{
                        $this->view = 'loggedOut';
                        $this->header['title'] = 'Logged Out';
                }

                if($_SERVER["REQUEST_METHOD"] === 'POST'){
                        if($this->checkFF('name', 'gold604') && $this->checkFF('password', 'gold604')){
                                setcookie('loggedIn', true, time()+3600);
                                $this->redirect('administration');
                        }
                }
    }
}

Vytváram web v MVC. Kostru MVC aplikácie mám z itnetwork.cz tutoriálov.
Ak bude treba viac zdrojového kódu nie je problém.

Ďakujem.

 
Odpovědět
30.4.2017 17:14
Avatar
kaskader202
Člen
Avatar
kaskader202:24.5.2017 15:10

Ahoj,jestli se nepletu tak, protože tam máš hodnotu (true) zkus:

unset($_COOKIE['loggedIn']);

nebo

setcookie('loggedIn', null, -1, '/');
 
Nahoru Odpovědět
24.5.2017 15:10
Avatar
Lasvit
Člen
Avatar
Lasvit:24.5.2017 20:57

CS,

setCookie("loggedIn", "", 1);

nula ve středním parametru má význam do zavření prohlížeče, ostatní hodnoty jsou vyhodnoceny jako Unix timestamp, tedy 1 je první sekunda roku 1970-

 
Nahoru Odpovědět
24.5.2017 20:57
Avatar
Odpovídá na Lasvit
Neaktivní uživatel:16.7.2017 18:18

Přesně jak píše Lasvit. :-)
Ale tu proměnnou smazat můžeš, pokud je script dlouhý, aby zbytečně nebyl obsah v paměti:

unset ($_COOKIE["loggedIn"]);
Editováno 16.7.2017 18:21
Nahoru Odpovědět
16.7.2017 18:18
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.