PHP登陆后跳转到登陆前页面实现思路及代码

我自己写了一个方法 如下 

$_SERVER['HTTP_REFERER']

 可以查看上个页面传递过来的参数

<?php
header('content-type:text/html;charset=utf-8');
include_once './lib/fun.php';
judgeVx();
if (checkLogin()) {
    msg(1, '您已登录', 'index.php');
}
//表单进行了提交处理
$gourl = 'index.php';
if (empty($_POST['username']) && strstr($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST'])) {
    $gourl = str_replace(getProtocol() . $_SERVER['HTTP_HOST'], "", $_SERVER['HTTP_REFERER']);
}

if (!empty($_POST['username']) && !empty($_POST['password'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];
    $res = login($username, $password);

    if ($res == "登录成功") {
//        如果传递过来的域名 包含我们的域名 那么就替换掉 并且跳转
        header("Location:" . $_POST['gourl']);
    } else {
        msg(2, $res);

    }
}
?>

在登录的表单上多提交一个参数

 <input type="hidden" name="gourl" value="<?php echo $gourl ?>">
            <button style="submit" class="login_btn">登 录</button>
function getProtocol()
{
    //主动判断是否HTTPS
    if (is_https()) {
        return "https://";
    } else {
        return "http://";
    }
}
function is_https()
{
    if (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off') {
        return true;
    } elseif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
        return true;
    } elseif (!empty($_SERVER['HTTP_FRONT_END_HTTPS']) && strtolower($_SERVER['HTTP_FRONT_END_HTTPS']) !== 'off') {
        return true;
    }
    return false;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安果移不动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值