FuelPHP-এর Form Class হল একটি খুবই শক্তিশালী এবং ব্যবহৃত ফিচার যা ওয়েব ফর্মের মাধ্যমে ডেটা গ্রহণ, ভ্যালিডেশন এবং ইনপুট ম্যানেজমেন্টকে সহজতর করে তোলে। এই ফর্ম ক্লাসটি HTML ফর্ম তৈরি করা, ফর্ম ভ্যালিডেশন, এবং সার্ভার সাইড ইনপুট স্যানিটেশন নিশ্চিত করতে সহায়তা করে।
এখানে FuelPHP এর Form Class ব্যবহার করার কিছু মূল ধারণা এবং উদাহরণ দেওয়া হয়েছে।
1. FuelPHP Form Class এর প্রাথমিক ধারণা
FuelPHP-এ Form Class ব্যবহার করে:
- HTML ফর্ম তৈরি করা।
- Form validation করা।
- CSRF (Cross-Site Request Forgery) Protection নিশ্চিত করা।
- Form input sanitization করা।
2. FuelPHP Form Class ব্যবহার করে ফর্ম তৈরি করা
FuelPHP তে ফর্ম তৈরি করার জন্য Form::open(), Form::input(), Form::submit(), Form::close() ইত্যাদি মেথড ব্যবহার করা হয়।
Form::open():
এটি একটি নতুন ফর্ম শুরু করতে ব্যবহৃত হয়। আপনি এখানে ফর্মের অ্যাকশন, মেথড, এবং অন্যান্য অ্যাট্রিবিউট কনফিগার করতে পারেন।
<?php echo Form::open(array('action' => 'form/submit', 'method' => 'POST')); ?>
এখানে action হল সেই URL যেখানে ফর্ম ডেটা সাবমিট হবে, এবং method হল HTTP মেথড যা ফর্ম সাবমিট করবে, যেমন POST বা GET।
Form::input():
এই মেথডটি ইনপুট ফিল্ড তৈরি করতে ব্যবহৃত হয়। আপনি ইনপুটের ধরন (যেমন টেক্সট, পাসওয়ার্ড, ইমেল) এবং অন্যান্য অ্যাট্রিবিউট কনফিগার করতে পারেন।
<?php echo Form::input('username', '', array('placeholder' => 'Enter your username')); ?>
এটি একটি টেক্সট ইনপুট ফিল্ড তৈরি করবে যার নাম username এবং একটি placeholder থাকবে 'Enter your username'।
Form::password():
পাসওয়ার্ড ইনপুট ফিল্ড তৈরি করতে এই মেথডটি ব্যবহার করা হয়।
<?php echo Form::password('password', '', array('placeholder' => 'Enter your password')); ?>
Form::submit():
ফর্ম সাবমিট বাটন তৈরি করতে Form::submit() ব্যবহার করা হয়।
<?php echo Form::submit('submit', 'Submit', array('class' => 'btn btn-primary')); ?>
এটি একটি সাবমিট বাটন তৈরি করবে যার নাম submit এবং ভ্যালু 'Submit' থাকবে। আপনি এখানে বাটনের ক্লাসও নির্ধারণ করতে পারেন।
Form::close():
ফর্মটি শেষ করার জন্য Form::close() ব্যবহার করা হয়।
<?php echo Form::close(); ?>
3. ফর্ম ভ্যালিডেশন (Form Validation)
FuelPHP তে ফর্ম ভ্যালিডেশন খুবই সহজ এবং কার্যকর। FuelPHP Validation Class এবং Form Validation ফিচার ব্যবহার করে ফর্মের ইনপুট ডেটা যাচাই করা যায়।
Validation Example:
- প্রথমে ফর্ম ডেটা ভ্যালিডেশনের জন্য Validation ক্লাস তৈরি করতে হবে।
$val = Validation::forge();
// Add validation rules
$val->add('username', 'Username')
->add_rule('required')
->add_rule('min_length', 4)
->add_rule('max_length', 50);
$val->add('password', 'Password')
->add_rule('required')
->add_rule('min_length', 6);
// Run the validation
if ($val->run()) {
// Process the form
echo "Form is valid!";
} else {
// Display errors
echo "Form has errors:";
foreach ($val->error() as $error) {
echo $error->get_message();
}
}
এখানে, username এবং password ইনপুট ফিল্ডের জন্য কিছু validation rules যোগ করা হয়েছে:
required: ইনপুটটি অবশ্যই থাকা উচিত।min_lengthএবংmax_length: ইনপুটের দৈর্ঘ্য কতটুকু হতে হবে তা নির্ধারণ করা।- যদি ফর্মে ভুল থাকে, তাহলে ইউজারকে সেই ত্রুটি বার্তা দেখানো হবে।
4. CSRF Protection:
FuelPHP তে CSRF (Cross-Site Request Forgery) প্রতিরোধের জন্য ফর্মে একটি সিকিউরিটি টোকেন ব্যবহার করা হয়। এটি ফর্ম সাবমিট করার সময় ইনপুটের মধ্যে একটি হিডেন ফিল্ড হিসেবে থাকে, যা পেজে সর্বশেষ দেখা সেশন থেকে নেওয়া হয়।
CSRF Token Example:
<?php echo Form::open(array('action' => 'form/submit', 'method' => 'POST')); ?>
<?php echo Form::csrf(); ?>
এই কোডটি একটি CSRF টোকেন তৈরি করবে, যা ফর্মের মধ্যে একটি হিডেন ফিল্ড হিসেবে যুক্ত হবে। যখন ফর্মটি সাবমিট হবে, তখন এটি সিস্টেমে ঐ টোকেনের সাথে মেলানো হবে, এবং সঠিক হলে ফর্মটি প্রসেস করা হবে।
5. FuelPHP Form Class Example
এখানে একটি পূর্ণাঙ্গ ফর্মের উদাহরণ দেওয়া হল:
<?php
// Controller action
class Controller_Form extends Controller
{
public function action_index()
{
// Display form
return Response::forge(View::forge('form/index'));
}
public function action_submit()
{
// Validation rules
$val = Validation::forge();
$val->add('username', 'Username')
->add_rule('required')
->add_rule('min_length', 4)
->add_rule('max_length', 50);
$val->add('password', 'Password')
->add_rule('required')
->add_rule('min_length', 6);
if ($val->run()) {
// Success
return Response::forge('Form submitted successfully');
} else {
// Failure: show errors
return Response::forge('Form has errors');
}
}
}
// View: form/index.php
echo Form::open(array('action' => 'form/submit', 'method' => 'POST'));
echo Form::label('Username', 'username');
echo Form::input('username', '', array('placeholder' => 'Enter username'));
echo Form::label('Password', 'password');
echo Form::password('password', '', array('placeholder' => 'Enter password'));
echo Form::csrf(); // CSRF token
echo Form::submit('submit', 'Submit', array('class' => 'btn btn-primary'));
echo Form::close();
এটি একটি সাধারণ ফর্ম যা ইউজারনেম এবং পাসওয়ার্ড ইনপুট নেবে এবং POST মেথডের মাধ্যমে form/submit অ্যাকশনটিতে পাঠাবে।
- CSRF সুরক্ষা অন্তর্ভুক্ত।
- Validation করা হচ্ছে ফর্মের ইনপুটের জন্য।
- সফল হলে বা ত্রুটি থাকলে প্রতিক্রিয়া (response) দেখানো হচ্ছে।
সারাংশ:
FuelPHP এর Form Class সহজে ফর্ম তৈরি এবং হ্যান্ডেল করার জন্য একটি শক্তিশালী টুল। এটি ইনপুট ফিল্ড তৈরি, ফর্ম ভ্যালিডেশন, CSRF protection, এবং ইনপুট স্যানিটেশন করতে সাহায্য করে। FuelPHP এর ফর্ম ক্লাস ব্যবহারে আপনি নিরাপদ, ব্যবহারকারী বান্ধব এবং সঠিকভাবে ভ্যালিডেটেড ফর্ম তৈরি করতে পারবেন।
Read more