我正在设计一个Web应用程序,可以根据最终用户来自哪个零售位置进行定制。例如,如果用户来自称为Farmer's Market的商店,那么可能会为该用户提供特定于该特定商店的定制内容或额外链接。 file_exists()用于确定是否存在需要导入的页面的任何自定义部分。file_exists()期望参数1是一个有效的路径,给出的字符串
到目前为止,我们一直使用一种相对不安全的方法,其中项目ID#和商店被简单地作为GET参数传入,并且系统知道将它们应用于页面中的每个链接。但是,我们切换到可逆散列方法,其中存储和项目编号被加密(看起来像“gd651hd8h41dg0h81”),并且页面简单地解码它们并分配存储和ID变量。
然而,自那时起,我们一直在遇到一个错误,谷歌搜索广泛没有找到我的答案。有代码的几个类似的块,但他们都看起来像这样:
$buttons_first = "../stores/" . $store . "/buttons_first.php";
if(file_exists($buttons_first))
{
include($buttons_first);
}
(在/专卖店/目录实际上是在一个工作的上级目录,因此../)
相当直截了当。但是,尽管在常规的ID和存储传入做工精细,使用加密ID抛出这个错误对那些类似的语句中的每一个:
警告:file_exists()预计参数1是一个有效的路径,串在第11行[网址删除]给出
我已经有脚本吐回完整的URL,它似乎是正确地分配$存储。我正在运行PHP 5.4.11 1 & 1托管(因为我知道他们的服务器工作方式有些异常),如果有帮助的话。
你能提供一个路径失败的例子吗? – Raad 2013-02-13 15:36:00
'var_dump($ store)'的结果是什么?也许它包含将构成无效路径的保留字符('?','*'等)。 [以下是可能保留的字符列表](http://en.wikipedia.org/wiki/File_name#Reserved_characters_and_words)。 – cmbuckley 2013-02-13 15:39:38
“../stores/shoprite/buttons_first.php”是我玩的一个。 在这种情况下,var_dump($ store)会导致** string(28)“shoprite”**。 – Sean 2013-02-13 15:43:35