Login Problems

This guide will help you to solve the most common problems related to login to the backend.

Can't login to the backend / can't find the backend

If you look into your templates folder ("/site/templates/") there should be a file called "admin.php". This is not your path to backend. Don't try to open it directly via URL. All you will get is a 403 error or a blank page.

In probably 99% of cases you should be able to reach the ProcessWire backend by entering http://yoursite.com/processwire/ or if you installed ProcessWire into a subdir by entering http://yoursite.com/subdir/processwire/.

Of course this will only work if you didn't changed the admin URL while installing ProcessWire. In this case it of course would be http://yoursite.com/custom-name/ or http://yoursite.com/subdir/custom-name/.

If you changed it and forgot it there are to ways to find it again. The easier way is to add the following code somewhere in a front-end template file (laying in "/site/templates/"):

<?php
echo 'The admin path is: '.$config->urls->admin;
?>

Afterwards the admin path should be shown when you're opening the front-end / the website. Don't forget to remove it again.

Second way is to directly look into your database with a software like phpMyAdmin or Adminer. Open the database you installed ProcessWire into and go to the "pages" table. The "name" field of the entry with the id "2" will contain the admin path.

If you still can't reach the backend - even if you're entering the right URL - it's probably a problem with your htaccess configuration. This topic should help you: "URLs not working" (crosslink to other troubleshooting guide).

"This request was aborted because it appears to be forged."

This error often appears after you changed your site's developement enviroment. Like uploading it from "localhost" (local development) to a "live server". There are a lot of things which might solve this problem. In the following they are ordered by a mix of "easy to apply" and "most common solution":

  • The easiest thing you can do is to check if you have enough space left on your server. Because each login creates a "session file" which obviously can't be created if no space is left. If enough space should be left continue with next step.
  • Make sure that the following directories are existing (if they aren't existing you just have to create them):
    /site/assets/cache/
    /site/assets/logs/
    /site/assets/sessions/
    ... and that the file permissions (crosslink to file-permissions) are right:
    /site/assets/: recursively 777 (probably only for testing purpose because it's not really safe)
    /site/config.php: readable 644
  • If this shouldn't work continue with the next step. In this one we're going to disable "CSRF protection" and "session fingerprints". It's really easy to do this. Just open "/site/config.php" (you're probably have to download it, change it and reupload it if you're connected to your server via a FTP account) and change the following lines to this:
    $config->protectCSRF = false;
    $config->sessionChallenge = false;
    $config->sessionFingerprint = false;
    If the lines shouldn't exist - add them. If it should work afterwards try to set as many of them back to "true" as possible.
  • If the steps before shouldn't work we're probably going to need some file replacements. If you are using ProcessWire 2.4 download the "index.php" of the latest ProcessWire "dev" version and replace your current "index.php" (which lays in the root directory of your ProcessWire installation) with it. If this shouldn't be enough redownload the regular ProcessWire download (just click this link (grab.pw)) and take it's wire folder to replace the one laying in your current installation. Don't worry - all your uploads modules and templates should lay in the "site" folder so nothing will be lost afterwards.
  • If nothing should work turn on debug mode by changing the following line to "true" in "/site/config.php"
    $config->debug = true;
    If an error should appear copy it and ask in the forum. If there isn't an error description go to the forum and ask, too.

Forgot password / "Login failed" after upload

If you forgot your password or you somehow can't login after uploading your ProcessWire installation from "localhost" (local development) to a "live server" you may have to reset your password. Dont worry - it's really easy with ProcessWire. Just put one (they are doing the same) of the following codes in one of your template files and open a page which uses this template so the code gets executed:

// long form
$u = $users->get('admin'); // or whatever your username is
$u->of(false);
$u->pass = 'your-new-password';
$u->save();
// short form (jQuery like approach)
$users->get("admin")->setOutputFormatting(false)->set('pass', 'your-new-password')->save();

Next: URLs not working »


  1. 500 Internal Server Error
  2. Login Problems
  3. URLs not working
  4. File related problems

Comments

  • David L. Kaplan

    David L. Kaplan 4 years ago 82

    Another cause of "This request was aborted because it appears to be forged" is a too many stale session files that didn't get garbage collected by PW because of some interaction with Ubuntu servers. Adding a couple of lines of php to the config usually fixes it apparently:

    ini_set("session.gc_probability", 1);
    ini_set("session.gc_divisor", 100);

    See:
    https://processwire.com/talk/topic/6001-this-request-was-aborted-because-it-appears-to-be-forged/?p=58636
    https://processwire.com/talk/topic/5796-session-handler-database-do-not-delete-old-sessions/?p=56596

  • Thomas Grahlke

    Thomas Grahlke 3 years ago 32

    On a 1 & 1 domain it works only with the lowest possible in the .htaccess:

    # -----------------------------------------------------------------------------------------------
    # Pass control to ProcessWire if all the above directives allow us to this point.
    # For regular VirtualHosts (most installs)
    # -----------------------------------------------------------------------------------------------
    # RewriteRule ^(.*)$ index.php?it=$1 [L,QSA]

    # -----------------------------------------------------------------------------------------------
    # 500 NOTE: If using VirtualDocumentRoot: comment out the one above and use this one instead.
    # -----------------------------------------------------------------------------------------------
    RewriteRule ^(.*)$ /index.php?it=$1 [L,QSA]

  • Peter Knight

    Peter Knight 3 years ago 10

    Just wanted to add to this as Ive spent the morning with a 500 error and finally resolved.
    1. Ensure you have debug mode on in your config file. $config->debug = true;
    2. In my case, I had the dbhost in config set to localhost. Make sure your new host doesn't use something different.

Post a Comment

Your e-mail is kept confidential and not included with your comment. Website is optional.