我正在检查是否传递了特定参数以及该参数是否存在文件夹。前
if ((! isset($_GET["name"])) or (! is_dir($_GET["name"]))) {
print "----------------USER NOT FOUND-----------------" ;
}
并且在我的URL中如果有name = Erik,并且该名称中不存在该文件夹,我想打印错误消息。 另外我想检查参数'name'是否使用isset传递到URL。 不知怎的,以上不起作用,我无法弄清楚原因。 任何输入都会有所帮助。
由于
答案 0 :(得分:0)
or
有不同的用途。无论何时你想要做的事情都不起作用,它就会执行另一部分。典型的已弃用示例是当您尝试进行某些数据库交互时,您将回写$STH = mysql_query('SELECT * FROM users') or die();
。对于您的情况,您应该使用||
运算符,as explained in the documentation
此外,您不会检查是否有人提交了某些内容。如果提交的表单中没有任何内容,则永远不会打印任何内容。两个错误都已修复,您的代码应如下所示:
if (empty($_GET["name"]) || !is_dir($_GET["name"])) {
print "----------------USER NOT FOUND-----------------" ;
}
因为,如果有人提交表单,则网址将为example.com/index.php?name=
,这会使$_GET['name']
设置为空。我假设您想说在这种情况下找不到用户。