2016-04-06 20 views
1

SessionManager'u nasıl kullanacağımı anlamıyorum. Oturum açmayı doğrulamak için bu sınıfı kullanıyorum, böylece kullanıcı formu görüntülenmeyecek çünkü Oturumları kendi başıma nasıl kullanacağımı henüz anlamadım. Önceden yapılmış bir sınıfın öğrenmem için bana yardımcı olacağını düşündüm. Girişle ilgili bilgiler kullanıcı girişlerini haha ​​... Ben SessionManager kullanmaya çalışıyorum, nasıl çalışır değil sayfasına gidin her zaman girmek zorunda kalacaktı ŞuOturum açma ve önceden oluşturulmuş oturum açma SessionManager sınıfı

$user = new User($pdo); 
$user->getByUserName($_SERVER['username']); 
$user->logon($_SERVER['password']); 

if ($user->is_logged_on) 
{ 
    //... Do logged in user stuff 
} 
else 
    header('Location: /?error=Login%20Error%2E%20Please%20re%2Denter%20your%login%20information%2E'); 

: Şu anda bu var Bu kullanıcı girişini korumak için, ama nasıl olduğunu gerçekten anlamıyorum.

Her sayfa ile bir oturum başlatmaya başlarım mı? SessionManager sınıfının, oturumları kontrol etmekle bir ilgisi var mı? ya da sadece onları başlatmak için mi? Hala Kullanıcı Kimlik Doğrulaması ve PHP Oturumlarını nasıl kullanacağımı öğreniyorum, bu yüzden ben de yeniyim.

Ben mevcut oturumları kontrol etmek için bir yöntem eklemek gerekir mi:

if (!isset($_SERVER['loginsubmit'])) 
{ 
    $user = new User($pdo); 
    $user->getByUserName($_SERVER['username']); 
    if ($user->logon($_SERVER['password'])) 
     SessionManager::sessionStart('mySessionName'); 
} 
if (!SessionManager::checkSession()) 
{ 
    //...display login form 
} 
else 
{ 
    //...display logged in user stuff 
} 

belki bunu aşırı düşünüyorum ... son derece karıştı ... ya da belki bu iyi değildi oturumların nasıl kullanılacağı örneği.

DÜZENLEME: Bilginize, gerçekten yöntemi kodlama konusunda sormuyorum, ben sadece oturumları kullanıcı kimlik doğrulaması için nasıl kullanıldığına anlayamıyorum, bir oturum oluşturmak ve var olup olmadıklarını biliyorum bu yüzden önceden oluşturulmuş bir örnekten denemeyi ve öğrenmeyi seçtim. PHP günlüğünü, oturumları gerçekte nasıl kodlayacağımı tüm gün boyunca okuyabiliyorum.

+0

Bir tane yok, ne soruyorum * bir tane eklemem gerekiyor *. Veya oturumun basit varlığı, bağlanılan sınıfın geçerli doğası göz önünde bulundurulduğunda, kullanıcı oturum açtıktan sonra kullanıcı oturumunu gösterir mi? – Dexter

cevap

1

basit yolu:

// sayfalarında:

session_start(); 

if(!isset($_SESSION['isLogin']) && $_SESSION['isLogin'] != true){ 
    // redirect to login page 
} else { 

    // redirect to login page and 
    // set $_SESSION['isLogin'] = true when login verify 

} 

PS. Aynı soruya başvurduğunuz kitaplık ile devam edin, güvenli oturumu başlatmak ve oturumu doğrulamak için kütüphane işlevini kullanın.

+0

Oturumun oturum açıp açmamasına bağlı olarak oturum açılmalı, daha sonra oturum açma değişkenleri (kullanıcı adı vb.) Gerçek oturum açıldıktan sonra eklenir ve kütüphanem oturum güvenliği sağlamak için sadece oradadır. Eğer bu hak varsa, her bir kullanıcı etkileşiminin başlangıcında 'SessionManager :: sessionStart ('mySessionName') 'i çalıştırmalı ve' $ _SESSION [' kullanıcı adı '] 'nı ayrı ayrı ayarlamalı/kontrol etmeliyim? Daha sonra çıkış yapmak için '$ _SESSION ['username']' i siliyorum. – Dexter

+0

ayrıca, her iki koşulun da giriş komut dosyasına işaret etmesini mi kastediyorsunuz? Yoksa bu bir yazım hatası mıydı? – Dexter

+0

@Dexter Gecikme yanıtı için özür dilerim. Şimdiye kadar bir çözümünüz var. >> İlk görüşünüz için gözleminiz gerçekten doğrudur. >> İkinci yorumda, oturumun mevcut olup olmadığını ve diğerinin uygun değere sahip olup olmadığını kontrol ettiği durum aynıdır. –