Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用Smarty模板中的http_referer仅为内部链接创建后退按钮_Php_Smarty_Http Referer - Fatal编程技术网

Php 如何使用Smarty模板中的http_referer仅为内部链接创建后退按钮

Php 如何使用Smarty模板中的http_referer仅为内部链接创建后退按钮,php,smarty,http-referer,Php,Smarty,Http Referer,我正在使用网站上的以下代码在Smarty模板中创建后退按钮: <div id="back-button"> <a href="{$smarty.server.HTTP_REFERER}">BACK</a> 当浏览内部页面时,这会根据需要工作。但是,当用户通过外部网站上的超链接访问我的网站时,后退按钮会将他重定向到该外部网站。我希望按钮仅在http_referer值是内部链接时才起作用。至于外部链接,它应该重定向到我的网站主页 对不起,我的问题非常简单。

我正在使用网站上的以下代码在Smarty模板中创建后退按钮:

<div id="back-button">
<a href="{$smarty.server.HTTP_REFERER}">BACK</a>

当浏览内部页面时,这会根据需要工作。但是,当用户通过外部网站上的超链接访问我的网站时,后退按钮会将他重定向到该外部网站。我希望按钮仅在http_referer值是内部链接时才起作用。至于外部链接,它应该重定向到我的网站主页

对不起,我的问题非常简单。我对Smarty是新手

另外,我知道如何用Javascript编写。我需要用smarty

谢谢你试试这个

{if isset($smarty.server.HTTP_REFERER) && strpos($smarty.server.HTTP_REFERER, $smarty.server.HTTP_HOST) != false}
  <a href="{$smarty.server.HTTP_REFERER}">Back</a>
{else}
  <a href="/">Back</a>
{/if}
{if-isset($smarty.server.HTTP\u REFERER)和&strpos($smarty.server.HTTP\u REFERER,$smarty.server.HTTP\u HOST)!=false}
{else}
{/if}

它检查是否存在一个引用者,并且该引用者来自同一主机,然后添加一个引用者链接。如果不存在,则添加一个主页链接。

http引用者是由请求服务器在请求任何资源(无论是内部资源还是外部资源)时设置的。您可以做的是在代码中获取这个值服务器端,并将其放入内部变量中。然后根据需要在Hyperlink中使用变量。在设置推荐人之前,您应该检查域。如果链接与主机匹配,则为您的回复设置HTTP_RefererHanks。请分享一个示例代码片段。这正是我想要的。此行
{$link->getPageLink('index')}
产生了一个错误。所以我修正了它并做了一些改进。多谢各位<代码>{if-isset($smarty.server.HTTP\u REFERER)和&stripos($smarty.server.HTTP\u REFERER,$smarty.server.server\u NAME)!=false}{else}{/if}哦,对不起。我并没有认为这个问题只与smarty有关,而是使用了prestashop中的那个部分。我会修好的