“期望参数1成为有效路径,给出字符串”

时间:2014-11-04 22:41:38

标签: php heisenbug

我想我手上可能有一只海森堡。到目前为止我的代码看起来像这样:

$enc = $_REQUEST['l'];
$filename = DecryptString($enc);

echo $filename;  //Displays: uploads/Maid with the Flaxen Hair.mp3


if (is_dir($filename))  //Gives the error: "Warning: is_dir() expects parameter 1 to be a valid path, string given"
{

    Download($filename);
}

但是,如果我之前使用的是uploads/Maid with the Flaxen Hair.mp3并运行is_dir("uploads/Maid with the Flaxen Hair.mp3"),那么它会按预期返回。

因此,如果我将变量传递给is_dir,它就会失败,但如果我传递变量的值就行了。什么是捕获?

1 个答案:

答案 0 :(得分:2)

DecryptString()最后返回一个包含NUL(\0)的字符串。

确保在尝试使用该值之前将其修剪掉。

您可以使用$enc = trim($enc);

修剪NULL字符