Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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:我如何使无效用户获得另一个zipfile?_Php - Fatal编程技术网

PHP:我如何使无效用户获得另一个zipfile?

PHP:我如何使无效用户获得另一个zipfile?,php,Php,我对php非常陌生,我遇到了这段代码 现在,它检查用户的hwid,并在hwid位于有效用户中时授予zip文件的权限。 如何使无效用户获得另一个zipfile进行下载 代码: ` `假设其他代码功能正常,则末尾的if子句应如下所示: if($HWID === $USER) { readfile('./ZIPFILE.zip'); die(); } else { readfile('OtherFile.zip'); die(); } 比较$HWID==$USER后,在下面添加的EL

我对php非常陌生,我遇到了这段代码

现在,它检查用户的hwid,并在hwid位于有效用户中时授予zip文件的权限。 如何使无效用户获得另一个zipfile进行下载

代码:

`


`

假设其他代码功能正常,则末尾的
if
子句应如下所示:

if($HWID === $USER) {
    readfile('./ZIPFILE.zip'); die();
} else {
    readfile('OtherFile.zip'); die();
}

比较$HWID==$USER后,在下面添加的ELSE中提供一个不同的文件

foreach($VALID_USERS as $USER) {
    $USER = strtolower($USER);
    $HWID = strtolower($USER_HWID);

    if($HWID === $USER) {
        readfile('./ZIPFILE.zip'); die();
    } else { //not a valid user
       readfile("./invalid_file.zip");die();
    }
}
请注意,这将为不符合条件的任何人提供“invalid_file.zip”($HWID===$USER)(可能,请参见下文)

此外,die()是一种非常讨厌的退出方式(它甚至没有告诉用户它为什么要离开…)

还请查看您的$VALID_USERS数组。你肯定不想在里面有一个空值

最后,如果其他人不是null或“BB12313-25DC-5132-BCEA-b2312312312323”呢


您可能希望重新考虑使用此代码。

将整个foreach循环替换为此if块。由于您将有效的_用户保存在一个数组中,因此可以使用快速检查用户是否存在,因此不需要循环

这:

变成:

if (in_array($USER_HWID, $VALID_USERS, true)) {
    readfile('./ZIPFILE.zip'); die();
} else {
    readfile('./SomeOtherZIPFILE.zip'); die();
}

您还将注意到,在本例中,in_array()的第三个参数设置为true。这将启用严格的类型比较,以匹配原始代码“==”检查。

在上面的代码中使用else条件仔细查看他的循环,添加else不会像您认为的那样起作用。我还查看了他的数组。代码一开始通常相当糟糕。为什么你们认为空在上面?同意的问题可能会好得多。即使他的数组中有null up(例如,假设这不是他缩短它的方式),您也需要考虑数组有多个值。在循环中添加else意味着只检查第一个数组值。我刚刚遇到了这段代码我对php的了解为零,我已经尝试添加}else了{对它来说,它不起作用,忘了在第一篇文章中提到它。我只想要一个代码来检查列表中的硬件id,如果用户不在列表中,应该给他们另一个文件。
foreach($VALID_USERS as $USER) {
    $USER = strtolower($USER);
    $HWID = strtolower($USER_HWID);

    if($HWID === $USER) {
        readfile('./ZIPFILE.zip'); die();
    }
}
if (in_array($USER_HWID, $VALID_USERS, true)) {
    readfile('./ZIPFILE.zip'); die();
} else {
    readfile('./SomeOtherZIPFILE.zip'); die();
}