如何让用户在登录后保持在同一页面上

时间:2013-09-20 15:52:17

标签: php mysql pdo mysqli

我遇到的问题是,如何查看正在查看任何网页的用户可以登录他们正在查看的网页并将其保留在该网页上。这将如何实现?

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

PHP:

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

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

3 个答案:

答案 0 :(得分: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']}");
}

您可以尝试使用引用程序,但由于并非所有浏览器都发送,并且并不总是准确,您最好选择备用“当前位置”跟踪方式,例如上面隐藏的表单字段。

答案 1 :(得分:1)

当他们点击登录按钮时,您可以阅读该网址并将其保存到varibale并将其重定向到此网址。

所以而不是

header("Location: members.php?id=" . $_SESSION['username']);
你可以用某事。像:

 header("Location: $last_page);

答案 2 :(得分: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']');
}
?>

index.php

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

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

相关问题