Hi there,
first of all, this review has no intension to blame anyone who is working for nicecoder or Indexu. Indexu is one of the best link indexing scripts I've seen so far an I really love using it.
Some words about me. I'm familiar with php(5), mysql, smarty, jquery and other components Indexu is build on. I'm working as an system engineer and my business is to build high performance websites (up to 6.000.000 page impressions daily) based on the components mentioned above. So yes, I know what I'm talking about
After I purchased some new Indexu licenses I started to build some plugins, own templates, and some core modifications. I knew, Indexu would fit my needs but I found so many design and coding flaws. I would say, Indexu is a great script for Average Joes webmaster, but it is not a "premier" portal script or a solid business application. If you want to use Indexu as a real business application or in a business enviroment you have to spend hours of modification and optimisation.
Well, let's start with the templates.
Most of the standard templates can be optimised. For example - actual Kosmos main.css
so many unnecessary code. You can turn it into:Code:#footer_menu a { color: #000; text-decoration: none; } #footer_menu a:active, #footer_menu a:link, #footer_menu a:visited { color: #000; } #footer_menu a:hover { color: #000; text-decoration: underline; }
Some other optimisations (still Kosmos) are the inline css definitions likeCode:#footer_menu a { color: #000; text-decoration: none; } #footer_menu a:hover { text-decoration: underline; }
The main advantage about css is to separate content and styles. There is no reason to mix it, if you build a template. It is even more work for webdesigners.Code:<ul class="ajax-rating-indexu" style="width:74px;"> <span id="price_message_place" style="clear:both;display:block;text-align:center;"></span> <div style="background:#A3BDD4">(portaldex) ...
I wonder about the nicecoder team. Why you don't use a CSS Framework at all? F.e. the 960 Grid System (960 Grid System) is a very powerful library. It would make building new templates so easy. Please have a look on it.
Some other reasons are the updates. Do you really check everything before you release new files in svn or in updates? F.e. the Indexu 1.3.3 release. So many people said, there are wrong / old files in it, but it took about 2 days to fix it. Same goes for the password reset function where so many users have problems with it. Even today you submitted new files to SVN. Do you checked them? No. Looks like you only used a search & replace software.
When you use the egold payment, you will get a error message:
Now you know why.PHP Code:<?phpphp echo $egold_payee_account ?>">
Compared Indexu, a expensive software, to other free open source scripts, you've failed. You will never see such bugs on a real professional script like wordpress, phpbb, drupal, ... Because, Indexu is a paid script, you'll have a higher responsibility to your customers. So please be more careful and test everything twice.
Error messages are the next point on my list. In a real business enviroment you will never get any error messages. In application.php you are setting
the right way is to set:PHP Code:error_reporting(E_ALL ^ E_NOTICE);
When a error is displayed, there is always the true server path. Bad guys can use this to gather informations about your server. Luckily there are so many ways a user can generate an error. I only found out, you can generate an error, if you are calling a non existent block file via browser.PHP Code:error_reporting(0);
F.e. http://www.example.com/blocks/123456.php
Better use an exeption handling system to log or mail the errors and turn the build in error_reporrting OFF.Code:Warning: Smarty error: unable to read resource: "/var/www/www.example.com/themes/generic.html" in /var/www/www.example.com/lib/smarty/Smarty.class.php on line 1088
The last point is something, I got a bad headache when I saw it. This IS a real problem. Indexu is using some 3rd party script. That's no problem at all, because there are many useful helpers. But please, PLEASE update them to the latest version.
F.e. you are using Smarty 2.6.10. Release date was 5-August-2005. A nearly 4 years (!!!) old script. There were so many bugfixes, security fixes and performance improvements I could not understand why you dont upgraded it. Some words from the Smarty Homepage: "you should upgrade immediately". Actual Version is 2.6.22 and v3 is on its way.
Same goes for the phpMailer class. Not even a stable version. You are using Version: 2.0.0 rc1. - a release candidate. Actual Version is PHPMailer version 5.0.0
"All new class.smtp.php that smaller and fast. The package is a signficant release that fully exploits PHP5/6 Exception Handling with exceptional ability to pass back the captured errors to your own scripts."
Do you remember what I said about exeption handling? That's the way you have to go.
You cant say, Indexu is hacker proof, when your using old, buggy libraries with confirmed security holes.
There are some more coding flaws but since I don't get paid to do the NC teams job...
Let me go back to my first sentence. I have no intension to blame anyone but I think it is about time to fix some things.
Indexu is a nice script, but if you don't do your work properly, Indexu will never get to a higher, really professional level. And that is, what we're all want to.
thanks for reading




