
در حالت کلی دو روش وجود دارد تا یک کاربر بتواند داده های خودش را به سمت سرور با زبان php ارسال کند :
- متد POST
- متد GET
این به معنی این نیست که فقط این متدها ، متدهای ارسال داده ها هستند بلکه متد های دیگری هم وجود دارد ولی تمرکز ما روی GET و POST است که بیشترین کاربرد را دارند و اگر اینها را یاد بگیرید ، باقی موارد را به سادگی یاد خواهید گرفت.
قبل از اینکه مرورگر اطلاعات وارد شده توسط کاربر را به سمت سرور ارسال کند آنها را رمزنگاری میکند که به آن URL encoding گفته میشود .
در مثال زیر که مشاهده میکنید داده ها بصورت نام و مقدار جدا شده با علامت & از هم دیگر قرار دارند که به این شیوه داده ها ارسال میشود :
name1=value1&name2=value2&name3=value3
آموزش زبان برنامه نویسی php بصورت ویدیویی میتواند به راحتی این مفاهیم را به شما انتقال دهد.
متد GET در php
در این روش ، داده ها به آخر آدرسی که اطلاعات را ارسال میکند میچسبند و با علامت ؟ از آدرس جدا میشوند و همانند مثال بالا متغیرها یا پارامتر های ارسالی با & از هم دیگر جدا میشوند و در آدرس بار مرورگر قابل مشاهده و تغییر هستند .
مثال :
http://www.test.com/index.htm?name1=value1&name2=value2
نکاتی درباره ی متد GET در php :
- در متد GET اطلاعات ارسالی بصورت یک رشته در آخر آدرسی که اطلاعات را ارسال میکنیم قابل مشاهده و تغییر دادن میباشد
- در متد GET محدودیت ارسال اطلاعات تا 1024 کاراکتر میباشد
- برای اطلاعات حساس و امنیتی مثل پسورد هرگز از متد GET استفاده نمیشود
- از متد GET برای ارسال اطلاعات باینری مثل تصویر، داکیومنت ورد و امثال اینها به سمت سرور ، استفاده نمیشود
- داده های ارسال شده توسط GET توسط QUERY_STRING قابل دسترسی است
- برای دریافت اطلاعات ارسال شده بصورت GET در اسکریپت php از $_GET استفاده میشود که ارایه ای از داده ها را در اختیار شما میگذارد
مثال :
<?php
if( $_GET["name"] || $_GET["age"] ) {
echo "Welcome ". $_GET['name']. "<br />";
echo "You are ". $_GET['age']. " years old.";
exit();
}
?>
<html>
<body>
<form action = "<?php $_PHP_SELF ?>" method = "GET">
Name: <input type = "text" name = "name" />
Age: <input type = "text" name = "age" />
<input type = "submit" />
</form>
</body>
</html>
نتیجه ی خروجی کدهای بالا :

آموزش ویدیویی کار با متد GET در زبان برنامه نویسی php در دوره ی آموزش php استاد نیک زاد ارائه شده است.
متد POST در php
در متد POST زبان php ، داده ها بصورت مخفی در header درون درخواست HTTP قرار میگیرند . داده ها همانطور که در بخش متد GET گفتیم رمزنگاری میشوند و در QUERY_STRING داخل header قرار میگیرند .
- برخلاف متد GET در متد POST هیچ محدودیتی از نظر سایز داده ها وجود ندارد
- متد POST برای ارسال ASCII و داده های باینری مفید است
- داده هایی که در متد POST ارسال میشود درون headr درخواست HTTP قرار میگیرد و امنیت بسیار بالاتری دارد و بیشتر امنیت بعدی آن مربوط به درخواست های HTTP است که اگر پروتکل شما امن باشد هیچ اتفاق امنیتی رخ نخواهد داد
- داده هایی که بصورت POST ارسال میشوند از طریق متغیر $_POST بصورت آرایه قابل دسترسی هستند و در مقصد میتوانید آنها را دریافت کنید
مثال :
<?php
if( $_POST["name"] || $_POST["age"] ) {
if (preg_match("/[^A-Za-z'-]/",$_POST['name'] )) {
die ("invalid name and name should be alpha");
}
echo "Welcome ". $_POST['name']. "<br />";
echo "You are ". $_POST['age']. " years old.";
exit();
}
?>
<html>
<body>
<form action = "<?php $_PHP_SELF ?>" method = "POST">
Name: <input type = "text" name = "name" />
Age: <input type = "text" name = "age" />
<input type = "submit" />
</form>
</body>
</html>
نتیجه ی کدهای بالا :

متغیر $_REQUEST در php
متغیر $_REQUEST در php در بر دارنده ی تمام داده های ورودی بصورت GET و POST است در حقیقت کار $_GET و $_POST و حتی $_COOKIE را بصورت یکجا انجام میدهد .
برای روشن شدن مطلب یک مثال میزنیم :
<?php
if( $_REQUEST["name"] || $_REQUEST["age"] ) {
echo "Welcome ". $_REQUEST['name']. "<br />";
echo "You are ". $_REQUEST['age']. " years old.";
exit();
}
?>
<html>
<body>
<form action = "<?php $_PHP_SELF ?>" method = "POST">
Name: <input type = "text" name = "name" />
Age: <input type = "text" name = "age" />
<input type = "submit" />
</form>
</body>
</html>
نکته : در مثال بالا متغیر $_PHP_SELF به خود صفحه ی جاری اشاره میکند تا فرم بجای دیگری ارسال نشود .
خروجی کدهای بالا :

نکته مهم : اگر علاقه به یادگیری حرفه ای php دارید حتما بحث مهم MVC در زبان برنامه نویسی php در نظر بگیرید و بعد از یادگیری کامل پی اچ پی ، نوبت آموزش php mvc است.
اتمام درس
نظرات کاربران
هنوز نظری ثبت نشده است. اولین نفری باشید که نظر میدهد!