Kullanıcı giriş olup olmadığını kontrol edin

5 Cevap php

Ben iş arama için PHP kullanarak bir web uygulaması yapıyorum.

Ben bir sorgu var; kullanıcı giriş ve düğme 'geçerli' tıklayarak tarafından verilen iş için uygulamak istediği olmadığı zaman, o giriş sayfasına yönlendirir. Tıklandığında kullanıcı is oturum açarsanız, o uygulama sayfasına direkt olarak almalısınız. Ben bunu uygulamak için nasıl emin değilim.

Ben PHP için yeni olduğum için kafam karıştı.

5 Cevap

Sorunuz çok muğlak - belki Authentication in PHP ile başlar

Eğer, kullanıcı oturum açtığında, o kullanıcıya bir $_Session değişkeni atar miyim? yani, kimlik doğrulama sonra, $_SESSION['user'] değişkeni ayarlayın.

$_SESSION['user']='admin';

Eğer kullanıcı zaten bundan sonra oturum olup olmadığını kontrol etmek istiyorsanız, sadece bu kullanın:

if(isset($_SESSION['user']))
{
  // user is login, direct to the job page
}

else
{
  // no login, go to the login page
}

Her sayfada sayfa onlar sadece vardı bir çerez veya oturumu ayarlayın:

$expire=time()+60*60*24*30;
setcookie("wherewasi","",time() - 1000);
setcookie("wherewasi",$_SERVER['REQUEST_URI'], $expire);

Sonra sonra giriş onları yönlendirmek:

$loc = ($_COOKIE['wherewasi'])?$_COOKIE['wherewasi']:'index.php';
header("location: ".$loc);
exit();

Siz "Giriş" adlı oturumunda bir değeri depolamak ve giriş edilmiştir varsa içeri Bu kullanıcı günlükleri de yeniden doğrudan kullanıcı için kullanılabilir zaman bu ayarlayabilirsiniz:

<?php

  // check that the session variable does exist
  // check that the user 'LoggedIn' has been set to 1 (true)
  if (!isset($_SESSION['LoggedIn']) && $_SESSION['LoggedIn'] != 1)
  {
       // redirect to login page for user to authenticate themselves.
       // pass page location (with parameters if necessary) to redirect
       // the user on successful login.
       header("Location: Login.php?redir=ApplyForJob.php?JobID=12345");
  }
  else
  {
       // user is logged in
       // redirect the user directly to the apply for job page.
       header("Location: ApplyForJob.php?JobID=12345");
  }

?>

Eğer onlar doğru sayfaya onları yönlendirerek, giriş yaptıktan sonra onlar sonra kaydedilir ve kontrol ettik ... endişelenmenize gereken iki şey vardır.

Bu tüm sayfa istekleri karşısında 'devlet tasarruf' ile ilgili. Bunu yapmak için, (çerezler aracılığıyla yapılan veya otomatik olarak sizin için PHP motoru tarafından ele olabilir) çerezleri veya daha yararlı oturumları kullanabilir gerekir.

Oturumlar muhtemelen gitmek için iyi bir yoldur. Oturumlarını kullanmak için, her sayfa bir ile başlamak gerekiyor

<?php session_start(); ?>

en azından, tarayıcıya yazar herhangi bir html kodu önce.

Bu işlem tamamlandıktan sonra saklamak için oturum değişkeni kullanabilirsiniz

<?php $_SESSION['user']='joe_blow'; ?>

(Check)

<?php
  if(isset($_SESSION['user']) && $_SESSION['user']!='' {
     // do something
  }
?>

Kullanıcı oturum olsun, onlar giriş yaptıktan sonra yönlendirilecek gereken hangi sayfa.

<?php header("location: ".$_SESSION['redirect_location']));

Ama insanlar bir veritabanında kimliklerini saklamak mı? (Eğer kullanıcı adınızı nasıl yapıyorsun ... kullanarak ne kimlik doğrulama yöntemi bilmeniz gerekir düşünüyorum bir daha kullanışlı kod yazmak için? Bir off-the-kullanıyorsunuz raf paketi var mı?)