Form Validation হলো CodeIgniter এর একটি গুরুত্বপূর্ণ ফিচার, যা ব্যবহারকারীর ইনপুট ডেটা যাচাই করার জন্য ব্যবহৃত হয়। এটি ডাটাবেসে ডেটা সংরক্ষণের আগে নিশ্চিত করে যে ইনপুট সঠিক এবং নিরাপদ। CodeIgniter এ Form Validation কার্যকর করার জন্য বিভিন্ন Rules এবং Methods সরবরাহ করা হয়েছে।
Form Validation এর প্রধান উপাদান
- Rules (নিয়ম): ইনপুট যাচাই করার জন্য নির্ধারিত নিয়ম।
- Methods (পদ্ধতি): Validation পরিচালনা করার জন্য সরবরাহকৃত মেথড।
Form Validation Rules
Form Validation Rules হলো ডেটার ধরন এবং বৈধতা যাচাই করার জন্য ব্যবহৃত প্রি-ডিফাইন্ড নিয়ম। নিচে গুরুত্বপূর্ণ কয়েকটি Rules এর উদাহরণ দেওয়া হলো:
১. required
- ইনপুট ফিল্ড খালি রাখা যাবে না।
উদাহরণ:
$this->form_validation->set_rules('name', 'Name', 'required');
২. min_length
- ইনপুট ফিল্ডের মিনিমাম দৈর্ঘ্য।
উদাহরণ:
$this->form_validation->set_rules('password', 'Password', 'required|min_length[8]');
৩. max_length
- ইনপুট ফিল্ডের সর্বোচ্চ দৈর্ঘ্য।
উদাহরণ:
$this->form_validation->set_rules('username', 'Username', 'required|max_length[20]');
৪. valid_email
- ইনপুট একটি বৈধ ইমেইল হতে হবে।
উদাহরণ:
$this->form_validation->set_rules('email', 'Email', 'required|valid_email');
৫. numeric
- ইনপুট ফিল্ডে শুধুমাত্র সংখ্যা থাকতে হবে।
উদাহরণ:
$this->form_validation->set_rules('age', 'Age', 'required|numeric');
৬. matches
- ইনপুট ফিল্ডের মান অন্য একটি ফিল্ডের মানের সাথে মিলতে হবে।
উদাহরণ:
$this->form_validation->set_rules('password', 'Password', 'required'); $this->form_validation->set_rules('passconf', 'Password Confirmation', 'required|matches[password]');
৭. is_unique
- ইনপুট ফিল্ডে এমন একটি মান থাকতে হবে, যা ডাটাবেসে ইউনিক।
উদাহরণ:
$this->form_validation->set_rules('username', 'Username', 'required|is_unique[users.username]');
Form Validation Methods
CodeIgniter এ Form Validation পরিচালনা করার জন্য কয়েকটি গুরুত্বপূর্ণ মেথড ব্যবহার করা হয়।
১. set_rules()
- নির্দিষ্ট ফিল্ডের জন্য Validation Rules সেট করতে ব্যবহার করা হয়।
উদাহরণ:
$this->form_validation->set_rules('name', 'Name', 'required|min_length[3]');
২. run()
- Validation Rules কার্যকর করার জন্য ব্যবহৃত হয়।
উদাহরণ:
if ($this->form_validation->run() == FALSE) { $this->load->view('form_view'); } else { echo "Validation Successful!"; }
৩. set_message()
- কাস্টম এরর মেসেজ নির্ধারণ করার জন্য ব্যবহার করা হয়।
উদাহরণ:
$this->form_validation->set_message('required', '{field} ফিল্ডটি পূরণ করা বাধ্যতামূলক।');
৪. error_array()
- সমস্ত এরর মেসেজ একটি অ্যারে হিসেবে পেতে ব্যবহৃত হয়।
উদাহরণ:
$errors = $this->form_validation->error_array(); print_r($errors);
৫. error_string()
- সমস্ত এরর মেসেজ একটি স্ট্রিং হিসেবে পেতে ব্যবহৃত হয়।
উদাহরণ:
echo $this->form_validation->error_string();
উদাহরণ: একটি সম্পূর্ণ Form Validation
Controller
class User extends CI_Controller {
public function register() {
$this->load->library('form_validation');
$this->form_validation->set_rules('name', 'Name', 'required|min_length[3]');
$this->form_validation->set_rules('email', 'Email', 'required|valid_email');
$this->form_validation->set_rules('password', 'Password', 'required|min_length[8]');
$this->form_validation->set_rules('passconf', 'Password Confirmation', 'required|matches[password]');
if ($this->form_validation->run() == FALSE) {
$this->load->view('register_form');
} else {
echo "Registration Successful!";
}
}
}
View (register_form.php)
<form method="post" action="<?php echo base_url('user/register'); ?>">
<label for="name">Name:</label>
<input type="text" name="name" value="<?php echo set_value('name'); ?>">
<?php echo form_error('name'); ?>
<label for="email">Email:</label>
<input type="text" name="email" value="<?php echo set_value('email'); ?>">
<?php echo form_error('email'); ?>
<label for="password">Password:</label>
<input type="password" name="password">
<?php echo form_error('password'); ?>
<label for="passconf">Confirm Password:</label>
<input type="password" name="passconf">
<?php echo form_error('passconf'); ?>
<button type="submit">Register</button>
</form>
Form Validation এর সুবিধা
- ইনপুট যাচাই সহজ এবং সুরক্ষিত।
- ডাটাবেস সংরক্ষণের আগে ইনপুট যাচাই নিশ্চিত করা।
- প্রি-ডিফাইন্ড Rules ব্যবহার করে দ্রুত ডেভেলপমেন্ট।
- কাস্টম মেসেজ ব্যবহারযোগ্য।
Form Validation CodeIgniter এর একটি শক্তিশালী ফিচার, যা ওয়েব অ্যাপ্লিকেশনে ইনপুট যাচাইয়ের একটি নিরাপদ এবং কার্যকর সমাধান প্রদান করে।
Read more