yine aynı sayfayı ziyaret ettiğinizde kullanıcı giriş tutmak?

4 Cevap php

Şu anda kullanıcı oturum oturumu kullanarak im. i tarayıcıyı kapatmak ve açmak ama ne zaman tekrar tekrar oturum açmanız gerekir. nasıl giriş yapmanız kullanıcı 2 hafta Diyelim keeo yok.

daha sonra kurabiye geçer?

4 Cevap

Evet. Sen "otomatik oturum açma" (veya "beni hatırla") işlevi uygulamak için çerezleri kullanabiliriz.

Bu google search veya SO search results, bir doğru yönü işaret etmelidir.

Yani "beni bu bilgisayarda hatırla" seçeneğini istiyorsun? İşte bunu nasıl bir dil agnostik yolu:

  1. En az cookie_id ve user_id sütunlu bir DB tablo oluşturun. Gerektiğinde ayrıca bir cookie_ttl ekleyin ve ip_lock. Sütun isimleri kendisi için konuşur sanırım.
  2. İlk kez oturum açma (sadece gerekirse seçenek işaretli "Beni hatırla"), cookie_id temsil uzun, benzersiz, zor tahmin anahtarı oluşturmak ve birlikte DB bu depolamak user_id. Ayrıca daha önce belirtilen çerez adla bir çerez çerez değeri olarak bu saklayın. Örneğin remember. Cookie uzun ömür, örn ver bir yıl.
  3. , Sonra da cookie_id çerez adı remember ile ilişkili çerez değerini kontrol değilse kullanıcı oturum ise her istek, kontrol edin. Orada olduğunu ve DB göre geçerli ise, o automagically user_id ile ilişkili kullanıcı giriş ve yine çerez yaşını ertelemek.

Anahtar ve uzun (en az 30 karma karakter) yeterince karışık ise güvenlik risklerine gelince, o kaba-zorlama oturum açma şansı yok denecek kadar azdır. Dahası size muhtemelen isteğe bağlı sütun ip_lock için kullanılacak ne olduğunu anlamış. Bu, kullanıcının IP adresini temsil etmelidir. "(Eğer statik IP var ise) bu IP Kilit açma" Sen sonuçta ekstra bir onay ekleyebilirsiniz sunucu ekstra bir doğrulama olarak kullanıcının IP adresini kullanabilirsiniz böylece.

Ve ne bir bir IP kilidi olmayan bir kullanıcı çerez değerini kaçırıldı olur? Peki, buna karşı yapılacak fazla bir şey yok. Onunla yaşamak. Her forumlar ve hesap-hijacks altında orada çok ki incitmez, ama ben kesinlikle yönetici panelleri ve sunucu tarafı şeyler kontrol sayfalarının bu tür için kullanmak olmaz için "beni hatırla" şey komik.

Tüm sonra oldukça yalındır bulunuyor. İyi şanslar.

Bu Oku: http://www.php.net/manual/en/session.configuration.php

İhtiyacınız ayarı session.cookie_lifetime. Tarayıcı kapatıldığında oturum çerezleri (bir ömür boyu yok örneğin olanlar) silinir. Eğer oturumları uzun süre hayatta kalmak istiyorsanız, o php.ini ayar, httpd.conf set, ya da .htaccess. Muhtemelen bile ini_set

Edit: Aslında bu işlevini kullanabilirsiniz:

session_set_cookie_params (86400*30);
session_start()

86400 * 30 30 gündür.

Buraya bakın: http://www.php.net/manual/en/function.session-set-cookie-params.php

Evet, bu yapmalıyım çerezleri kullanarak. Burada manuel giriş bulunuyor: http://php.net/manual/en/features.cookies.php

Alternatif olarak, bu işlevi de bir göz atabilirsiniz: http://php.net/manual/en/function.session-set-cookie-params.php. Bu, onun ömür gibi session cookie ayarlarını değiştirmenize olanak sağlar ...