PHP登陆后跳转到登陆前页面实现思路及代码
程序员文章站
2023-12-11 13:52:46
最近手上一个小项目让我接触到php编程,简单的登陆功能已经ok。可是在实际使用的时候发现一个问题:用户a发送一个链接给用户b,b打开时页面提示登陆,可是登陆成功后,却跳转到...
最近手上一个小项目让我接触到php编程,简单的登陆功能已经ok。可是在实际使用的时候发现一个问题:用户a发送一个链接给用户b,b打开时页面提示登陆,可是登陆成功后,却跳转到了首页,而并不是a发送的链接。为了有更好的用户体验,b登陆成功后应该自动跳转到登陆前的链接。查了php帮助手册,利用$_server全局变量可以实现这个功能。
$_server是php的一个超全局变量,关于$_server变量的详细解释可以参考:http://www.php.net/manual/zh/reserved.variables.server.php
具体实现方法为:在提示用户登录的同时,在session或者cookie中记录下请求页面的url;登录验证成功后在跳转回该url。
checklogin.php
session_start();
if (!isset ($_session['login_ok']))
{
echo "<script language=javascript>alert ('要访问的页面需要先登录。');</script>";
$_session['userurl'] = $_server['request_uri'];
echo '<script language=javascript>window.location.href="login.php"</script>';
}
login.php
session_start();
//此处省略了账号密码验证代码,验证ok再执行下面代码
if (isset ($_session['userurl']))
{
//会话中有要跳转的页面
$url = $_session['userurl'];
}
else
{
//没有要跳转的页面,则转到首页
$url = "home.php";
}
//0.5s后跳转
echo "<meta http-equiv=\"refresh\" content=\"0.5;url=$url\">";
$_server是php的一个超全局变量,关于$_server变量的详细解释可以参考:http://www.php.net/manual/zh/reserved.variables.server.php
具体实现方法为:在提示用户登录的同时,在session或者cookie中记录下请求页面的url;登录验证成功后在跳转回该url。
checklogin.php
复制代码 代码如下:
session_start();
if (!isset ($_session['login_ok']))
{
echo "<script language=javascript>alert ('要访问的页面需要先登录。');</script>";
$_session['userurl'] = $_server['request_uri'];
echo '<script language=javascript>window.location.href="login.php"</script>';
}
login.php
复制代码 代码如下:
session_start();
//此处省略了账号密码验证代码,验证ok再执行下面代码
if (isset ($_session['userurl']))
{
//会话中有要跳转的页面
$url = $_session['userurl'];
}
else
{
//没有要跳转的页面,则转到首页
$url = "home.php";
}
//0.5s后跳转
echo "<meta http-equiv=\"refresh\" content=\"0.5;url=$url\">";