A new customer called us today and told us that he’s not able to see the login form on the backend, so when he goes to http://ourclientjoomlawebsite.com/administrator/, he just doesn’t see anything at all. We were nearly confident that this problem will be very easy to fix because we’ve seen it many times before – we have even discussed this problem and all its variations – but the thing is, the variations of a Joomla problem can be endless, and what we thought would take us merely 10 minutes to fix took us almost 2 hours. Let us explain the things that we did to discover the source of the problem (in order):
- We viewed the HTML source code of the login page to see if there is something like <body style=”display:none”> in the HTML and there wasn’t (one of the websites that we worked on before had this code maliciously inserted to hide the admin login from the website owner). In fact, the HTML source code was completely empty – not a single character was in the source code!
-
We enabled error debugging to see if there’s any error on the website, but there were none.
-
We checked to see if the login component com_login was enabled in the table jos_extensions, and it was.
-
We checked to see if the module mod_login was enabled, and it was also enabled.
-
We then checked to see if the directory containing the module mod_login exists and has all the files – and that all the files in that directory are not tampered with. Everything seemed OK for us.
We then started debugging the index.php file under the administrator directory line by line to see if there’s anything wrong anywhere. Every line was doing what it should be doing, except for this one (which is by far the most critical – as it’s the one responsible for the actual display of the form):
$app->render();
What’s weird about that was that $app (as an object) had the right information. So, we took a closer look at what the function render (located in the file administrator/includes/application.php) does…
The function render simply gets the template for the administrator interface, parses it, and then assigns the body of the page to that template. We printed that template and we discovered that the website wasn’t using a standard template – but rather a custom one. We checked to see if the folder for the template existed, and it did. However, the permissions on that template were none (000), which means that no one can read from it, no one can write to it, and no one can execute anything in that template. We changed the permissions of the template to 444 and (yes, you guessed it!) the login form was working!
Now if you’re reading this post because you have the same problem (and we suspect that you do), and if you can’t solve this problem by yourself, then fear not – we’re here for you. Why don’t you contact us and let us fix this problem for you in no time. Oh, and fear not, our fees are very competitive.
[…] readers, then most likely you know that we have discussed the blank page on login issue several times before – so solving the problem must be straightforward, right? Well, unfortunately, it was […]