Я думаю, что у меня может быть Heisenbug на моих руках. Мой код до сих пор выглядит так:
$enc = $_REQUEST['l'];
$filename = DecryptString($enc);
echo $filename; //Displays: uploads/Maid with the Flaxen Hair.mp3if (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
, это не удается, но если я передам значение переменной, это работает. В чем подвох?
DecryptString()
возвращает строку с NUL (\0
) в конце.
Убедитесь, что вы обрезали их, прежде чем пытаться использовать значение.
Вы можете обрезать NULL символ с помощью $enc = trim($enc);
Других решений пока нет …