Tarayıcınız sonlandırılıyor çerez tahrip ediliyor

2 Cevap php

Şu anda benim web tanımlama ile oyun oynuyor, ben yapmak ilk şey, onlar bir çerez oluşturur tıklayın eğer ben 3 seçenek wth menüsünü görüntülemek vermezsek kullanıcı, çerez var olup olmadığı konusunda bir kontrol çalıştırmak, ama sonra eğer çıkın çerez tahrip tarayıcı, burada, benim kodu

function createRandomId() {
    $chars = "abcdefghijkmnopqrstuvwxyz023456789";
    srand((double)microtime() * 1000000);
    $i = 0;
    $unique = '';
    while ($i <= 7) {
        $num = rand() % 33;
        $tmp = substr($chars, $num, 1);
        $unique = $unique.$tmp;
        $i++;
    }
    return md5($unique);
}

function index() {
    // $data is the array of data that is passed to views, setup it up
    $data = array();
    // We need to setup the cookie that will be used site, this will be used to cross reference
    // The user with the options they have selected, to do this we first need to load the session model
    // Check if the user has a cookie already, if they it means they have been to the site in the last 30 days.
    if(!isset($_COOKIE['bangUser'])) {
        // Get createRandomId() method and return a unique ID for the user
        $unique = '';
        // Setting the cookie, name = bangUser, the cookie will expire after 30 days
        setcookie("bangUser", $unique, time() + (60*60*24*30));
        $data['firstTime'] = TRUE;
    } else {
        $data['notFirstTime'] = TRUE;
    }

    // Load the view and send the data from it.
    $this->load->view('base/index', $data); 
}


function createCookie() {
    // Function gets called when the user clicks yes on the firstTime menu.
    // The purpose of this function is to create a cookie for the user.
    // First we'll give them a unique ID
    $unique = $this->createRandomId();
    // With the unique ID now available we can set our cookie doing the same function as before
    setcookie("bangUser", $unique, time() + (60*60*24*30));
    // Now that the cookie is set we can do a 100% check, check that cookie is set and if it is redirect to
    // to the homepage
    if(isset($_COOKIE['bangUser'])) {
        redirect('welcome');
    }
}

Temelde indeksi () fonksiyonu kontrol ve createCookie yeni bir çerez oluşturur yapar, herhangi bir herhangi bir sorunları görebilirsiniz?

2 Cevap

Lütfen createCookie işlevi, SetCookie çağrı derhal $ _COOKIE süper küreseli için değer eklemek olmaz - isteği yapıldığı zaman, bu dizi sadece mevcut çerezleri tutar (ama yine dizide yeni çerez değerini saklamak olabilir)

Eğer tarayıcı sonlandırıldığında yıkılmış bir oturum çerezi istiyorsanız Ayrıca, sona erme zaman için null değerini belirtin. Alternatif olarak, sadece PHP seanslarda inşa kullanabilirsiniz.

Eğer web sitesi konum mutlak yolu setcookie dördüncü parametre ($ yol) ayarlamanız gerekir. Örneğin:

setcookie("bangUser", $unique, time() + (60*60*24*30), "/");