Kimlik tamamlanana kadar URL'sini Hatırlamak

2 Cevap php

Nasıl doğrulamasından sonra kullanıcıya hizmet için php bir url hatırlıyorum. Fikir kullanıcı url istemek ancak doğrulanmamış süre olacaktır. Bu durumda, ben giriş sayfasına ona iletmek, ama ne ben bir kez doğrulanmış ona hizmet edebilir böylece url kaydetmek için iyi bir uygulamadır. Ben uygulama hakkında emin oturum değişkenleri kaydederek, ama düşündüm. Bunun için en iyi yöntemler var mı?

2 Cevap

Kullanıcı kimlik doğrulaması yapılmadan ProtectedPage.php gittiğinde (önceki sayfanın URL'sini ekli), bu otomatik olarak LoginView.php onları yönlendirmek gerekir. Daha sonra foruma giriş yapabilirsiniz ve LoginAction.php sayfa geri ProtectedPage.php onları yönlendirmek olacaktır

ProtectedPage.php

<?php
    if (!$authenticated) {
        header("Location: /LoginView.php?r=ProtectedPage.php");
    }
?>

LoginView.php

<form action="LoginAction.php" method="post">
<input type="hidden" id="r" value="<?php echo $_GET['r'] ?>" />
...
</form>

LoginAction.php

<?php
    ... Authenticate the user ...

    if (!empty($_POST['r'])) { header("Location: {$_POST['r']}"); }
    else { header("Location: /"); }
?>

Şeklinde gizli bir alanda koymak ya da bir oturum değişkeni kaydetmek.

Örnek

login.php? l = account.php (l giriş yaptıktan sonra gitmek için sayfa burada).

<form action="aksiyon / login.php" method="post">
<input type="hidden" value="<?php echo $_GET['l'] ? $_GET['l'] : 'index.php'; ?>" name="redirect" />
...
</form>

aksiyon / login.php

<?php

  ... do some checking here...

  if($loggedin){

    redirect($_POST['redirect']);
    // redirect() a wrapper function for header("Location: $url");

  }else{

    redirect('login.php?l='.$_POST['redirect']);
    // go back to login page

  }

?>