【问题标题】:pass hidden variable via header with php使用 php 通过 header 传递隐藏变量
【发布时间】:2011-05-31 10:57:34
【问题描述】:

你知道我可以像这样操作 php 中的标头:

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

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

所以出现了三个问题:

  1. 我可以更改添加一个字段说:additional-content-information 并将其设置为Hello world,否则会失败?
  2. 或者我可以改变,即 content-description 到想要的 像hello World这样的值?
  3. 如何获取所有这些信息 我用header() 设置的 目标页面的功能?

到目前为止,我尝试更改值并添加一些值。但我没有收到任何错误。但只要我无法访问当前的标头信息,我就看不到它是否失败。

我当前的代码示例:

$var2pass = $_GET['var'];

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

重定向有效,我得到一个显示的网站...

更新

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

【问题讨论】:

  • 如果您想对用户隐藏某些内容 - 不要将其发送到他们的浏览器
  • 为什么不直接使用 $_REQUEST[];并通过例如 URL 发送; ..index.php?msg="Hello+World"

标签: php http-headers parameter-passing


【解决方案1】:

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

话虽如此,请记住 Cookie 并不安全,也就是说,尽管大多数用户不会看到它们,但它们绝对不能防止用户读取和/或写入它们。如果您需要用户无法访问的安全变量,请考虑使用会话 - session_start()$_SESSION

【讨论】:

  • 但请记住,它们有一些限制——数据大小,也可以被禁用。
  • 好吧 .. 我不能使用 cookie 和会话,因为信息取​​决于您来自的站点。并且用户可能在应该是同一个会话的地方打开了多个选项卡或窗口。为每个页面创建一个条目将导致传递我也不想要的标识符。我需要我友好的网址
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2012-04-19
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多