Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
🔴 Advanced  ·  Lesson 27

Form Validation

Input validate क्यों

User के form से आया कोई भी data भरोसेमंद नहीं — वो खाली, गलत, या ख़तरनाक हो सकता है। Validation जाँचता है कि input सही है, और sanitization उसे साफ़ करता है ताकि इस्तेमाल और दिखाना सुरक्षित हो। दोनों करना आपके data और website दोनों को बचाता है।

⚠️ सुनहरा नियम: user input पर कभी भरोसा न करें। PHP में server पर हमेशा validate कीजिए, भले browser भी जाँचे।

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];
  }
?>
Name is required

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";
  }
?>
Valid 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 कीजिए।
  • trim spaces साफ़ करता है; htmlspecialchars input दिखाने को सुरक्षित बनाता है।
  • Required fields जाँचिए और errors array में इकट्ठा कीजिए।
  • Email को filter_var($e, FILTER_VALIDATE_EMAIL) से validate कीजिए।
  • Browser जाँचे तब भी PHP में हमेशा दोबारा validate कीजिए।

आगे, pages को और सुरक्षित कीजिए XSS prevention से, या भेजा data रखिए sessions और cookies से।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

Validation और sanitization में क्या अंतर है?
Validation जाँचता है कि input सही है या नहीं (असली email है? field भरा है?)। Sanitization input को साफ़ करके सुरक्षित बनाता है (ख़तरनाक characters हटाना)। आमतौर पर पहले sanitize, फिर validate करते हैं।
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 क्यों करें?
Users अक्सर गलती से spaces डाल देते हैं। trim() शुरू और अंत के spaces हटाता है ताकि " aman@site.com " सही store हो और तुलना ठीक चले।
क्या सिर्फ़ browser (HTML) validation पर भरोसा करूँ?
नहीं। Browser validation bypass हो सकता है। PHP में server पर हमेशा दोबारा validate कीजिए, क्योंकि यही एक check है जिसे attacker skip नहीं कर सकता।
← Back to PHP Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicArray Functions आपकी प्रगति: 27 / 50 (54%) · Lesson 28 / 50 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें