modified eCommerce shop 1.06 installer is broken - how to fix it

Written by - 0 comments

Published on - Listed in PHP Internet Rant


The list of open source eCommerce software (online shops) is unfortunately not that big and it seems that the existing choice is not very satisfying either. A few years ago I started off with osCommerce, which was pretty good but was a minefield from a security perspective. Although osCommerce is still seen as an active project, there are barely (security) updates which makes this useless.

A few years after osCommerce a fork of the project, called XTCommerce, was launched. This one released much more patches than the original project and was (in my opinion) much easier to install and maintain (talking templates here) than osCommerce. But at some point the open source code disappeared from the Internet, making you pay for the software (FSF, intervention please?). XTCommerce still exists today.

Since XTCommerce was no more free, a new fork was born called XTCmodified. This project was a clone of XTCommerce but should be 100% open source. Due to (probably) legal rights problems using the name XTC from XTCommerce, XTCmodified had to change its name and is since January 2013 known as "modified eCommerce shop".

And this is where I am now. I tried to install the new version 1.06, the first version since the rename of the shop to modified shop. I followed all the steps in the guide until the installation must be continued on the browser (the web installer launched by _installer). All the database relevant parts worked fine, the scheme was imported correctly and so on. But as soon as step 5 came up, the following error showed up (translated into English):

URL or file path invalid

Caution: You have entered an invalid URL or invalid file path!

www.example.com/shop/robots.txt [ERROR: 404]

Please check your settings!

No matter what I tried, this error always came up. The URL however was correct so the problem must be somewhere in the code. 

I tried to reach to the developers of modified shop by addressing this issue in their community forum but it looks like the developers don't really care about questions or problems in the forum nor that their code works... As I already described in the post, the issue seems to come from a function called phpLinkCheck, which basically checks its own URL for the html status code (it tries to get www.example.com/shop/robots.txt,  see above). But something in that function is broken, so it returns a status code 404 instead of 200 - causing the installation to fail at step 5.

As I didn't get an answer from a developer, I went on to solve the issue myself, by removing the responsible code making the installation fail (removing the checks for the status code).

The following code is the diff output of the working install_step5.php and the original install_step5.php:

 181,182c181,220
<                   }
<
---
>                   } else {
>                     //Testpfad
>                     $url = $http_server . $_POST['DIR_WS_CATALOG'] . 'robots.txt';
>                     $link_status = phpLinkCheck($url);
>                     if ($link_status['Status-Code'] == 550) {
>                       $errmsg = 'HTTP Server: ' . $link_status['Parsed_URL']['host'] . ' unbekannt/unknown' . '   [ERROR: 550]';
>                     } else if ($link_status['Status-Code'] == 404) {
>                       $errmsg = $link_status['Parsed_URL']['host'] . $link_status['Parsed_URL']['path'] . '   [ERROR: 404]';
>                     }
>                     if ($link_status['Status-Code'] != 200) {
>                       //Fehleranzeige
>                       if (trim($errmsg) =='')
>                         $errmsg = $url . '   [ERROR: '. $link_status['Status-Code'] .']';
>                       ?>
>                       <table width="100%" border="0" cellpadding="0" cellspacing="0">
>                         <tr>
>                           <td>
>                             <img src="images/icons/error.gif" width="16" height="16"><strong>
>                             <div style="color:#FC0000;"><?php echo TEXT_PATH_ERROR; ?></strong></div>
>                           </td>
>                         </tr>
>                       </table>
>                       <p><strong><div style="color:#FC0000;"><?php echo TEXT_PATH_ERROR2; ?></div></strong></p>
>                       <table border="0" cellpadding="0" cellspacing="0" bgcolor="f3f3f3">
>                         <tr>
>                           <td><b><?php echo $errmsg;?></b></td>
>                         </tr>
>                       </table>
>                       <p><?php echo TEXT_PATH_ERROR3;?></p>
>                       <form name="install" action="install_step4.php" method="post">
>                         <?php draw_hidden_fields(); ?>
>                         <table border="0" width="100%" cellspacing="0" cellpadding="0">
>                           <tr>
>                             <td align="center"><a href="index.php"><img src="buttons/<?php echo $lang;?>/button_cancel.gif" border="0" alt="Cancel"></a></td>
>                             <td align="center"><input type="image" src="buttons/<?php echo $lang;?>/button_back.gif" border="0" alt="Back"></td>
>                           </tr>
>                         </table>
>                       </form>
>                       <?php
>                         } else {
225a264,267
>                     <?php
>                     }
>                   }
>                   ?>
237c279
< </html>
---
> </html>
\ No newline at end of file

After applying this diff, the installation will continue (but of course you must make sure that you provide the correct informations before). The shop has now finally been installed in vain and seems to be working so far...


Add a comment

Show form to leave a comment

Comments (newest first)

No comments yet.

RSS feed

Blog Tags:

  AWS   Android   Ansible   Apache   Apple   Atlassian   BSD   Backup   Bash   Bluecoat   CMS   Chef   Cloud   Coding   Consul   Containers   CouchDB   DB   DNS   Database   Databases   Docker   ELK   Elasticsearch   Filebeat   FreeBSD   Galera   Git   GlusterFS   Grafana   Graphics   HAProxy   HTML   Hacks   Hardware   Icinga   Influx   Internet   Java   KVM   Kibana   Kodi   Kubernetes   LVM   LXC   Linux   Logstash   Mac   Macintosh   Mail   MariaDB   Minio   MongoDB   Monitoring   Multimedia   MySQL   NFS   Nagios   Network   Nginx   OSSEC   OTRS   Office   OpenSearch   PGSQL   PHP   Perl   Personal   PostgreSQL   Postgres   PowerDNS   Proxmox   Proxy   Python   Rancher   Rant   Redis   Roundcube   SSL   Samba   Seafile   Security   Shell   SmartOS   Solaris   Surveillance   Systemd   TLS   Tomcat   Ubuntu   Unix   VMWare   VMware   Varnish   Virtualization   Windows   Wireless   Wordpress   Wyse   ZFS   Zoneminder