用php通过标头传递隐藏变量

时间:2011-05-31 10:57:35

标签: php http-headers parameter-passing

你知道我可以像这样操纵php中的标题:

header("Content-Type: ..."); 
header('Content-Description: ...'); 

我想用它来发送一个为用户隐藏的变量。

发生了三个问题:

  1. 我可以更改添加字段说:additional-content-information 并将其设置为Hello world还是会失败?
  2. 或者我可以改变即 content-description到期望的 价值如hello World
  3. 我如何获得所有这些信息 我用header()设置的 功能在目标页面?
  4. 到目前为止,我尝试更改值,并添加一些。但我没有得到任何错误。但只要我无法访问当前的标题信息,我就无法看到它是否失败。

    我当前代码的一个例子:

    $var2pass = $_GET['var'];
    
    header( "refresh:2;url=target.php", false );
    header('Content-Description: '.$var2pass);
    header('Additional-Content-Information: '.$var2pass);    
    

    重定向有效,我显示了一个网站......

    更新

    嗯..我不能使用cookie和会话,因为信息取​​决于你来自的网站。并且用户可能打开了多个选项卡或窗口,它们应该是同一个会话。为每个页面创建一个条目将导致传递我也不想要的标识符。我需要一个友好的网址

2 个答案:

答案 0 :(得分:2)

您可以使用Cookie。使用setcookie()在服务器上设置cookie(必须在打印/回显任何内容之前完成),$_COOKIE用于在服务器上读取它们,document.cookie用于在浏览器中读取和写入它们(javascript)。 Cookie就像“变量”,通常对用户是不可见的,并且可以在请求之间访问,即,您可以在一个页面请求中设置它并在另一个页面请求中读取。

话虽如此,请记住,cookie不是安全的,即尽管大多数用户都看不到它们,但它们绝不能保证用户不会阅读和/或写入它们。如果您需要用户无法访问的安全变量,请考虑使用会话 - session_start()$_SESSION

答案 1 :(得分:1)

您可以通过这种方式发送它们,但是浏览器无法读取它们。 但是您可以将它们作为生成页面的HTML中的一些json对象发送。 只需更仔细地指定“为用户隐藏的内容”。