पिछले Topic में हमने Form को handle करने के लिए $_GET और $_POST के बारे में पढ़ा , इस Topic में हम $_REQUEST के बारे में पढ़ेंगे।


PHP में $_REQUEST , $_GET और $_POST की तरह ही Super Global Variable है means इसे भी हमें define करने की जरूरत नहीं पड़ती और PHP Script में इसे हम कहीं भी access कर सकते हैं।


$_REQUEST का use हम get और post दोनों तरह के method के साथ submit किये गए Form Data को access करने के लिए किया जाता है। means हम URL में query string में आ रहे data को भी $_REQUEST के through access कर सकते हैं। $_REQUEST एक Associative Array होता है जो कि  $_GET और $_POST दोनों variables का data store करता है।

$_REQUEST vs $_POST vs $_GET

हम जानते हैं कि जब कोई Form get method के साथ submit किया जाता है या data URL में query string के रूप में आ रहा है तो उसे हम $_GET Super Global Variable से ही access कर सकते हैं। और जब कोई Form post method के साथ submit किया जाता है तो उसे हम $_POST Super Global Variable से access कर सकते हैं। But $_REQUEST के through हम $_GET और $_POST दोनों तरह का data access कर सकते हैं। और इन तीनो में यही main difference भी है।


नीचे हम एक example के through समझेंगे कि किस तरह से $_REQUEST Variable , $_GET और $_POST दोनों Variable का data contain करता है।

PHP $_REQUEST Example

File : form.html

Copy Fullscreen Close Fullscreen
<!DOCTYPE html>
<html>
<head>
<title>Form Handling Using $_Request </title>
</head>
<body>
<form action="request.php?name=Rahul Kumar&age=26" method="post">
<p>Type :
<select name="student">
<option value="">Select Type</option>
<option value="Student">Student</option>
<option value="Teacher">Teacher</option>
<option value="Staff">Staff</option>
<option value="Other">Other</option>
</select>
</p>
<p>Address : <input type="text" name="address" placeholder="Enter Full Address" /></p>
<p><button type="submit">Submit</button></p>
</form>
</body>
</html>

Another File where we will access form data : request.php

Copy Fullscreen Close Fullscreen
<?php  
/* here we will print submitted form values with $_GET , $_POST , $_REQUEST*/
echo '$_GET Values : <pre>';
print_r($_GET);
echo'</pre>';
echo '$_POST Values : <pre>';
print_r($_POST);
echo '</pre>';
echo 'All Values : <pre>';
print_r($_REQUEST);
?>
Output
Image N/A
After Submit :
Image N/A

Example में अगर आप ध्यान से देखेंगे तो form.html file में मैंने form का action 'request.php?name=Rahul Kumar&age=26' दिया है , और method post है जिससे हम clarify सकें कि सही में $_REQUEST , $_GET और $_POST दोनों का data contain करता है। Form को हम query string के साथ भी submit कर सकते हैं।


Note - $_REQUEST Variable सिर्फ और सिर्फ get , post method के साथ submit किये गए form या URL में query string के साथ send किये गए data का ही Associative Array create करता है। और उन्हें access कर सकते हैं , अगर $_GET या $_POST को आपने modify किया तो वो value $_REQUEST में effect नहीं करती और न ही उस value को हम access कर सकते हैं।

See Example

File : request.php

Copy Fullscreen Close Fullscreen
<?php  
echo '$_GET Values : <pre>';
$_GET['extra_g'] = 'Extra VAriable In GET';
print_r($_GET);
echo'</pre>';
echo '$_POST Values : <pre>';
$_POST['extra_p'] = 'Extra VAriable In Post';
print_r($_POST);
echo '</pre>';
echo 'All Values : <pre>';
print_r($_REQUEST);
?>
Output
$_GET Values :
Array
(
    [name] => Rahul Kumar
    [age] => 26
    [extra_g] => Extra VAriable In GET
)
$_POST Values :
Array
(
    [student] => Student
    [address] => 234A Agra U.P. India
    [extra_p] => Extra VAriable In Post
)
All Values :
Array
(
    [name] => Rahul Kumar
    [age] => 26
    [student] => Student
    [address] => 234A Agra U.P. India
)

ऊपर दिए गए example में form को जब हम submit करते हैं कर उस Form को request.php में handle करते हैं तो अगर हम $_GET और $_POST में एक - एक extra variable add कर दें तो वो modified variables $_REQUEST के through access नहीं होंगे।

और O/P में देख भी सकते हैं कि new variables $_GET और $_POST में ही add हुयें हैं $_REQUEST में नहीं।


अब आप $_REQUEST , $_GET और $_POST तीनों Super Global Variables का use करके Form को Handle कैसे करते होंगे , जान गए होंगे।

Related Topics :

Rahul Kumar

Rahul Kumar

Hi ! I'm Rahul Kumar Rajput founder of learnhindituts.com. I'm a software developer having more than 4 years of experience. I love to talk about programming as well as writing technical tutorials and blogs that can help to others. I'm here to help you navigate the coding cosmos and turn your ideas into reality, keep coding, keep learning :)

Get connected with me. :) LinkedIn Twitter Instagram Facebook

b2eprogrammers