登录后重定向到请求的最后一页
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了登录后重定向到请求的最后一页相关的知识,希望对你有一定的参考价值。
我的登录系统需要帮助。在我的项目中,当用户登录时,他们只需转到他们的帐户。如果他们正在浏览某些页面并要求登录,那么他们应该在登录后重定向到该页面而不是他们的个人资料页面。
这是我正在尝试的代码,但用户总是被重定向到student_account.php而不是请求的页面。
$fetch = mysql_fetch_assoc($exec);
$_SESSION['login'] = $fetch[uniq];
$_SESSION['emailid'] = $fetch['email'];
$emailid = $_SESSION['emailid'];
$_SESSION['type'] = 'student';
if(isset($_SESSION['url']))
$url = $_SESSION['url']; // holds url for last page visited.
else
$url = "student_account.php"; // default page for
header("Location:$url");
答案
我想你应该在这里尝试HTTP_REFERER重定向上次访问的页面。为此设置登录表单中的隐藏字段。
html: -
<input type="hidden" name="redirurl" value="<? echo $_SERVER['HTTP_REFERER']; ?>" />
并在表格中获得redirurl
值。
PHP: -
if(isset($_REQUEST['redirurl']))
$url = $_REQUEST['redirurl']; // holds url for last page visited.
else
$url = "student_account.php"; // default page for
header("Location:$url");
或者如果您正在使用会话,请确保您在该页面上启动会话session_start()。否则会话将中断,无法保存您想要的URL。
另一答案
您可以将此代码粘贴到您网站上的所有网页中:
<?php
session_start();
$_SESSION['url'] = $_SERVER['REQUEST_URI'];
然后,对于登录页面,您可以:
<?php
session_start(); // needed for sessions.
if(isset($_SESSION['url']))
$url = $_SESSION['url']; // holds url for last page visited.
else
$url = "student_account.php";
header("Location: http://example.com/$url");
另一答案
而不是代码:
if(isset($_SESSION['url']))
$url = $_SESSION['url']; // holds url for last page visited.
else
$url = "student_account.php"; // default page for
header("Location:$url");
使用以下代码:
$url = '';
if(isset($_SESSION['url']))
$url = $_SESSION['url']; // holds url for last page visited.
else
$url = "student_account.php"; // default page for
header("Location:".$url);
另一答案
确保您在第二个花括号后放置'重新加载'页面信息。这是一个例子
<?php
ob_start();
if(isset($_POST['submit'])){
$to= " email address";
$email = $_POST["email"];
$subject=$_POST["subject"];
$txt =$_POST["message"];
$email = $_POST["email"];
$headers= "From: {$email}" . "
".
"CC:email address";
mail($to,$subject,$txt,$headers);
}
header("Location: http://example.com/$url");
?>
另一答案
// check if session is expired
if (session_status() != PHP_SESSION_ACTIVE) {
// redirect to the login page
header("Location: yourLogin.php?redirect=" . urlencode($_SERVER['REQUEST_URI']));
exit();
}
// after successful login into yourLogin.php redirect
if(!($redirect = urldecode($_GET['redirect']))) {
// set default URI if don’t have to redirect
$redirect = 'yourDefault.php';
}
header("Location: $redirect");
exit();
以上是关于登录后重定向到请求的最后一页的主要内容,如果未能解决你的问题,请参考以下文章