CodeIgniter: Dinamik post-giriş yönlendirme?

3 Cevap php

Ben sitenin herhangi erişebilirsiniz önce bir giriş gerektiren temel bir CodeIgniter site inşa ediyorum.

: Bir kullanıcı, bazı site url, böyle bir şey ziyaret ederse

http://www.mysite.com/project/detail/2049

VE onlar açmış, ben otomatik oturum açma sayfasına onları tekme güncel belirledik edilir.

Onlar giriş sonra, benim soru, onlar web ana sayfasına yönlendirmek yerine diyelim ki, yazdığınız özgün URL'ye onları yönlendirmek için en iyi yolu nedir nedir?

Ben Siz ne düşünüyorsunuz ... belki, dinamik giriş formu gizli bir form elemanı olarak bir URL oluşturabilirsiniz ve başarılı bir giriş üzerine oraya yönlendirmek düşünüyordum? Dinamik post-giriş yönlendirmesi bu tür için daha iyi / en iyi uygulama var mı?

3 Cevap

Onlar kısıtlı sayfa rekor uri vurdu ve ile oturum veri olarak ayarlandığında

this->session->set_userdata('redirect', 'page/uri/here');

Daha sonra giriş / kayıt onları yönlendirebilirsiniz

'yönlendirme' ile mevcut olup olmadığını gördükleri için kontrol giriş yaptıktan sonra

if($this->session->userdata('redirect'))
{
    redirect($this->session->userdata('redirect'));
}

Normalde bir girişten sonra onları nereye götürürse götürsün o zaman onları kabul etmezse

erişim girişimi ele zaman:

redirect('/public/login/r'.$this->uri->uri_string());

böylece durumda, yönlendirmelerden sonra url bu gibi görünebilir:

http://www.example.com/public/login/r/project/detail/2049

Oturum açma işlemi başarılı olursa

$uri = $this->uri->uri_string();
$redirect = substr($uri, strpos($uri, '/r/')+2);
redirect($redirect);

orijinal kaynağa yönlendirir.

(and no, the +2 should not be +3)

Neden giriş üzerine bir oturum değeri oluşturun ve sonra sabitlemek için gerekli her sayfada bunu doğrulamak Yüklü?

Bir kütüphane içine inşa, böylece aşağıdaki çağırabilirsiniz:

$this->mylibrary->login($user);

ve

$this->mylibrary->is_logged_in($user); on top of each page veautomatically redirect visitors to your main site.