标题 - 通过PHP将变量转发到没有$ _GET的页面

时间:2012-02-13 16:39:23

标签: php

我有一个页面A有这个代码片段

if (!var) {
  header("Location: ".URL, true, 301);
  exit();
}

if (!var2) {
  header("Location: ". $url2, true, 301);
  exit();
}

我想在URL / $ url2和A之间创建一个页面,我称之为B。

如何在不让用户看到的情况下更改A以给B提供URL / $ url2的内容?我可以使用像

这样的东西
Location: mypage.php?url=$url2

但是用户可以改变我不想要的东西。如果你推荐$ _POST你会怎么做?如果没有,你会做什么?

我把它改成了

session_start();
if (!var) {
  //header("Location: ".URL, true, 301);
  $data = URL;
  $_SESSION['keks'] = $data;
  require("transition.php");
  exit();
}

transition.php:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
   "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>Frameset</title>
</head>
<frameset rows="50%,50%">
  <frame src="above.php" name="Navigation">
  <frame src="http://www.domain.com" name="Daten">
  <noframes>
    <body>
      <p>Something</p>
    </body>
  </noframes>
</frameset>
</html>

above.php:

<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
    <title>
    </title>
  </head>
  <body>
    <div style="text-align: right;"><a href="<?php echo $_SESSION['keks']; ?>">Continue</a> 
    </div>
  </body>
</html>

导致

<a href="">

1 个答案:

答案 0 :(得分:4)

使用会话cookie。

在包含信息的页面上,您可以将文本等保存到会话var中,如下所示:

$data = 'hello';
$_SESSION['xxx'] = $data;

然后在下一页上回复:

echo $_SESSION['xxx'];
// Hello

不要忘记在使用会话之前需要运行session_start();