CodeIgniter, nasıl "form verilerini" temizlemek için

3 Cevap php

Ben soru başlığında doğru izah emin değilim, işte ayrıntılar bulunuyor:

Login denetleyicisi:

function authenticate() {
    if ( authorized ) {
        redirect('lobby');
    } else {
        redirect('login');
    }
}

Lobby denetleyicisi:

function index() {
    //load lobby view
}

Ne olur giriş sayfasında, ben kullanıcı / geçiş girin Giriş tıklatın, sonra da authenticate() denir ve Lobby beni yönlendirir olmasıdır.

Ancak ben Lobide yenileme süre tıkladığınızda, giriş formu tekrar teslim alır, bu yüzden yine "oturum" olsun. Bunu nasıl oluyor engellerim?

3 Cevap

Ne görüyorsanız başına CodeIgniter, ilgili değil tarayıcı davranıştır. Web tarayıcısı giriş formu POST verilerini depolayan ve kullanıcı Gönder düğmesini çarptığında formun eylem gider. Sunucudan yanıt bir yönlendirme olduğunu. Kullanıcı refresh düğmesine çarptığında nedenle, tarayıcı form eylemi bir yenileme değil, sunucudan yönlendirme yanıtı yok.

Siz geçici veya bunu önlemek için birkaç seçenek var. Akla gelen ilki kadar, sonra devam edin ve lobiye yönlendirirseniz kullanıcı zaten oturum olup olmadığını görmek için kimlik doğrulaması yönteminde bir onay koymaktır. Aksi takdirde, normal kullanıcı giriş bilgilerini kontrol edin.

Ayrıca, sadece lobi doğrudan gitmek ve lobisinin dizin stilini kimlik doğrulaması yapmak için giriş formunun eylemi değiştirmek olabilir. Kullanıcı oturum değilse, geriye giriş formuna oradan onları yönlendirebilirsiniz.

Siz kullanıcı giriş ya da değil, bu şekilde, bir oturum değişkeni dayalı yönlendirme ya da edemez ise yapı olarak doğrulamak için denetleyici kullanmanız gerekir.