如何创建具有自动重定向的登录页面?

时间:2017-10-17 00:12:08

标签: javascript php html html5 redirect

例如:

当我输入gmail.com时,它会将我重定向到以下链接

https://accounts.google.com/signin/v2/identifier?service=mail&passive=true&rm=false&continue=https%3A%2F%2Fmail.google.com%2Fmail%2F&ss=1&scc=1&ltmpl=default&ltmplcache=2&emr=1&osid=1&flowName=GlifWebSignIn&flowEntry=ServiceLogin

然后,当我完成登录后,它会将我重定向到以下链接

https://mail.google.com/mail/u/0/#inbox

我的问题是如何在我的网站上执行此操作。我在用户需要登录的任何页面上都有以下内容。

 session_start();
 require_once 'dbconnect.php';

 // if session is not set this will redirect to login page
 if( !isset($_SESSION['user']) ) {
  header("Location: index.php");
  exit;
 }

那么如何更改此代码以使登录页面在成功登录后知道重定向的位置?

我的登录页面上有以下内容。

ob_start();
 session_start();
 require_once 'dbconnect.php';

 // it will never let you open index(login) page if session is set
 if ( isset($_SESSION['user'])!="" ) {
  header("Location: home.php");
  exit;
 }

如何更改此选项以重定向到该页面?

2 个答案:

答案 0 :(得分:1)

第一步让GET url成为当前页面

$actual_link = (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

如果您使用了链接,请确保链接

echo '<a href="login.php?q='.$actual_link.'">Login</a>';

将文件login.php设为check login

session_start();
require_once 'dbconnect.php';

$gotopage = $GET_["q"];

if(!isset($_SESSION['user'])) //Check if error or not isset login and redirects to index.php
{
    header("Location: index.php");
}
else if(isset($_SESSION['user'])) //Check if success login and redirects to home.php
{
    header("Location:".$gotopage);
}

答案 1 :(得分:0)

我发现使用cookies更容易。我在发送到登录页面之前创建了一个带有用户地址的cookie,然后在登录页面完成后将其重定向回来。