2

我有一个真正的问题,它是语法问题。通常,当我需要重定向任何页面时,我只使用标题功能。有时我在需要时使用变量,如下所示:

if(condition) header("Location: home.php?wrong=1");

有时可能是:

if(condition) header("Location: home.php?wrong=1&&success=2");

直接使用变量没有问题(错误或成功)。当我需要通过 post 方法从 html 表单中重定向一个值时,我使用此代码并且它可以工作:

if (condition) header("Location: home.php?id=".$_POST['topic_id']);

但我需要更多,我也需要传递另一个值。所以我使用:

if (condition) header("Location: home.php?id=".$_POST['topic_id']&&wrong=1);

而这一次我变成了一个笨蛋。任何人都可以通过提供正确的语法来帮助我吗?我也只需要通过 WRONG=1 部分。

4

3 回答 3

5

你需要:

if (condition) header("Location: home.php?id=" . $_POST['topic_id'] . "&wrong=1");

或者

if (condition) header("Location: home.php?id={$_POST['topic_id']}&wrong=1");
于 2012-12-18T21:17:20.583 回答
1

有时可能是

if (condition) {
  $_SESSION['error']['topicId'] = $_POST['topic_id'];
  $_SESSION['error']['otherData'] = array('sadfasdfasdfasd' => 'adsfasdf');
  header("Location: home.php?wrong=1");
  exit;
}

进而:

//home.php
if (!empty($_SESSION['error'])) {
  $topicId = $_SESSION['error']['topicId'];
  //... do someth ...
}
于 2012-12-18T21:23:33.433 回答
0

如果 PHP 标头函数有任何问题,请记住,您可以在脚本 HTML 输出中打印出刷新元标记。

<meta http-equiv="refresh" content="0;url=http://yoursite.com/thepath/you/want/file.php?parames=anything">

这是关于元刷新标签的资源:

http://webdesign.about.com/od/metataglibraries/a/aa080300a.htm

于 2012-12-18T21:25:53.700 回答