【问题标题】:Refresh with POST data使用 POST 数据刷新
【发布时间】:2014-10-19 07:16:31
【问题描述】:

我正在使用以下php

header("Refresh: 0;url=thankyou.htm");

我想在刷新时添加一个隐藏变量,所以我必须添加类似.....

<input type=hidden name='varname' value="<?php echo $variable;?>">

如何将隐藏变量发布到刷新页面?

这些如何结合?

谢谢

【问题讨论】:

    标签: php post refresh hidden-field


    【解决方案1】:

    我不知道它是否足够机密,但您可以加密变量并作为$_GET 发送:

    header("Refresh: 0;url=thankyou.htm?varname=".base64_encode($_POST['varname']));
    

    thankyou.htm 页面上,您必须base64_decode() 才能取回值。

    正如 @Riad 建议的那样,使用 session 将在幕后为“最秘密”工作。

    【讨论】:

    • 没有任何类型的 URL 变量将起作用,因为我正在尝试确定用户是通过书签/收藏夹返回还是通过 JavaScript 弹出窗口返回。任何 URL 变量都将通过书签/收藏夹进行维护
    • 啊,要在header() 上保留一个页面变量,必须通过$_GET 或会话变量传递,或者您必须通过include() 感谢页面而不是重定向到它。
    【解决方案2】:

    使用会话变量而不是隐藏字段。

    session_start();
    
    $_SESSION['var'] = $variable ; 
    
    header("Refresh: 0;url=thankyou.htm");
    

    在thank_you页面中获取要检索的变量...

    编辑:如果需要,使用 session_destroy() 销毁会话;

    【讨论】:

    • 我不知道会话变量何时被清除或过期。我不希望该用户稍后回来并让该会话变量仍然有效。我正在尝试找到一种方法来确定一个人是否通过书签或收藏夹回来,或者他们是否使用了 javascript 弹出窗口,因为页面需要表现不同
    • 您需要将变量传递给感谢页面。 (可以使用$_GET/$_POST antthing)你是如何从php 中获取“$variable”的...?
    • 我刚刚弄清楚如何销毁会话,它似乎可以工作。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多