COOKIE çek sadece üye olmayan önbelleğe alınmış verileri gösteriliyor?

3 Cevap php

(Blog gönderileri gibi) non-önemli sayfaların HTML çıktısını önbelleğe gerçekten tüm sistemin yüklenmesini atlama (ve zaman render) ve sadece sayfanın önceden yapılmış bir kopyasını nispet tarafından bir site hızlandırmak için yardımcı olur. Bu kaynaklar yeme sitenizi dizine veya ne olursa olsun kullanıcıların büyük dalgalar tutabilirsiniz tek yolu olacaktır.

Eğer tüm sistemi (ve kullanıcı lib) yüklemek zorunda kullanıcı (Wordpress, CodeIgniter oturum olup olmadığını kontrol etmek için - Ancak, önbelleğe sayfaları sorunlarından biri kalmamak kontrol etmek veya değil sırayla sayfayı göstermek olabilir , Siteye, vb.)

Eğer oturum açan kullanıcı için sayfayı yeniden işlemek gerekir eğer sayfanın önbelleğe alınmış bir sürümü göstermek veya güvenli olup olmadığını Sonra belirleyebilirsiniz. Ve vis versa; oturum açmış bir kullanıcı için oluşturulan bir sayfa, bir konuk için gösterilen olmamalı!

Neyse, sonunda () $ _COOKIE (boş) eğer ben oturum kimliği aktarmak için URL'yi asla kullanmayın çünkü ben sadece bir kullanıcı oturumu için sınamak için kullanabilirsiniz bir fikrim yoktu. Sonra oturumu kütüphane her sayfada yüklenen beri session_start () denir bir çerez oluşturmak çünkü muhtemelen işe yaramaz olduğunu hatırladı.

Kullanıcı kütüphanesi için> - senin oturum kütüphanesi için> - herkes veritabanı bağlantısını yükleme olmadan bir kullanıcı oturumu için nasıl test hakkında herhangi bir fikir var mı?

3 Cevap

Ben sadece son zamanlarda öğrendim, bu yüzden ben her şey düz umuyoruz.

Kaydedilen oturum değişkenleri erişmek için, bir oturumu başladı olması gerekir. Projede ben üzerinde çalışıyorum, 'kullanıcı giriş' ve tüm session_start ile start () sayfaları 'yeni bir kullanıcı oluşturun'. Çerez kuruldu, ben de çok iyi işe yaramadı, hangi test çalıştı. Kullanıcı ya da değil açtıysa, orada hem misafirler için bir çerez olması ve oturum açmış kullanıcılar, çünkü o, önemli değil. Bir oturumu varsa, o zaman bir çerez (sağlanan yapmanız gibi geliyor php kurulumu, var nasıl) olacak. Peki yerine çerez test, ben bir oturum değişkeni ayarlanmış olup olmadığını görmek için test edin. Kullanıcı başarıyla oturum açtığında bu kez değişken sadece kurulacaktır

if (loginSuccess ()) {$ _SESSION ['login'] = "true"; }

Bundan sonra, ben şimdi oturum değişken ayarlanmış olup olmadığını görmek için test ve uygun içerik görüntüleyebilirsiniz. Benim kullanıcı, uzak bu sayfalardan gezinmek gel, ve hala o oturum değişkeni hatırlayacaktır olabilir.

Ben bu olsa yapmanın daha iyi, güvenli bir yolu vardır eminim.

Kullanıcı günlükleri kez, oturum değişkeni çeşit ayarlayabilirsiniz yani

//user has successfully logged in
$_SESSION['logged_in'] = true;

Sonra, bir yere çok erken sayfa yük (kütüphaneler yüklenmeden önce) sen yapabilirsin:

@session_start();
if(!(isset($_SESSION['logged_in']) && $_SESSION['logged_in'] === true))
{
  //not a logged in user, show the cache!
  load_cache();  //or however this works
  exit();
}

Bir logout üzerinde, yaparım ya session_destroy() veya $_SESSION['logged_in'] = false;

Ben Geçerli yöntem sistemi yükleme içerir belirtildiği gibi, evet, veritabanı (sizin oturumları veritabanı kullanmak varsayarak), ve nihayet sadece önbellekli içeriği göstermek için gidiyoruz eğer bir atık oturumu başlıyor.

Belki oturum tanımlama ek olarak bir "logged_out" denilen cookie (veya "logged_in") ayarlayabilirsiniz. Sonra oturumu ve veritabanı yüklemek için gerek kalmadan her sayfada yükü "logged_out" cookie için test edebilir?

Sen botlara ve diğer non-cookie kullanıcı arayüzleri olurdu çünkü aslında bunu oturum bir "logged_in" çerez oluşturmak için daha iyi olacağını ve daha sonra başka bir yerde bir konuk için bir işareti olarak yanlış / varolmayan çerezi.