PHP Form Validation (ফর্ম যাচাইকরণ)

যখনই কোনো ইউজার ফর্মের মাধ্যমে তথ্য পাঠায়, তখন সেই ইনপুট যাচাই (validation) করা অপরিহার্য। এটি ইউজার ভুল তথ্য প্রদান করলে তা ধরতে সাহায্য করে এবং নিরাপত্তা নিশ্চিত করে।

কেন ফর্ম ভ্যালিডেশন প্রয়োজন?

  • ভুল তথ্য আটকাতে
  • ইনপুট ফিল্ড খালি থাকলে তা জানাতে
  • নির্দিষ্ট প্যাটার্ন অনুসরণ করছে কিনা তা চেক করতে (যেমন: ইমেইল)
  • সিকিউরিটি নিশ্চিত করতে (XSS, SQL Injection ইত্যাদি থেকে বাঁচতে)

উদাহরণ: একটি সাধারণ ফর্ম এবং PHP Validation

HTML ফর্ম (form.html)

<form action="validate.php" method="post">
  নাম: <input type="text" name="name"><br>
  ইমেইল: <input type="text" name="email"><br>
  <input type="submit" value="জমা দিন">
</form>

PHP স্ক্রিপ্ট (validate.php)

<?php
$name = $email = "";
$nameErr = $emailErr = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (empty($_POST["name"])) {
        $nameErr = "নাম আবশ্যক।";
    } else {
        $name = htmlspecialchars($_POST["name"]);
        if (!preg_match("/^[a-zA-Z-' ]*$/", $name)) {
            $nameErr = "শুধুমাত্র অক্ষর এবং স্পেস ব্যবহার করুন।";
        }
    }

    if (empty($_POST["email"])) {
        $emailErr = "ইমেইল আবশ্যক।";
    } else {
        $email = htmlspecialchars($_POST["email"]);
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            $emailErr = "সঠিক ইমেইল ফরম্যাট নয়।";
        }
    }

    if (empty($nameErr) && empty($emailErr)) {
        echo "নাম: $name <br>";
        echo "ইমেইল: $email";
    } else {
        echo "ভুল আছে: <br>$nameErr <br>$emailErr";
    }
}
?>

ভ্যালিডেশন নিয়মের তালিকা (টেবিলে)

যাচাইকরণ পদ্ধতি
খালি ইনপুট চেক empty() ব্যবহার করে
ইমেইল ঠিকানা চেক filter_var(..., FILTER_VALIDATE_EMAIL)
নামের অক্ষর চেক preg_match() দিয়ে প্যাটার্ন চেক
ভুল ইনপুট ফিল্টার htmlspecialchars() দিয়ে

সিকিউরিটি বিষয়

ইউজারের ইনপুট সবসময় htmlspecialchars()trim() ব্যবহার করে নিরাপদ করুন। এটি স্ক্রিপ্ট ইনজেকশন প্রতিরোধে সহায়তা করে।

উপসংহার

PHP Form Validation একটি ওয়েব ফর্মে ডেটা সঠিকভাবে গ্রহণের পূর্বশর্ত। এটি শুধু ইউজারের ভুল আটকায় না, বরং সাইটের নিরাপত্তাও নিশ্চিত করে।


 

Leave a Reply