In CodeIgniter projects, You can validate the form on both the server side and client side and show error messages on forms.
In this tutorial guide, we will show you how to implement server-side form validation and display error messages on form in CodeIgniter projects.
How to Validate Form on Server Side in Codeigniter
Here are steps:
- Download Codeigniter Latest
- Basic Configurations
- Create Database With Table
- Setup Database Credentials
- Make New Controller
- Create Views
- Start Development server
- Conclusion
Download Codeigniter Project
In this step, we will download the latest version of CodeIgniter from official CI website, and then unzip it on xampp/htdocs/ folder.
Configuration Base URL
Set base URL in application/config/config.php
file:
$config['base_url'] = 'http://localhost/demo/';
Create Table in Database
Use the following SQL query to create a table to store the form data in the database:
CREATE TABLE users (
id int(11) NOT NULL AUTO_INCREMENT COMMENT 'Primary Key',
first_name varchar(100) NOT NULL COMMENT 'Name',
last_name varchar(100) NOT NULL COMMENT 'Name',
email varchar(255) NOT NULL COMMENT 'Email Address',
contact_no varchar(50) NOT NULL COMMENT 'Contact No',
created_at varchar(20) NOT NULL COMMENT 'Created date',
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='datatable demo table' AUTO_INCREMENT=1;
Setup Database Credentials
Add database details like db username, password and user in application/configuration/database.php
file:
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'demo',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
Create Controller
Create a controller name Users.php in Application/Controllers folder to handle form submission and validation on server side:
<?php
class Users extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->library(array('form_validation','session'));
$this->load->helper(array('url','html','form'));
$this->load->database();
}
public function index()
{
$this->load->view('form_validation');
}
public function post_validate()
{
$this->form_validation->set_rules('first_name', 'First Name', 'required');
$this->form_validation->set_rules('last_name', 'Last Name', 'required');
$this->form_validation->set_rules('contact_no', 'Contact No', 'required');
$this->form_validation->set_rules('email', 'Email', 'required');
$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
$this->form_validation->set_message('required', 'Enter %s');
if ($this->form_validation->run() === FALSE)
{
$this->load->view('form_validation');
}
else
{
$data = array(
'first_name' => $this->input->post('first_name'),
'last_name' => $this->input->post('last_name'),
'contact_no' => $this->input->post('contact_no'),
'email' => $this->input->post('email'),
);
$insert = $this->db->insert('users', $data);
if ($insert) {
$this->load->view('success');
} else {
redirect( base_url('users') );
}
}
}
}
Create Views
Create form_validation.php file in application/views/ folder to allow users to submit form on server:
<!DOCTYPE html>
<html>
<head>
<title>Codeigniter Form Validation</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<br>
<div class="row">
<div class="col-md-9">
<form action="<?php echo base_url('users/post_validate') ?>" method="post" accept-charset="utf-8">
<div class="form-group">
<label for="formGroupExampleInput">First Name</label>
<input type="text" name="first_name" class="form-control" id="formGroupExampleInput" placeholder="Please enter first name">
<?php echo form_error('first_name'); ?>
</div>
<div class="form-group">
<label for="formGroupExampleInput">Last Name</label>
<input type="text" name="last_name" class="form-control" id="formGroupExampleInput" placeholder="Please enter last name">
<?php echo form_error('last_name'); ?>
</div>
<div class="form-group">
<label for="email">Email Id</label>
<input type="text" name="email" class="form-control" id="email" placeholder="Please enter email id">
<?php echo form_error('email'); ?>
</div>
<div class="form-group">
<label for="mobile_number">Mobile Number</label>
<input type="text" name="contact_no" class="form-control" id="contact_no" placeholder="Please enter mobile number" maxlength="10">
<?php echo form_error('contact_no'); ?>
</div>
<div class="form-group">
<button type="submit" id="send_form" class="btn btn-success">Submit</button>
</div>
</form>
</div>
<div class="col-md-3">
</div>
</div>
</div>
</body>
</html>
Now we need to create success.php file, so go to application/views/ and create success.php file. And put the below code here.
<!DOCTYPE html>
<html>
<head>
<title>Codeigniter Form Validation</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<h1> Thank You for Registered</h1>
</div>
</body>
</html>
Test This Project
Go to the browser and hit below the url.
http://localhost/demo/users
Conclusion
In this codeigniter server side form validation tutorial, We have successfully validate form data on server side. After successfully validate data on server side, we send to users on success page.
You may like:
- Registrtion form validation using jquery validator
- jQuery Form Validation Custom Error Message
- jQuery AJAX Form Submit PHP MySQL
- Simple Registration Form in PHP with Validation
- jQuery Ajax Form Submit with FormData Example
If you have any questions or thoughts to share, use the comment form below to reach us.
how to validate on modal