Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php If语句:如何提取第二个GET变量_Php_Variables_Get - Fatal编程技术网

Php If语句:如何提取第二个GET变量

Php If语句:如何提取第二个GET变量,php,variables,get,Php,Variables,Get,我如何得到这个来提取我的第二个变量?我已经有了一个开关设置 我刚刚在交换机中添加了这一部分: 现在,如果我在page=photos上,我的代码是: <body id="photos"> 我需要这样做,如果任何链接上有sections变量,如page=photos§ion=cars,那么它使用相同的ID: <body id="photos"> 首先,HTML元素只能有一个id。因此,如果您想创建一个混合元素,例如页面部分,您可以执行以下操作: <body

我如何得到这个来提取我的第二个变量?我已经有了一个开关设置

我刚刚在交换机中添加了这一部分:

现在,如果我在page=photos上,我的代码是:

<body id="photos">
我需要这样做,如果任何链接上有sections变量,如page=photos§ion=cars,那么它使用相同的ID:

<body id="photos">

首先,HTML元素只能有一个id。因此,如果您想创建一个混合元素,例如页面部分,您可以执行以下操作:

<body id="<?php echo isset($_GET['page']) ? $_GET['page'] : "home"; echo isset($_GET['section']) ? ("-".$_GET['section']) : ''; ?>">

有关PHP中三元运算符的更多信息,请参阅?并且:我在echo语句see中将PHP代码移到body的id属性之外以提高可读性,如果需要,请使用else。通过清理或验证来自$\u GET的输入,确保您的代码不易被注入。例如:

<?php
    function isValidID($x) {
        return preg_match('/^[A-Z][-_.A-Za-z0-9]$/i', $x);
    }

    if (isset($_GET['section']) && isValidID($_GET['section'])) {
        $bodyID = $_GET['section'];
    } else if (isset($_GET['page']) && isValidID($_GET['page'])) {
        $bodyID = $_GET['page'];
    } else {
        $bodyID = 'home';
    }
?>
...
<body id="<?php echo $bodyID; ?>">
或者

<?php
    function isValidID($x) {
        return preg_match('/^[A-Z][-_.A-Za-z0-9]$/i', $x);
    }
    $bodyID='home';
    foreach (array('section', 'home') as $key) {
        if (isset($_GET[$key]) && isValidID($_GET[$key])) {
            $bodyID = $_GET[$key];
            break;
        }
    }
?>
...
<body id="<?php echo $bodyID; ?>">
在本例中,我将使用第一个展开的版本。如果必须检查更多输入键,请使用基于循环的方法

如果您决定在ID中同时使用page和section,可以尝试以下操作:

<?php
    function isValidID($x) {
        return preg_match('/^[A-Z][-_.A-Za-z0-9]$/i', $x);
    }

    if (isset($_GET['page']) && isValidID($_GET['page'])) {
        $bodyID = $_GET['page'];
    } else {
        $bodyID = 'home';
    }
    if (isset($_GET['section']) && isValidID($_GET['section'])) {
        $bodyID .= '_' . $_GET['section'];
    }
?>
...
<body id="<?php echo $bodyID; ?>">

我不完全确定我是否理解你的问题,但你在做什么:

$_GET['page']; echo $page;
你认为发生了什么事?您正在回显一个没有定义的变量。如果要回显url中传递的值,只需执行以下操作:

echo $_GET['page'];

GET并不意味着获取变量,而是将变量传递到页面的方法。可能的方法是在url中获取或不发布。

如果该节已定义,那么这不是一个if来查找它吗?i、 e

if(isset($_GET['section'])){
     //create div
} elseif(isset($_GET['page']){
    //create fallback div
}

您缺少的代码最终是什么…您确定不希望正文ID中同时包含页面和节吗?例如
$_GET['page']; echo $page;
echo $_GET['page'];
if(isset($_GET['section'])){
     //create div
} elseif(isset($_GET['page']){
    //create fallback div
}