«Призрачные» значения в PHP / Smarty - PullRequest
0 голосов
/ 26 апреля 2010

Я некоторое время работал над сайтом, меняя макет и оформление процесса оформления заказа в интернет-магазине. Я заметил, что если вы пройдете весь процесс до вплоть до последней страницы, а затем щелкните ссылку, чтобы вернуться на страницу просмотра товаров, цена метода доставки будет отображаться под кнопками навигации, пока вы не освежиться и снова уйти.

Я скачал оба источника из браузера (Chrome, но эта ошибка относится ко всем браузерам) и использовал инструмент для определения различий в файлах , чтобы отобразить различия, в результате получился только:

< error.html 
vs
> normal.html
34c34
<   <link href="gzip.php?file=167842c1496093fbcd391b41cf7b03da.css&time=1272272181" rel="Stylesheet" type="text/css"/> 
---
>   <link href="gzip.php?file=167842c1496093fbcd391b41cf7b03da.css&time=1272272348" rel="Stylesheet" type="text/css"/> 

Именно так он застегивает таблицы стилей CSS. (AFAIK)

Кто-нибудь сталкивался с такой проблемой или чем-то подобным?

Нормальный: How it is meant to look

Ошибка: The weird bug

Я даже не могу рискнуть догадаться, что является причиной этого, вообще. Я искал в Google что-нибудь и ничего не нашел.

В этом исходном коде даже нет никакой разметки для отображения div.

Что может быть причиной этого?

Сайт, о котором идет речь, Euroworker.no .

HTML @ Pastebin .

Фрагмент Smarty:

{if !$CANONICAL}
        {canonical}{self}{/canonical}
    {/if}

    <link rel="canonical" href="{$CANONICAL}" />

    <!-- Css includes -->
    {includeCss file="frontend/Frontend.css"}
    {includeCss file="backend/stat.css"}

    {if {isRTL}}
        {includeCss file="frontend/FrontendRTL.css"}
    {/if}

    {compiledCss glue=true nameMethod=hash}
    <!--[if lt IE 8]>
        <link href="stylesheet/frontend/FrontendIE.css" rel="Stylesheet" type="text/css"/>
        {if $ieCss}
            <link href="{$ieCss}" rel="Stylesheet" type="text/css"/>
        {/if}
    <![endif]-->

Спасибо.

ОБНОВЛЕНИЕ : Только что использовал DOM Inspector и нашел это:

<TD class="amount shippingAmount">138.-</TD>

Что находится на последней странице процесса .. Зачем это переносится?

ОБНОВЛЕНИЕ 2

Получил это из вкладки NET в Firebug,

GET order

Response Headersview source
Date    Mon, 26 Apr 2010 11:20:06 GMT
Server  Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g
X-Powered-By    PHP/5.2.4-2ubuntu5.10
Expires Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control   no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma  no-cache
Content-Encoding    gzip
Content-Length  5244
Keep-Alive  timeout=15, max=96
Connection  Keep-Alive
Content-Type    text/html;charset=utf-8
Request Headersview source
Host    www.euroworker.no
User-Agent  Mozilla/5.0 (Windows; U; Windows NT 6.0; nb-NO; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9 (.NET CLR 3.5.30729)
Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language nb,no;q=0.8,nn;q=0.6,en-us;q=0.4,en;q=0.2
Accept-Encoding gzip,deflate
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive  300
Connection  keep-alive
Referer http://www.euroworker.no/checkout/pay
Cookie  PHPSESSID=f5bd84668603decd779c5945d2de045c; __utma=259297566.1176642152.1271066660.1272267705.1272280025.34; __utmz=259297566.1271066660.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmb=259297566.7.10.1272280025; __utmc=259297566

Когда я нажимаю HTML для вкладки заказа GET, кажется, что он получает TD Leveringsmåte с предыдущей страницы и просто добавляет его туда.

1 Ответ

1 голос
/ 26 апреля 2010

Подведем итог вышеприведенным комментариям:

Если загадочная строка отсутствует в исходном коде HTML, но отображается в DOM Firebug, то, скорее всего, она каким-то образом вводится туда через Ajax. Я предполагаю, что где-то неправильно будет сброшена переменная, либо на стороне PHP, либо на стороне JS.

Я думаю, что не будет никакого способа пошаговой отладки, чтобы выяснить причину.

...