1. Codeigniter Framework (CodeIgniter Framework Tutorial) Basic Tutorials of Codeigniter Framework
  2. কোডইগনাইটার ইনস্টল (CodeIgniter Install Tutorial in Bangla)
  3. How to create First Application in CodeIgniter
  4. কোডইগনাইটারের URL স্ট্রাকচার (structure of codeigniter)
  5. Codeigniter দিয়ে query করা এবং result দেখা (CI Query & Show Results)
  6. Database থেকে Data দেখা (CI Fetch Data from Database)
  7. Model তৈরী এবং কন্ট্রোলারে Access (Create Model & Access in Controller)
  8. Codeigniter দিয়ে ডেটাবেসে data ঢুকানো (CodeIgniter Insert Data to Database)
  9. Form দিয়ে ডেটাবেসের data সম্পাদনা (Data Edit in Database Via Form | Codeigniter Tutorials)
  10. ডেটাবেসের data delete (Data Delete in Database | Codeigniter Tutorials) | SP Foundationbd
  11. Form Validation টিউটোরিয়াল (CI Form Validation Tutorial | Codeigniter Tutorials) | SP Foundation
  12. Form validation tutorials (CI Form Validation Tutorial) - আরও উন্নত validation
  13. Codeigniter bootstrap integration এবং best প্রাকটিস | SP Foundationbd
  14. Codeigniter পেজিনেশন Tutorials (CodeIgniter Pagination Tutorial) | SP Foundationbd
  15. কোডইগনাইটার pagination tutorials (CodeIgniter Pagination Tutorial) - ২য় পদ্ধতিতে pagination
  16. Codeigniter সেশন Management (Session Management CodeIgniter) part one
  17. Codeigniter session ম্যানেজমেন্ট (Session Management CodeIgniter) - সেশন ড্রাইভার part two
  18. কোডইগনাইটার file আপলোড (CodeIgniter File Upload)
  19. কোডইগনাইটার Ajax টিউটোরিয়াল (CodeIgniter Ajax Tutorial) | SP Foundationbd
  20. কোডইগনাইটার URI রাউটিং টিউটোরিয়াল (CodeIgniter URI Routing Bangla Tutorials) | SP Foundationbd
  21. কোডইগনাইটারে একসাথে একাধিক ডেটাবেস ব্যবহার (Use Multiple Database Together in CodeIgniter)

Form Validation টিউটোরিয়াল (CI Form Validation Tutorial | Codeigniter Tutorials) | SP Foundation

** এখন পর্যন্ত করা (এটা সহ) টিউটোরিয়ালগুলির সব কোড ডাউনলোড করুন (এডিট মেথডেও ফর্ম ভেলিডেশন সহ)। একটা কথা বলে রাখি তাহল এই টিউটোরিয়ালে ব্যবহৃত অতিরিক্ত কোডগুলিই শুধু বুঝানোর জন্য এখানে উল্লেখ করব কারন পূর্নাঙ্গ কোড দিলে জায়গা কম তাই সমস্যা হয়। তাছাড়া পূর্নাঙ্গ কোড ডাউনলোড করে দেখতে পারেন।

 কোডইগনাইটারে form ভেলিডেশনের জন্য একটি ক্লাস আছে। ১ ডজনেরও বেশি মেথড এবং option আছে। আপনার এপ্লিকেশনে ফর্মে যত ধরনের ফিল্ড আছে সব ধরনের ফিল্ডের validation করা সম্ভব। যেমন সংখ্যা কিনা, বৈধ ইমেইল কিনা, ড্রপডাউন সিলেক্ট করেছে কিনা, ফিল্ড ফাকা রেখেছি কিনা ইত্যাদি সকল কাজ এই ক্লাস দিয়ে করতে পারবেন। ফর্ম ভেলিডেশনের জন্য সব কাজ কন্ট্রোলারেই করতে হবে শুধু এরর মেসেজগুলি ভিউ ফাইলে দেখাতে হবে। যাই হোক ফর্ম সাবমিট করলে যে কন্ট্রোলারে যাবে সেই কন্ট্রোলারে আগে ফর্ম ভেলিডেশনের লাইব্রেরী লোড করে নিতে হবে। যেমন এর আগে ডেটাবেসে ইনসার্টের টিউটোরিয়ালে যে Form টি তৈরী করেছি সেই ফর্মটিই এবার ভেলিডেশন ছাড়া যাতে user submit করতে না পারে সেটা দেখাব। প্রথমে Users কন্ট্রোলারের create মেথডে library load করতে হবে যেমন

1.$this->load->library('form_validation');

এরপর ঠিক করতে হবে কোন কোন field validation করব এবং কি কি validation হবে। যেমন ধরুন আমি চাচ্ছি ফর্মটির "username" ফিল্ডটি আবশ্যক, আর ইমেইল ফিল্ডে বৈধ email হতে হবে, এমন email হবে যেটা আগে কেউ দেয়নি তথা ইউনিক মেইল এবং ইমেইল ফিল্ড বাধ্যতামুলক অর্থ্যাৎ পূরন করতেই হবে না হলে form submit হবেনা। প্রত্যেকটি ফিল্ডের name attribute দিয়ে set_rules() মেথডের মাধ্যমে এসব validation সেট করা যায়, যেমন

1.$this->form_validation->set_rules('username', 'Username', 'required');

2.$this->form_validation->set_rules('email', 'Email', 'required|valid_email|is_unique[users.email]');

ব্যাখ্যা: form_valdation ক্লাসের একটি মেথড হল set_rules(), এই মেথডে ১ প্যারামিটার ফিল্ডের নাম যেমন উপরের কোডে দেখুন আমি ইউজার নাম ফিল্ডের name এট্রিবিউটের মান set_rules() এর ১ম প্যারামিটার হিসেবে দিয়েছি। একইভাবে ২য় set_rules() এর জন্যেও email ব্যবহার করেছি। set_rules() এর ২য় প্যারামিটার হল একটা স্ট্রিং যেটা ঐ ফিল্ডটিকে ভালভাবে উপস্থাপন করতে পারে, যেমন আমি দিয়েছি Username এবং Email. এই ২য় প্যরামিটার দিয়েই ভিউ ফাইলে এরর মেসেজ দেখাবে। তাই ইউজার বুঝবে এরুপ নাম দিতে হয়। ৩য় প্যারামিটার হল ভেলিডেশন rules যেমন "required", "numeric","valid_email" ইত্যাদি। rules গুলি বার (কিবোর্ডে Shift+ব্যাক স্লাশ) দিয়ে আলাদা করতে হয় যদি একাধিক rules একটা ফিল্ডের জন্য দিতে চান। যেমন উপরে দেখুন email ফিল্ডের জন্য আমি ৩টি rules এভাবে দিয়েছি। ৪র্থ একটি প্যারামিটার আছে সেটা Optional। এটা দিয়ে এরর মেসেজের লেখাটি কি হবে সেটা ঠিক করা যায়। এখানে দেখুন প্রচুর rules আছে এবং কোন rules কি জন্য ব্যবহার করতে পারেন সেটারও বর্ননা আছে।

set_rules() এর পর নিচের মত run() মেথড দিয়ে চেক করা যায় ইউজার ঠিকঠাক সব পূরন করেছে কিনা। ইউজার যদি ঠিকমত পূরন করে তাহলে $this->form_validation->run() এটা true রিটার্ন করবে অন্যথায় false, সুতরাং শুধুমাত্র true হলেই ডেটাবেসে data insert হবে তানাহলে আবার create view এ নিয়ে যাবে এবং কোথায় ভুল হয়েছে সেটা দেখাবে (ভুলটা দেখানোর code অবশ্য দিতে হবে view ফাইলে)। যেমন

1.if ($this->form_validation->run()) {

2.$this->db->insert('users', $user);

3.redirect('users');

4.} else {

5.$this->load->view('create', $data);

6.return;

7.}

এখন create ভিউতে নিয়ে কি কি ভুল হয়েছে সেটা দেখাতে form_error() নামে একটা function আছে, যে ফিল্ডের এরর সেই ফিল্ডের সাথেই দেখানো ভাল। যেমন email ফিল্ডের নিচের এভাবে দিন

1.<?php echo form_error('email', '<p class="error">', '</p>'); ?>

১ম প্যরামিটার হল ফিল্ডের নাম, ২য় প্যারামিটার হল "Error Message" এর আগে কি হবে এবং ৩য় প্যারামিটার হল "এরর মেসেজ" এর পর কি হবে। যেমন দেখুন উপরে আমি <p class="error"> ২য় প্যারামিটারে এবং ৩য় প্যরামিটারে </p> দিয়েছি এর মানে হল মেসেজটি যদি "The Email field must contain a valid email address." হয় তাহলে form_error() আউটপুট দেবে এরকম "<p class="error">The Email field must contain a valid email address.</p>"

এবার যাচাইয়ের জন্য ফর্মে ভুল input দিয়ে সাবমিট করুন, এরর দেখাবে। যেমন আমি ভুল ইমেইল দেয়াতে নিচের মত এরর দেখাচ্ছে

যদি চান ফিল্ডের নিচে নয় সব এরর একসাথে কোন এক জায়গায় দেখাবেন তাহলে ভিউ ফাইলে দিন <?php echo validation_errors();?>