防止添加到另一个链接的链接

时间:2014-11-05 11:29:37

标签: php mysql url

您好我正在使用php生成一个带有自己的构建CMS系统的菜单。

我正在制作动态链接:$url = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."/"; 我正在从数据库中添加. $row_menu['page_link']。起初它完美无缺:

as example =

$row_menu['page_link'] = page2;

$url . $row_menu['page_link'];

它将返回示例:http://example.com/page2

但是当我再次点击时,它再次添​​加了page2,如:http://example.com/page2/page2

我如何防止这种情况?

提前致谢!

3 个答案:

答案 0 :(得分:0)

因为您的$_SERVER['REQUEST_URI']第一次与http://example.com相似,但当用户点击该链接时,$_SERVER['REQUEST_URI']的值将变为http://example.com/page2。\ n&#39}为什么它会追加两次。

相反,您可以使用HTTP_REFERER之类的

$url = $_SERVER['HTTP_REFERER'].$row_menu['page_link'];

考虑到您的$_SERVER['HTTP_REFERER']会产生http://example.com。您也可以尝试

$protocol = 'http';
$url = $protocol .'//'. $_SERVER['HTTP_HOST'] .'/'. $row_menu['page_link'];

答案 1 :(得分:0)

REQUEST_URI将为您提供example.com之后的所有内容,因此请将其全部放在一起。

$url = $_SERVER['HTTP_HOST'] . "/" . $row_menu['page_link'];

您可以找到$ _SERVER引用的完整列表here

答案 2 :(得分:0)

试试这个:

$requested_uri = $_SERVER['REQUESTED_URI'];
$host = $_SERVER['HTTP_HOST'];
$uri_segments = explode('/',$requested_uri);

$row_menu['page_link'] = 'page2';
if($row_menu['page_link'] == $uri_segments[sizeof($uri_segments)-1]) {
    array_pop($uri_segments);
}

$uri = implode('/',$uri_segments);

$url = 'http://'.$host.'/'.$uri.'/'.$row_menu['page_link'];

echo $url;