如何让我的第二个变量? (我已经设置了switch
)
<body id="<?php if (! isset($_GET['page'])) { echo "home"; } else { $_GET['page']; echo $page; } ?>">
我有一个switch
语句从
index.php?page=#####
我已将此部分添加到我的switch
:
index.php?page=####§ion=#####
现在,如果我在页面上=照片,我的代码最终会成为:
<body id="photos">
我需要这样做,以便如果任何链接上有“sections”变量,就像 page = photos&amp; section = cars 一样,它使用相同的ID:
<body id="photos">
答案 0 :(得分:0)
首先,HTML元素只能有一个id。因此,如果您想创建混合(例如页面部分),您可以执行以下操作:
<body id="<?php echo isset($_GET['page']) ? $_GET['page'] : "home"; echo isset($_GET['section']) ? ("-".$_GET['section']) : ''; ?>">
有关PHP中的三元运算符的更多信息(?和:我在echo语句中使用),请参阅http://php.net/manual/en/language.operators.comparison.php
答案 1 :(得分:0)
将PHP代码移到body的id属性之外以提高可读性,并使用else if
。通过清理或验证来自$_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; ?>">
在这种情况下,我会使用第一个展开的版本。如果必须检查更多输入键,请使用基于循环的方法。
如果您决定要同时使用页面&amp; ID中的部分,您可以尝试以下内容:
<?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; ?>">
答案 2 :(得分:0)
我不完全确定我理解你的问题,但你在做什么:
$_GET['page']; echo $page;
您认为发生了什么?你正在回应一个没有定义的变量。如果你想回显url中传递的值,只需执行:
echo $_GET['page'];
GET并不意味着你获得变量,它是将变量传递给页面的方法。可能的方法是get(在url中)或post(not)。
答案 3 :(得分:0)
如果该部分被定义,那么这不是一个如果找出它吗?即
if(isset($_GET['section'])){
//create div
} elseif(isset($_GET['page']){
//create fallback div
}