Form Handling and Validation

📘 CodeIgniter 👁 29 views 📅 Dec 22, 2025
⏱ Estimated reading time: 2 min

Form Handling and Validation in CodeIgniter (CodeIgniter 4)

CodeIgniter provides powerful form handling and validation tools to safely collect, validate, and process user input.


1. Creating a Form (View)

Load Form Helper

helper('form');

Form Example

<!-- app/Views/register.php --> <?= form_open('register/save') ?> <input type="text" name="name"> <input type="text" name="email"> <input type="password" name="password"> <button type="submit">Register</button> <?= form_close() ?>

2. Handling Form Submission (Controller)

class Register extends BaseController { public function save() { $data = $this->request->getPost(); print_r($data); } }

3. Form Validation Basics

Validation Rules in Controller

public function save() { $rules = [ 'name' => 'required|min_length[3]', 'email' => 'required|valid_email', 'password' => 'required|min_length[6]' ]; if (! $this->validate($rules)) { return view('register', [ 'validation' => $this->validator ]); } echo "Form submitted successfully!"; }

4. Displaying Validation Errors (View)

<?php if (isset($validation)): ?> <?= $validation->listErrors() ?> <?php endif; ?>

5. Sticky Form Values (Preserve Input)

<input type="text" name="name" value="<?= set_value('name') ?>">

6. Custom Validation Messages

$rules = [ 'email' => [ 'rules' => 'required|valid_email', 'errors' => [ 'required' => 'Email is required', 'valid_email' => 'Enter a valid email' ] ] ];

7. Validation Rules in Config File

Edit:

app/Config/Validation.php
public $register = [ 'name' => 'required|min_length[3]', 'email' => 'required|valid_email' ];

Use in controller:

if (! $this->validate('register')) { return redirect()->back()->withInput(); }

8. Redirect with Input & Errors

return redirect()->back() ->withInput() ->with('validation', $this->validator);

9. File Upload Validation

$rules = [ 'image' => 'uploaded[image]|max_size[image,1024]|is_image[image]' ];

10. CSRF Protection

Enable in:

app/Config/Filters.php

Form token:

<?= csrf_field() ?>

11. Validation in Models

protected $validationRules = [ 'email' => 'required|is_unique[users.email]' ];

Best Practices

✅ Always validate user input
✅ Use CSRF protection
✅ Escape output (esc())
❌ Never trust user input


Summary

  • Form Helper simplifies form creation

  • Validation library ensures secure input

  • Supports custom rules & messages

  • Integrates with controllers & models


🔒 Some advanced sections are available for Registered Members
Register Now

Share this Post


← Back to Tutorials

Popular Competitive Exam Quizzes