帮助PHP和HTML表单(POST +重定向)

时间:2009-10-28 12:13:10

标签: php html

HI,

任何人都可以提供帮助

我需要在用户将表单提交到另一个页面后指导用户

我怎么能这样做?

<form enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

3 个答案:

答案 0 :(得分:1)

如果你想要POST + Redirect事物:

header('Location: ' . $nextUrl, true, 303);

会做到这一点。

示例代码

<!-- form.html -->
<form method="post" action="postHandler.php">
  <input type="text" name="someName" value=""/>
  <input type="submit" name="submitButton">
</form>

// postHandler.php
if (isset($_POST['submitButton'])) {
  // do something with the posted data

  header('Location: submitOk.html', true, 303);
} else {
  header('Location: form.html', true, 303);
}

<!-- submitOk.html -->
<h1>Ok</h1>
<p>
  Your information was received
</p>

答案 1 :(得分:0)

在表单的action =“”属性中指定页面(不要使用PHP_SELF)。

答案 2 :(得分:0)

成功完成POST后的脚本中:

header('Location: http://'.$_SERVER['HTTP_HOST'].'/finalpage.php', TRUE, 303);

请注意,这应该包含绝对网址,而不仅仅是/finalpage.php; HTTP RFC不允许位置标头中的相对URI,某些浏览器不支持。而且303严格来说比默认的302更正确。

如果您希望重定向只是再次获取与GET相同的页面,您可以这样做:

header('Location: '.$_SERVER['PHP_SELF'], TRUE, 303);

此外:

action="<?php echo $_SERVER['PHP_SELF']; ?>"

是不安全的,可能是导致XSS的HTML注入漏洞。必须对所有输出到HTML内容或属性值的文本字符串进行适当的转义:

action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>"