views:

114

answers:

1

I've been working on a site for a while changing the layout and skin of a webshop checkout process. I've noticed that if you go all the way through the process until the last page, then click the link to go back to the view products page, the delivery method price displays underneath the navigation buttons, until you refresh and it goes away again.

I've downloaded both sources from the browser (Chrome, but this bug applies to all browsers) and used a file difference tool to display the differences, the result being only:

< 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"/> 

Which is just the way it zips up the CSS stylesheets. (afaik)

Has anyone ever encountered such a problem, or anything similar?

Normal: How it is meant to look

Error: The weird bug

I can't even hazard a guess as to what is causing this, at all. I've searched over Google for anything and come up with nothing.

There isn't even any markup in this sourcecode to display the leveringsmåte (Delivery method) div.

What could be causing this?

The site in question is Euroworker.no.

HTML @ Pastebin.

Smarty snippet:

{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]-->

Thanks.

UPDATE: Just used DOM Inspector and found this:

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

Which is in the last page of the process.. Why would this be carrying over?

UPDATE 2

Got this from NET tab in 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

When I click on HTML for the GET order tab, it appears to be getting the Leveringsmåte TD from the previous page and just adding it in there.

+1  A: 

To summarize the comments above:

If the mystery line is not in the HTML source code, but shows up in Firebug's DOM, then it is likely it gets injected there through Ajax somehow. My guess would be a not properly reset variable somewhere, either on the PHP or the JS end.

I guess there will be no way around step-by-step debugging to find out the root cause.

Pekka
Thanks Pekka. Helped a great deal! I'll be sure to keep this updated as to what caused it and how to solve.
Kyle Sevenoaks
@Kyle yes, please do. You never know when that knowledge may come in handy.
Pekka