我有一个通过查询字符串接收变量的 PHP 脚本。
一开始我使用explode 将某些字符串放入一个数组中,因为它们包含我需要使用的几个值。举个例子:
index.php?a=2,2&b=foo&i=&s=bar
$d['i'] = explode(',',$_GET['i']);
$d['s'] = $_GET['s'];
$d['a'] = explode(',',$_GET['a']);
$d['b'] = explode(',',$_GET['b']);
我需要检查是否设置了某些变量,因为它们是强制性的,即必须设置“i”和“s”并包含一些数据。
当这些未设置或为空时,我想重定向到错误页面。但是,它并不总是有效,我不知道为什么。当我说“不总是”时,这就是我的意思。它似乎随机接受和拒绝空变量,我不知道为什么。
这是我现在拥有的 PHP 代码:
if(!$d['i'] || !$d['s']) {
header('Location: error.php?e=2');
}
首先我只有上述内容,但是当变量设置但为空时,它仍然通过。
我当时尝试的是使用:
if(strlen($d['i']) < 1 || strlen($d['s']) < 1) {
header('Location: error.php?e=2');
}
但出于某种奇怪的原因,它仍然接受空字符串。我也试过这个,但没有成功:
if(empty($d['i']) < 1 || empty($d['s']) < 1) {
header('Location: error.php?e=2');
}
关于我在这里做错了什么的任何线索?