পিএইচপি ফর্ম Name এবং Email ভ্যালিডেশন
এই অধ্যায়ে আমরা দেখবো কিভাবে name এবং e-mail -কে ভ্যালিড করা হয়। সুতরাং এই অধ্যায় শেষে আমরা ইউজারদেরকে এইচটিএমএল ফর্ম এর মাধ্যমে তথ্য ইনপুট দেওয়ার সময় সঠিক ফরম্যাট ব্যবহারে বাধ্য করতে পারবো।
পিএইচপি Name ভ্যালিডেশন
নিম্নের পিএইচপি কোড name ফিন্ড এর value শুধুমাত্র অক্ষর(letter) এবং whitespace কিনা চেক করে। যদি name ফিল্ড এর value ভ্যালিড বা সঠিক ফরম্যাট এর না হয় তাহলে সংশ্লিষ্ট ভ্যারিয়েবলে error মেসেজ স্টোর করে। আমরা echo
ব্যবহার করে স্ব-স্ব ফিল্ডের জন্য আউটপুট নিতে পারি।
$name = verify_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameError = "শুধুমাত্র অক্ষর(letters) এবং white space ইনপুট দিতে পারেন।";
}
প্যাটার্ন(pattern) অনুযায়ী স্ট্রিং খুঁজে বের করার জন্য preg_match()
ফাংশন ব্যবহার করা হয়। প্যাটার্ন(pattern) বিদ্যমান থাকলে true
রিটার্ন করে, অন্যথায় false
রিটার্ন করে।
পিএইচপি Email ভ্যালিডেশন
ইমেইল এড্রেস এর গঠন সঠিক কিনা যাচাই করার সবচেয়ে সহজ এবং নিরাপদ পদ্ধতি হলো পিএইচপি filter_var()
ফাংশন ব্যবহার করা।
এক্ষেত্রে ইমেইল এড্রেস এর গঠন যদি সঠিক না হয় তাহলে নিম্নের পিএইচপি কোড সংশ্লিষ্ট ভ্যারিয়েবলে error মেসেজ স্টোর বা জমা করেঃ
//Email এড্রেস এঁর গঠন সঠিক কিনা যাচাই এর কোড
$email = verify_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailError = "ইমেইল ফরম্যাট ভ্যালিড নয়";
}
পিএইচপি নাম এবং ইমেইল ভ্যালিডেশন
এখন আমরা একই স্ক্রিপট এর মধ্যে এইচটিএমএল ফর্ম এবং ফর্ম ভ্যালিডেশনের জন্য পিএইচপি কোড লিখবো এবং কোড নিচের মত দেখাবেঃ
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>পিএইচপি ফর্ম ভ্যালিডেশন</title>
</head>
<body>
<!-- এইচটিএমএল ফর্ম ভ্যালিডেশন এর জন্য পিএইচপি স্ক্রিপ্ট -->
<?php
//ফাঁকা ভ্যারিয়েবল ডিক্লেয়ারেশন
$name = $email = $gender = $messege = "";
$nameError = $emailError = $genderError = "";
//ফর্ম মেথড POST কিনা না চেক করে, POST হলে ভ্যালু সংগ্রহ করে।
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// POST ভ্যালু ফাঁকা কিনা চেক করে এরর ম্যাসেজ তৈরি করে
if (empty($_POST["name"])) {
$nameError = "নাম পূরন করা আবশ্যক";
} else {
//ভ্যালু ফাঁকা না হলে ভ্যালিডিটি যাচাই করে
$name = verify_input($_POST["name"]);
// নামের মধ্যে শুধুমাত্র অক্ষর(letter) এবং whitespace রয়েছে কিনা চেক করে
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameError = "শুধুমাত্র অক্ষর(letters) এবং white space ব্যবহার করুন";
}
}
//একই ভাবে নিচের কোডসমূহ বুঝার জন্য উপরের কমেন্ট লক্ষ্য করুন
if (empty($_POST["email"])) {
$emailError = "ইমেইল পূরন করা আবশ্যক";
} else {
$email = verify_input($_POST["email"]);
// ইমেইলের ফরম্যাট সঠিক আছে কিনা চেক করে
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailError = "ইমেইল ফরম্যাট ভ্যালিড নয়";
}
}
if (empty($_POST["gender"])) {
$genderError = "লিঙ্গ নির্ধারণ আবশ্যক";
} else {
$gender = verify_input($_POST["gender"]);
}
if (empty($_POST["messege"])) {
$messege = "";
} else {
$messege = verify_input($_POST["messege"]);
}
}
//ফর্ম ডেটা ভ্যালিডেশন কোড
function verify_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<h1> এইচটিএমএল ফর্ম ভ্যালিডেশন উদাহরণ</h1>
<!-- তথ্য ইনপুট দেওয়ার জন্য এইচটিএমএল ফর্ম -->
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
নামঃ <input type="text" name="name">
<span class="error">* <?php echo $nameError;?></span>
<br><br>
ই-মেইলঃ <input type="text" name="email">
<span class="error">* <?php echo $emailError;?></span>
<br><br>
লিঙ্গঃ <input type="radio" name="gender" value="male">পুরুষ
<input type="radio" name="gender" value="female">মহিলা
<span class="error">* <?php echo $genderError;?></span>
<br><br>
মেসেজঃ <textarea name="messege" rows="5" cols="40"></textarea>
<br><br>
<input type="submit" name="submit" value="Submit">
</form>
<!-- ফর্ম এর মাধ্যমে ইনপুটকৃত তথ্যের আউটপুট -->
<?php
echo "<h2>আপনার ইনপুটকৃত তথ্যঃ</h2>";
echo $name. "<br>";
echo $email. "<br>";
echo $gender. "<br>";
echo $messege. "<br>";
?>
</body>
</html>
উপরের উদাহরণে ফর্মের মধ্যে কোনো তথ্য ইনপুট না দিয়েও ফর্ম বাটনে মাউস ক্লিক করলে ফর্ম ডেটা সাবমিট হবে।
কিন্তু এইচটিএমএল ফর্ম এর আবশ্যক ইনপুট ফিল্ড ফাকা রাখলে ফর্ম সবমিটে কিভাবে বাধা প্রদান করতে হয় পরবর্তী ধাপে দেখানো হবে।