2016-01-16 3 views
2

Мой друг хотел, чтобы собрать некоторую статистику своего сайта, так что я дал ему следующий код для вставки в его страницы колонтитулы:Вставка блока кода JavaScript в PHP скрипт

<div> 
    <script> 
     var wandTopSitesUserId; 
     match = document.cookie.match(new RegExp("WandTopWildlifeSites" + '=([^;]+)')); 
     if (match) 
      wandTopSitesUserId = match[1]; 
     else { 
      wandTopSitesUserId = (+new Date * Math.random()).toString(36).slice(2, 12); 
      document.cookie = 'WandTopWildlifeSites=' + wandTopSitesUserId + '; expires=Tue, 1 Jan 2030 00:00:00 UTC; path=/'; 
     } 

     document.write('<div style="visibility: hidden;"><a href="http://www.www.fxxxxx.com/"><img src="http://xxxxxx.azurewebsites.net/Log/LogVisit/?siteId=2&userId=' + wandTopSitesUserId + '&pageName=' + location.pathname + '" alt="WAND Top Wildlife Sites" /></a></div>'); 
    </script> 
</div> 

Что Бесполезный Не знаю, что он использует PHP, и я абсолютно ничего не знаю о PHP. Когда он пытается вставить свой код в свой PHP скрипт, он получает следующее сообщение об ошибке:

string(125) "Smarty error: [in globalcontent:footer line 9]: [plugin] unknown tag - 'wandTopSitesUserId' (core.load_plugins.php, line 198)" string(137) "Smarty error: [in globalcontent:footer line 9]: syntax error: unrecognized tag 'wandTopSitesUserId' (Smarty_Compiler.class.php, line 590)" 

Не зная ничего о PHP, у меня есть идея, как это исправить.

ответ

3

Он использует шаблон samrty двигатель, который требует от вас, чтобы избежать JavaScript инкапсулируя его в {literal}...{/literal}:

<div> 
    {literal} 
    <script> 
     var wandTopSitesUserId; 
     match = document.cookie.match(new RegExp("WandTopWildlifeSites" + '=([^;]+)')); 
     if (match) 
      wandTopSitesUserId = match[1]; 
     else { 
      wandTopSitesUserId = (+new Date * Math.random()).toString(36).slice(2, 12); 
      document.cookie = 'WandTopWildlifeSites=' + wandTopSitesUserId + '; expires=Tue, 1 Jan 2030 00:00:00 UTC; path=/'; 
     } 

     document.write('<div style="visibility: hidden;"><a href="http://www.www.fxxxxx.com/"><img src="http://xxxxxx.azurewebsites.net/Log/LogVisit/?siteId=2&userId=' + wandTopSitesUserId + '&pageName=' + location.pathname + '" alt="WAND Top Wildlife Sites" /></a></div>'); 
    </script> 
    {/literal} 
</div> 
+0

Спасибо. Я только что отправил это ему, и вскоре я должен знать, если это сработает. –

+0

Отправьте ему ссылку для дальнейшей документации: http://www.smarty.net/docs/en/language.function.literal.tpl – maxhb

Смежные вопросы