php中的访问权限和文件路径

时间:2009-11-18 09:30:39

标签: php path permissions

我使用index.php来控制页面的访问。

这是机制:

Index.php将页面重定向到search.php;代码:index.php/?page=search search.php的路径是:pages/search.php,search.php包含header.html,body.html等。

现在在body.html中我们使用:index.php/?page=search参数调用search.php,body.html包含以下代码:index.php/?page=search?query='.quote_replace(addmarks($query)).您可以看到有两个'?'。而这正是这个问题。

当我浏览search.php时,它会显示在网址:example.com/?page=search

当我实际在body.html中点击search.php中的按钮时,它会显示在网址example.com/index.php/?query=&search=1中。

这样,浏览只显示页面index.php。但是我想在search.php中显示搜索结果,它应该显示example.com/?page=search/?query=&search=1。但您可以看到/?page=search消失,此处显示/index.php

对不起,条件很复杂,我不能很好地描述它。如果你不能很好地理解它,我会解释。

那么,你有什么建议吗?非常感谢。

1 个答案:

答案 0 :(得分:2)

如果要使用字符串(例如search/?query=&search=1)作为URL参数,则需要进行编码,使其不再包含特殊字符,例如?&。请使用urlencode() PHP function

urlencode("search/?query=findme&search=1")

这将产生以下字符串,可以安全地包含在URL参数中:

search%2F%3Fquery%3Dfindme%26search%3D1

构建你需要的第一个字符串,以便编写所有参数。这里的http_build_query()函数非常有用,它使用带有键和值的数组,对所有这些函数进行编码,并在需要时添加=&个字符:

http_build_query(array("query" => "find&me", "search" => "1"))

产生

query=find%26me&search=1