在打开index.php时预定义$_GET参数


Predefining $_GET parameter on open of index.php

是否有办法在打开"index.php"时设置具有一定值的$_GET参数

例如:url = "…/index.php? "somePara =价值"

我试着使用:

header("Location: index.php?page=1");
 exit();

但是我得到一个错误

"localhost重定向您多次。"

编辑:
谢谢,Qirel,那是有效的,我需要它,因为我有附加到$_GET参数的变量,所以不是将它们设置为NULL,然后在if($_GET)检查->之后将值传递给它们,这样他们就不会得到未定义的错误,我想知道如何在打开文件时传递值。

问题要么是你没有条件,要么是你有条件,但在这个用例中它总是为真。

你的问题提到了条件:

是否有一种方法可以在打开时设置$_GET参数具有一定的值" index . php "

但是你的代码没有包含

header("Location: index.php?page=1");
 exit();

所以你可以把它包装成一个条件:

if (isset($_GET["certain"]) && ($_GET["certain"] === "value")) {
    header("Location: index.php?page=1");
    exit();
}

注意header的string参数不包含certain,因为那会导致无限循环。如果您打算包含certain,您也可以在if中检查是否有page参数。

我已经阅读了建议将$_GET的相应键设置为预期值而不是重定向的评论,但这并不总是一个选项,因为您可能想要美化URL甚至重定向到另一个网站的页面。

如果在我的代码中使用了$_GET参数,我总是为这些变量设置一个默认值,因为您永远无法确定是否设置了它。

$name = isset($_GET['name']) ? $_GET['name'] : 'Guest';
// This is the shorter version for
if (isset($_GET['name'])) {
    $name = $_GET['name'];
} else {
    $name = 'Guest';
}

你解决问题的方法会让你陷入无限循环。但是,您可以这样做:

if (!isset($_GET['page'])) {
    header("Location: index.php?page=1");
    exit;
}