Arama

PHP ile Multisession (Çoklu Oturum) Yönetimi ve Kullanıcı Simüle Etme

  • Paylaş:
post-title

Bazı projelerde bir kullanıcı için bir tek session yetmeyebilir. Birden fazla session'a ihtiyaç duyabilirz. Özellikle de büyük projelerde yönetici ekranlarında bunu kullanmamız gerekebilir.

İsterseniz bunu şöyle bir senaryo ile detaylandıralım;

Düşünün ki siz bir sistemde yönetici yetkisindesiniz. Bir personeliniz herhangi bir sayfada hata aldığını söylüyor. Siz o sayfaya kendi yetkinizle girdiğiniz de herhangi bir hata görmüyorsunuz. Ozaman personelinizin gözünden o sayfayı görmeniz gerekiyor. Tabiki burda personelinizin kullanıcı adı ve şifresini almanız pek de mantıklı bir fikir olmaz. Peki bunu nasıl yapacağız ? 

Multi Session Nedir ? 

Arkadaşlar multi session yani çoklu oturum dediğimiz şey, bir kullanıcının session'ına atadığınız verileri silmeden başka bir kullanıcınında verilerini eklemenizdir. Yani bir session değişkeninde birden fazla aynı isimde veri tutmaktır. 

Kafanız karışmasın hemen koda geçelim olayı çözelim. 

Öncelikle aşağıdaki koddan önce veritabanı kontrollerimizi yaptığımız, kullanıcı adı ve şifrenin doğru olduğunu varsayarak ilerliyorum. Şimdi bir session oluşturalım;

session_start();

$_SESSION['login'] = 'true';

$_SESSION['username'] = 'yusuf123';

$_SESSION['nameSurname'] = 'M. Yusuf TAŞKESENLİGİL';

$_SESSION['auth'] = 'yonetici';

Şimdi bu bizim kendi kullanıcı bilgilerimiz. Peki biz şimdi Ali VELİ adındaki bir kullanıcımızın hesabına girmemiz gerekiyor. Bunu nasıl yapacaz ? 

Burada tabiki ikinci bir sayfaya ihityacımız var. Bu sayfada biz, halihazırda bir session'ın var olup olmadığını kontrol edeceğiz. Eğer hali hazırda bri session varsa yeni kullanıcımızın bilgilerini alacağız. Daha sonra kendi sesssion bilgilerimizi sessionda preUser adında bir değişkene atayacağız.

if($_SESSION['login']){

//halihazırda bir session varsa buraya girecek

/*

Bu kod bloğunda veritabanından simüle edeceğimiz kullanıcının (Ali VELİ'nin) bilgilerini alacağız

*/

$preUser = {

'username' => $_SESSION['username'],

'nameSurname' => $_SESSION['nameSurname'],

'auth' => $_SESSION['auth'],

} 

$_SESSION['preUser'] = $preUser;

$_SESSION['username'] = 'aliveli';

$_SESSION['namesurname'] = 'Ali VELİ';

$_SESSION['auth'] = 'personel';

/*

Burada artık bizim index sayfamıza yönlendiriyoruz. 

*/

}

Şimdi bu aşamadan sonra kişi index sayfasına tekrar yönlendirildiğinde artık Ali VELİ kullanıcısının bilgilerine göre sayfa görüntülenecektir. 

Peki biz tekrar kendi kullanıcı hesabımıza nasıl geçeceğiz ? 

Bu işlem için de ayrı bir sayfa yapmamız gerekecektir. Bu sayfada ki işlemler de şöyle olacak; Öncelikle sayfa kontrollerinde session içerisinde preUser değişkeni varmı bunu kontrol edeceğiz. Varsa işlemlere devam edecez yoksa birşey yapmayacaz. Yapacağımız işlemler kabaca şöyle, 

if($_SESSION['preUser']){

$mainUser = $_SESSION['preUser'];

$_SESSION['username'] = $mainUser['username'];

$_SESSION['namesurname'] = $mainUser['namesurname'];

$_SESSION['auth'] = $mainUser['auth'];

$_SESSION['preUser'] = null; // Bu null değer atamasını yapıyoruz ki index sayfasına gittiğimizde asıl kullanıcı olduğumuz belli olsun.

}

/*

Burada artık bizim index sayfamıza yönlendiriyoruz. 

*/

Bu konunun detaylı anlatım videosunu aşağıdan izleyebilirsiniz.

Herkese iyi kodlamalar.

Bir yorum bırak