0

我有一个关于如何使正在查看任何页面的用户可以登录他们正在查看的页面并保留在该页面上的问题。这将如何实现?

下面是我目前正在使用的一行,但是,如果在任何页面上并且用户登录,他们将被重定向到他们的个人资料。如何在用户登录的位置设置此行,并保留在他们正在查看的同一页面上?所以换句话说,不会被重定向到他们的个人资料......

PHP:

header("Location: members.php?id=" . $_SESSION['username']);

如果需要更多信息,请告诉我,我可以进行编辑;)

4

3 回答 3

2

让登录表单提交当前页面的地址。然后您可以在登录成功时简单地重定向回该地址,例如

<form>
   <input type="hidden" name="curpage" value="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>" />
   <input type="text" name="username" />
   <input type="password" name="password" />
   <input type="submit" />
</form>

if ($login_is_successful) {
   header("Location: {$_POST['curpage']}");
}

您可以尝试使用引荐来源网址,但由于并非所有浏览器都发送它,并且并不总是准确的,因此您最好使用替代的“当前位置”跟踪方式,例如上面的隐藏表单字段。

于 2013-09-20T16:05:07.310 回答
1

当他们单击登录按钮时,您可以读取 url 并将其保存到变量并将它们重定向到此 url。

所以而不是

header("Location: members.php?id=" . $_SESSION['username']);

你可以使用某事。喜欢:

 header("Location: $last_page);
于 2013-09-20T16:05:46.140 回答
0

试试这个,你可以用这个代码创建一个 php 文件,并像这个 session.php 一样包含在你的代码中

<?php
session_start();
error_reporting(0);
if(isset($_SESSION["usuario"]))
{
$usuario = $_SESSION["usuario"];
else{
header('Location: members.php?id=" . $_SESSION['username']');
}
?>

索引.php

<?php
include ('session.php'); 
?>

避免在每个页面中使用相同的代码

于 2013-09-20T16:05:52.803 回答