Secure Registration and Login Script with PHP and MySQL using CodeIgniter and Ion Auth

Submitted by: 
Visitors have accessed this post 17687 times.

This is a secure registration and login form created using CodeIgniter and Ion Auth.

I highly recommend using Ion Auth to secure the login form of your site as this is already tested and proven to prevent SQL Injection.

In addition, I use Bootstrap to improve the design of the form.

Here’s the instruction on how to setup CodeIgniter, Ion Auth and Bootstrap.

1. Download CodeIgniter

  • Extract the files to your server. Example if you’re using XAMPP, extract it to D:\xampp\htdocs

2. Download Ion Auth

  • Extract the files under application folder. Example if you extract CodeIgniter in D:\xampp\htdocs\ci-ionauth-reg then extract Ion Auth under D:\xampp\htdocs\ci-ionauth-reg\application

3. Download Bootstrap

  • Extract Bootstrap under D:\xampp\htdocs\ci-ionauth-reg. You can choose to create another folder as long as it is relative to the path of the CodeIgniter file. Example, extract the folder under D:\xampp\htdocs\ci-ionauth-reg\assets or D:\xampp\htdocs\ci-ionauth-reg\bootstrap.

Configure CodeIgniter and Ion Auth

Before we configure CodeIgniter, first import the SQL file included with Ion Auth.

Open phpMyAdmin as follows:


Create a database name loginreg (short for login and registration).
Click Import tab and browse the file located under D:\xampp\htdocs\ci-ionauth-reg\application\sql. Choose the file named ion_auth.sql if you’re using MySQL as your database.

Open config.php under D:\xampp\htdocs\ci-ionauth-reg\application\config folder. Change the following info into:

  1. $config['base_url'] = 'http://localhost:8080/ci-ionauth-reg';
  2. $config['index_page'] = '';

Open database.php under D:\xampp\htdocs\ci-ionauth-reg\application\config folder. Change the following info into:

  1. 'hostname' => 'localhost',
  2. 'username' => 'root',
  3. 'password' => '',
  4. 'database' => 'loginreg',

Note: I just change some few lines of code of Auth.php under controllers folder like:

  1. $this->_render_page('header_view', $this->data);
  2. $this->_render_page('auth/login', $this->data);
  3. $this->_render_page('footer_view', $this->data);

header_view and footer_view includes the code to include Bootstrap file.

To open the login form and registration form, visit the following URLs:


Username: [email protected]
Password: password

You can also change the registration URL from http://localhost/ci-ionauth-reg/auth/create_user to http://localhost/ci-ionauth-reg/register by setting the routes.

Example, open routes.php under config folder.

$route['register'] = 'auth/create_user';

You can add the line after

$route['default_controller'] = 'welcome';

If you have any question, don’t hesitate to as under the comments below.

Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. After downloading it, you will need a program like Winzip to decompress it.

Virus note: All files are scanned once-a-day by for viruses, but new viruses come out every day, so no prevention program can catch 100% of them.


1. Re-scan downloaded files using your personal virus checker before using it.
2. NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.


After configured everything with your instruction, when i tried to access the login or registration page, it shows this:

"Not Found
The requested URL /myportal/auth/login was not found on this server."

I named my CodeIgniter folder as "myportal". Please, help me out.
Thank you.

Forgot password is not working. It shows the following error:
Unable to email the Reset Password link
Please help in resolving this issue.

Make sure you have mail system working on your server.

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • You may insert videos with [video:URL]
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <table> <tr> <td> <th> <img> <h1> <h2> <h3> <iframe> [video]
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <asp>, <c>, <cpp>, <csharp>, <css>, <html4strict>, <java>, <javascript>, <mysql>, <php>, <python>, <sql>, <vb>, <vbnet>. The supported tag styles are: <foo>, [foo].
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.