Form Validation
Input validate क्यों
User के form से आया कोई भी data भरोसेमंद नहीं — वो खाली, गलत, या ख़तरनाक हो सकता है। Validation जाँचता है कि input सही है, और sanitization उसे साफ़ करता है ताकि इस्तेमाल और दिखाना सुरक्षित हो। दोनों करना आपके data और website दोनों को बचाता है।
Trim और sanitize
पहले raw input साफ़ कीजिए — फालतू spaces हटाइए और दिखाने को सुरक्षित बनाइए।
<?php
$name = trim($_POST["name"] ?? "");
$name = htmlspecialchars($name);
echo $name;
?>
trim गलती के spaces हटाता है। htmlspecialchars < जैसे characters को सुरक्षित text में बदलता है, जो users को HTML या scripts inject करने से रोकता है (XSS attack)।
Required fields जाँचना
पक्का कीजिए ज़रूरी fields खाली न हों, और errors इकट्ठा कीजिए।
<?php
$errors = [];
$name = trim($_POST["name"] ?? "");
if ($name === "") {
$errors[] = "Name is required";
}
if (empty($errors)) {
echo "Form OK";
} else {
echo $errors[0];
}
?>
Errors को array में इकट्ठा करने से आप हर field जाँच कर सारी समस्याएँ एक साथ दिखा सकते हैं, पहली पर रुके बिना।
Email validate करना
खुद का email check मत लिखिए — PHP का built-in filter इस्तेमाल कीजिए।
<?php
$email = "aman@site.com";
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Valid email";
} else {
echo "Invalid email";
}
?>
filter_var के साथ FILTER_VALIDATE_EMAIL भरोसेमंद है और असली email addresses के पेचीदा नियम आपके लिए संभाल लेता है।
पूरा उदाहरण
<?php
$errors = [];
$name = trim($_POST["name"] ?? "");
$email = trim($_POST["email"] ?? "");
if ($name === "") $errors[] = "Name required";
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) $errors[] = "Valid email required";
if (empty($errors)) {
$name = htmlspecialchars($name);
echo "Welcome, $name";
} else {
foreach ($errors as $e) echo $e . "<br>";
}
?>
यह pattern — trim, validate, errors इकट्ठा, फिर action — किसी भी PHP form को संभालने का standard, सुरक्षित तरीका है।
आम गलतियाँ
- सिर्फ़ browser validation पर भरोसा। वो bypass हो सकता है; PHP में हमेशा दोबारा जाँचिए।
- Input दिखाते समय htmlspecialchars न करना। यह XSS का दरवाज़ा खोलता है।
- trim भूलना। छिपे spaces से checks fail और duplicate records होते हैं।
- खुद का email regex लिखना। इसकी जगह
filter_var— सही और आसान।
सारांश
- User input पर कभी भरोसा न करें — server पर validate और sanitize कीजिए।
trimspaces साफ़ करता है;htmlspecialcharsinput दिखाने को सुरक्षित बनाता है।- Required fields जाँचिए और errors array में इकट्ठा कीजिए।
- Email को
filter_var($e, FILTER_VALIDATE_EMAIL)से validate कीजिए। - Browser जाँचे तब भी PHP में हमेशा दोबारा validate कीजिए।
आगे, pages को और सुरक्षित कीजिए XSS prevention से, या भेजा data रखिए sessions और cookies से।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
Validation और sanitization में क्या अंतर है?
PHP में valid email कैसे जाँचें?
filter_var($email, FILTER_VALIDATE_EMAIL) इस्तेमाल कीजिए। valid हो तो email देता है, वरना false। यह खुद का check लिखने से कहीं भरोसेमंद है।User input दिखाते समय htmlspecialchars क्यों ज़रूरी है?
htmlspecialchars() < और > जैसे characters को सुरक्षित text में बदल देता है ताकि user आपके page में HTML या scripts inject न कर सके। यह XSS attacks से बचाव की मुख्य चीज़ है।form input trim क्यों करें?
trim() शुरू और अंत के spaces हटाता है ताकि " aman@site.com " सही store हो और तुलना ठीक चले।