0

当 url 是 localhost/school/portfolio/contact.php 它工作正常,但是当我使用获取参数 index.php?page=contact 它重定向到 index.php

我使用的代码

$url = "http". ((!empty($_SERVER['HTTPS'])) ? "s" : "") . "://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
        header('Location: '.$url."?sent=yes");

我要补充什么?

4

3 回答 3

2

这应该有帮助:)

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">

否则请参阅我对“如何使用 PHP 获取基本 URL?”的回答。寻求更多帮助的问题:)

于 2012-11-19T10:59:30.800 回答
0

有几种方法可以做到这一点..(选择适合你的..)
1)使用$_SERVER['PHP_SELF']
2)使用parse_url()获取PHP_URL_PATHPHP_URL_QUERY部分,并重定向到相对路径。
但最好在会话中存储重定向链接。

于 2012-11-19T11:04:55.390 回答
0

这似乎是一个旧线程,但为了帮助该页面的未来访问者,值得添加有关$_SERVER['PHP_SELF'].

如果$_SERVER['PHP_SELF']按照上面评论中的建议添加到表单操作属性,则您正在为 XSS 攻击设置自己。

$_SERVER['PHP_SELF']一种解决方案是像这样包装htmlentities()

<form action="<?php echo htmlentities($_SERVER['PHP_SELF']) ?>" method="post">

这是有关该主题的好读物:

http://www.html-form-guide.com/php-form/php-form-action-self.html

于 2014-04-11T19:52:17.803 回答