سلام کاربران گرامی ، امیدوارم که حال شما خوب باشه . و با اموزشهای امروز ماکه درمورد متدهای get و post است همراه باشید.
دو شیوه ای که مرورگر کاربر با کمک آن ها اطلاعات را به سرویس دهنده ی وب می فرستد به شرح زیر است.
متد GET {دریافتن}
متد POST {فرستادن}
پیش از این که مرورگر اطلاعات را ارسال کند، ابتدا آن ها را با کمک الگویی بنام کد گذاری URL، رمزگذاری می کند. در این الگو جفت اسم / مقدار {value/name} با علامت تساوی به هم وصل شده، ولی جفت های متفاوت توسط این علامت & که به آن ampersand می گویند از هم جدا می شوند.
name1=value1&name2=value2&name3=value3
جاهای خالی حذف شده و یا توسط کاراکتر + جایگزین می شود و هر کاراکتر غیر حرفی دیگری که وجود دارد نیز توسط مقدار هگزا دسیمایل جایگزین می گردد. اطلاعات پس از این که رمز گذاری می شوند به server ارسال می شوند.
متد GET
متد GET اطلاعات کد گذاری شده ی کاربر را که به صفحه ی درخواست {page request} ضمیمه شده بهserver یا سرویس دهنده تحویل می دهد.
آدرس صفحه و اطلاعات کد گذاری شده ی کاربر توسط کاراکتر ؟ از هم تفکیک می شوند.
http://www.test.com/index.htm?name1=value1&name2=value2
متد GET رشته طولانی می سازد که درلاگهای سرور، در کادر آدرس {location box} مرورگر ظاهر می شود.
متد GET تنها می تواند تا ۱۰۲۴ کاراکتر را بفرستد.
زمانی که شما اطلاعات حساس و رمز عبور دارید که باید به server فرستاده شود از متد GET استفاده نکنید.
GET نمی تواند اطلاعات باینری مثل تصاویر و فایل word را به سرور بفرستد.
اطلاعات ارسال شده با متد GET با استفاده از متغیر محیطی QUERY-STRINGقابل دسترسی است.
PHP برای دسترسی به اطلاعات فرستاده شده بوسیله متد GET، آرایه شرکت پذیری GET-$ را در اختیار شما قرار می دهد.
مثال زیر را با قرار دادن متن برنامه source code در test.php script انجام دهید.
<?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>
متد POST
متد POST اطلاعات را از طریق هدر HTTP انتقال می دهد. اطلاعات ابتدا همان گونه که در مورد متد GET توضیح داده شد، کد گذاری شده و سپس در داخل هدری که QUERY-STRING نام دارد قرار داده می شود.
متد POST هیچ گونه محدودیتی در خصوص اندازه اطلاعاتی که قرار است ارسال شود ندارد.
متد POST قادر است هم اطلاعات باینری و هم اسکی را ارسال کند.
اطلاعات فرستاده شده با POST از هدر HTTP گذر می کند، پس امنیت وابسته به پُروتکل HTTP است. شما با استفاده از HTTPs می توانید مطمئن باشید که اطلاعات شما کاملا ایمن هستند.
PHP برای دستیابی به اطلاعات ارسال شده، از طریق متد POST آرایه ی شرکت پذیر post $- را برای کاربر فراهم می کند.
مثال زیر را با قرار دادن متن برنامه {source code} در test.php script امتحان کنید.
<?php
if( $_POST[“name”] || $_POST[“age”] )
{
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 محتوای هر دو متغیر $_GET، $_POSTو $_COOKIE را دربردارد. هنگامی که به تشریح مبحث متغیر $_COOKIE برسیم، درباره ی خود cookie ها نیز مفصل بحث می کنیم. اگر بخواهیم نتیجه ی بدست آمده از اطلاعات فرستاده شده توسط هر دو متدPOST و GET را بازیابی و دریافت کنیم باید متغیر $_REQUEST مورد استفاده قرار دهیم.
مثال زیر را با قرار دادن متن برنامه {source code} در test.php script آزمایش کنید.
<?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 اسم خود اسکریپت که فرا خوانده می شود را دربر دارد.