我对PHP并不了解,我觉得这里问这个问题是愚蠢的。 我们如何修复php中的开放重定向问题? 例如在下面的代码中。
if($_GET["target"]) {
$target =$_GET["target"];
header("Location: $target");
}else {
echo "No target!";
}
我正在尝试将http://localhost:81/ *以外的所有内容重定向到http://localhost:/81,如果我提供输入http://localhost:81/something,则应将其重定向,并将所有其他内容重定向到{{ 3}}。
我尝试更改标题("位置:http://localhost:81/")但是它将所有内容重定向到http://localhost:81/ 如何编辑或修复此问题以不包含http://localhost:81/的重定向?
答案 0 :(得分:2)
只需获取$ _GET ['target']值并检查天气是否为'某事'。如果该值不是“某事”,则将它们全部重定向到您想要的位置。
试试这个!
if( isset( $_GET['target'] ) ) {
$page = $_GET['target'];
if( $page != 'something' ) {
header("Location: Your url here"); // Change the text with your url
}
}
答案 1 :(得分:0)
$ _SERVER超级全局中可用的URL的所有组件都有变量。
例如,看看这些变量:
echo $_SERVER['REQUEST_SCHEME'];
echo $_SERVER['HTTP_HOST'];
echo $_SERVER[['REQUEST_URI'];
还有parse_url函数将获取一个url并返回一个数组,并将其分成几部分。一旦你把它分成几部分,你的评估和重定向应该很容易。