PHP错误页面问题
我不明白为什么这个脚本不起作用PHP错误页面问题,php,Php,我不明白为什么这个脚本不起作用 <?php if (($_GET['p'] != 'index') && ($_GET['p'] != 'reg') && ($_GET['p'] != 'login') && ($_GET['p'] != 'ad') && (!isset($_GET['p']))): ?> <?php endif; ?> 如果未设置$\u-G
<?php
if (($_GET['p'] != 'index') &&
($_GET['p'] != 'reg') &&
($_GET['p'] != 'login') &&
($_GET['p'] != 'ad') &&
(!isset($_GET['p']))):
?>
<?php endif; ?>
如果未设置$\u-GET,我不想显示错误页面,根据我的经验(
!isset($\u-GET['p'])
)应该这样做。您可以检查$\u-GET['p']是否由设置
if(isset($_GET['p']) {...}
如果设置为非空,则可以检查需要检查的值。您的条件没有意义。您正在检查
$\u GET['p']
的3个可能值,然后检查是否设置了$\u GET['p']
。颠倒你的逻辑:
<?php
if(isset($_GET['p']))
{
// display error page
}
else
{
// do something else
}
如果未设置$\u GET['p']
,则无法选中$\u GET['p']!='索引“
和所有其他内容。您必须先检查是否已设置:
<?php if(
! isset( $_GET['p'] ) ||
($_GET['p'] != 'index' &&
$_GET['p'] != 'reg' &&
$_GET['p'] != 'login' &&
$_GET['p'] != 'ad')
): ?>
编辑:
现在您提供了更多信息,下面是您应该做的:
if ( ! isset($_GET['p']) )
{
// We're at the index page, so don't display anything
}
else
{
if ( in_array( $_GET['p'], array('index', 'reg', 'login', 'ad') ) )
{
// Display your content window
}
else
{
// $_GET['p'] is not a valid value, display error
}
}
试试这个:
<?php
$defaultvalue=0; // for example 0
$p=isset($_GET["p"]) ? $_GET["p"] : $defaultvalue;
if(($p != 'index') && ($p != 'reg') && ($p != 'login') && ($p != 'ad')):
?>
真的吗?R字?这是三年级吗?你可能想重新表述你的标题,以便更准确地描述这个问题。更好的描述将吸引更多更好的答案!如果您想检查!isset($\u GET['p'])
,在检查相等性之前将其放在列表的第一位。另外,我不知道为什么有这么多括号将单个条件分组。它们对于正在发生的事情是多余的。通过“$\u GET is not set”您的意思是您想要!isset($\u GET['p'])
在GET请求是这样的?
或者是?p=
时计算为TRUE
?我已经尝试过了$_获取['p']!isset,在设置变量时设置一个变量,将它放在一个不同的if语句中,在if的长列表之前和之后,似乎什么都不起作用。。get在地址栏中看起来是这样的:?p=index,而我似乎无法将其发送到work@albinlennstrand当你认为$_GET['p']是空的时候,你确定它是空的吗?我直接从你的评论中复制了你的代码,但它仍然不起作用,我以前甚至做过数组,但它就是不起作用,当我检查GET是否为某个特定值时,它确实起作用,但如果它未设置为allI不明白-如果您检查$\u GET['p']是否为null或空,为什么需要其他条件来检查该变量的值?如果$\u GET['p']为null或为空,则它不包含值…@evione-据我所知,这是他试图做的事情:如果没有值作为$\u GET['p']
传递,或者$\u GET['p']
不等于这些值中的任何一个,那么他就溜过去了。否则,他想发出一个错误。我有一个页面,它检查$u GET是否设置了某个值,例如,如果它是Hello,那么它会显示一个包含文本“Hello”的内容窗口。但是我不希望在索引上显示任何内容,因为索引中没有设置$\u GET,并且当$\u GET值与任何设置值不匹配时,将显示错误页面。@JosephSilber是的。这就是我想要的。就像以前的脚本一样,如果设置了某些值,它就可以工作,但是如果没有设置,它就不能工作
<?php
$defaultvalue=0; // for example 0
$p=isset($_GET["p"]) ? $_GET["p"] : $defaultvalue;
if(($p != 'index') && ($p != 'reg') && ($p != 'login') && ($p != 'ad')):
?>