PHP Forms ($_POST / $_GET)
Forms कैसे काम करते हैं
Form वो तरीका है जिससे users आपकी website को data भेजते हैं — login, contact message, search। Browser जो user ने type किया वो इकट्ठा करके एक PHP page को भेजता है, जो $_POST या $_GET से data पढ़कर action करता है। Forms सुरक्षित संभालना सबसे आम PHP कामों में से एक है।
method (GET या POST) तय करता है PHP किस array से data पढ़े।HTML form
<form method="post" action="handle.php">
<input type="text" name="username">
<input type="email" name="email">
<button type="submit">Send</button>
</form>
हर field का name वो key है जो PHP इस्तेमाल करेगा। action वो PHP page है जो data पाता है, और method="post" का मतलब यह $_POST में आता है।
PHP में data पढ़ना
<?php
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$username = $_POST["username"] ?? "";
$email = $_POST["email"] ?? "";
echo "Hi $username, email: $email";
}
?>
"POST" की जाँच पक्का करती है कि यह सिर्फ़ form submit होने पर चले। ?? "" field न हो तो खाली default देता है, warnings बचाकर।
GET बनाम POST
| बात | GET | POST |
|---|---|---|
| Data कहाँ जाता है | URL में | Request body में |
| URL में दिखता है? | हाँ | नहीं |
| किसके लिए बढ़िया | Search, filters | Login, sign-up |
| Bookmark योग्य? | हाँ | नहीं |
URL में shareable चीज़ों (जैसे search) के लिए GET, और किसी निजी या data बदलने वाली चीज़ के लिए POST इस्तेमाल कीजिए।
Input sanitize करना
इस्तेमाल या दिखाने से पहले input साफ़ कीजिए।
<?php
$username = trim($_POST["username"] ?? "");
$safe = htmlspecialchars($username);
echo "Welcome, $safe";
?>
trim फालतू spaces हटाता है; htmlspecialchars value को page पर दिखाने को सुरक्षित बनाता है, XSS रोककर। हर print होने वाली value के लिए यह कीजिए।
आम गलतियाँ
nameattribute भूलना। इसके बिना field कभी$_POSTतक नहीं पहुँचता।?? ""बिना input पढ़ना। missing key "undefined index" warning देता है।- Request method न जाँचना। Handling code पहली load पर भी चलता है, errors करता है।
htmlspecialcharsबिना input print करना। यह XSS छेद खोलता है।
सारांश
- Forms user data को GET या POST से PHP page को भेजते हैं।
- POST data
$_POSTसे, GET data$_GETसे field name द्वारा पढ़िए। - निजी data को POST, search जैसे shareable data को GET।
- Handling से पहले
REQUEST_METHODजाँचिए, और सुरक्षा को?? ""। - User input को हमेशा
trimऔरhtmlspecialcharsकीजिए।
आगे, data validate कीजिए form validation से, या उसे store कीजिए MySQL connection से।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
Form में GET और POST में क्या अंतर है?
PHP में form data कैसे पढ़ें?
$_POST array और GET forms के लिए $_GET इस्तेमाल कीजिए, field के name attribute को key बनाकर — जैसे $_POST["email"]। key न हो तो warning बचाने को हमेशा ?? "" इस्तेमाल कीजिए।Form input sanitize क्यों करना ज़रूरी है?
htmlspecialchars() इस्तेमाल करना आपकी site को XSS से बचाता है और store data साफ़ रखता है। raw input पर कभी भरोसा न करें।Form field में name attribute क्या करता है?
name attribute वो key है जिससे PHP उस field को पढ़ता है। <input name="email"> $_POST["email"] बन जाता है। name बिना, field PHP को नहीं भेजा जाता।कैसे जाँचें कि form सच में submit हुआ?
if ($_SERVER["REQUEST_METHOD"] === "POST")। यह आपका handling code सिर्फ़ तब चलाता है जब form post हो, पहली page load पर नहीं।