0

我有一个页面,只允许用户在登录后访问该页面。说这个页面是

http://www.example.com/secret/data/important.php?id=23&pin=2if24scrtw2323

这是这样的场景:当用户在没有登录的情况下访问 URL 时,用户将被重定向到登录页面。我的登录页面网址:

http://www.example.com/login.php

成功登录后,用户将再次自动重定向到他/她尝试高级访问的页面(在这种情况下:> http://www.example.com/secret/data/important.php?id=23&pin= 2if24scrtw2323 ) 就像脸书一样。

背后有什么想法?谢谢

4

6 回答 6

2

您阅读了您来到登录页面的网址。它存储在 $_SERVER 中,除非我弄错了。(我建议print_r($_SERVER)您看看有什么可用的)或者,您将$_SERVER['REQUEST_URI']登录页面作为一个参数,就像header('login.php?came_from=' + $_SERVER['REQUEST_URI'])您将用户重定向到登录时一样。将其作为隐藏输入放入表单中。然后登录后,您仍然将该 url 作为脚本中的参数,因此您现在可以轻松地使用header ('yourpage.php') 再次重定向:)

于 2013-04-11T09:44:45.693 回答
1

一种选择是将重定向位置存储在某处。这可以在 url 或我的首选选项中完成:在隐藏字段中。

于 2013-04-11T09:43:17.653 回答
1

将页面的值存储在 cookie 中

$_COOKIE['visit'] = "http://www.example.com/secret/data/important.php?id=23&pin=2if24scrtw2323";
and then from login 
header('location: '.$_COOKIE['visit']);
于 2013-04-11T09:43:30.237 回答
1

首先,您需要使用 php GET 和 POST 或 REQUEST(如 $_GET['id'])检查 id 和 pin 值

成功登录后,您可以在会话中设置值,如 $_SESSION['id'] 并在 agin 上重定向用户或重新加载页面并检查会话值是否存在或 equel 以获取值

于 2013-04-11T09:44:34.583 回答
0

请查看 php 手册中的 header 方法,有一个重定向示例。

http://php.net/header

从那里复制和粘贴:

<?php
header("Location: http://www.example.com/"); /* Redirect browser */

/* Make sure that code below does not get executed when we redirect. */
exit;
?>
于 2013-04-11T09:41:45.207 回答
0

像这样的东西:

<?php

session_start();

if (!$_SESSION['logged_in']) {
    header('location: login.php');
    die;
}

//other code

?>
于 2013-04-11T09:42:16.950 回答