HI,
任何人都可以提供帮助
我需要在用户将表单提交到另一个页面后指导用户
我怎么能这样做?
<form enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
答案 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']); ?>"