【问题标题】:Refering a page that called a particular page引用调用特定页面的页面
【发布时间】:2012-04-08 11:26:08
【问题描述】:

我有一个包含三个链接的索引页面,如下所示。当我单击第一个链接(下例中的 pageType1)时,将运行 pageType1.php,首先检查用户是否通过 cookie 登录。如果不是,则将用户重定向到登录页面。当用户在登录页面上正确提交登录名和密码信息时,我想在 pageType1.php 上显示信息

文件:index.php

<a href="pageType1.php" target="_blank">PageType1</a>
<a href="pageType2.php" target="_blank">PageType2</a>
<a href="pageType3.php" target="_blank">PageType3</a>

文件:pageType1.php

<?php
include"auth/auth_check_header.php"; 
print("pageType1 contents");
?>

文件:pageType2.php

<?php
include"auth/auth_check_header.php"; 
print("pageType2 contents");
?>

文件:pageType3.php

<?php
include"auth/auth_check_header.php"; 
print("pageType3 contents");
?>

文件:auth/auth_check_header.php

$successful_login_url = ??????   //How to track this value. 

if (!cookie_enabled)
    {
    //login page
    header("location:$successful_login_url");
    }

我的问题是如何在 auth/auth_check_header.php 中跟踪“$successful_login_url”的值(或者我应该把这个变量的值作为什么)

注意:我尝试将 $_SESSION["referer"] 作为 "$successful_login_url" 的值,但它在成功登录后显示 index.php。 在此先感谢

【问题讨论】:

    标签: php mysql authentication login referer


    【解决方案1】:

    您可以将页面 url 作为 GET 变量(查询字符串)传递并基于此重定向,或者如果您想获取包含所在的页面,您可以使用 'PHP_SELF' 并将其存储在变量中并使用它重定向回来:

    $_SERVER['PHP_SELF']
    

    http://php.net/manual/pt_BR/reserved.variables.server.php

    【讨论】:

    • 我尝试将 $_SESSION["HTTP_REFERER"] 作为 "$successful_login_url" 的值,但登录成功后显示 index.php。
    • 算了吧,拜托。它将从请求 url 的页面中提供 url。我已经用解决方案编辑了我的答案。
    • 不知何故它对我没有帮助,它开始给我错误的用户名和密码。
    • 在这种情况下,使用我上面描述的查询字符串方法和 Keyene 在他的回答中详细说明。
    【解决方案2】:

    1) 用户尝试访问 pageType1.php

    2) 用户被重定向到 login.php,其中包含一个带有隐藏字段的表单:

    <input type="hidden" name="redirectTo" value="<?php echo $_SESSION["HTTP_REFERER"]?>" />
    

    3) 用户输入登录名并成功验证:

    $redirectTo = $_POST['redirectTo']

    4) 如果$redirectTo不为空,则重定向,否则重定向到默认页面

    【讨论】:

    • 感谢 Keyne,这种方法在某种程度上对我有用,但非常有帮助,并为如何处理这个问题提供了线索。
    • @learner 不客气。如果您发布更详细的代码(而不是 sn-ps),我可以向您展示如何正确应用它。你检查cookie时的代码很奇怪,你先检查cookie是否没有设置,如果没有,你重定向到成功页面? header("location:$successful_login_url");
    猜你喜欢
    • 2011-12-04
    • 2018-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    相关资源
    最近更新 更多