PHP & MySQL بک اند (Back End)

تفاوت متد GET و POST در PHP + مثال عملی

تفاوت GET و POST
نوشته شده توسط مهدی خسروی

آیا تابه‌حال به تفاوت متد GET و POST در PHP فکر کرده‌اید؟ معمولا در اپلیکیشن‌های وبی که می‌نویسیم خیلی پیش می‌آید که بخواهیم اطلاعاتی را از سمت کاربر به سمت سرور بفرستیم. برای این نوع ارسال اطلاعات چند روش مختلف دارد که دور روش POST_$ و GET_$ از معروف‌ترین آن‌ها می‌باشد. این دو روش تفاوت‌هایی باهم دارند که در این مطلب به تفاوت‌های آن‌ها میپردازیم و یک مقایسه‌ای بین آن‌ها انجام می‌دهیم.

 

تفاوت متد GET و POST در PHP

اگر میخواهید تفاوت متد GET و POST در PHP را متوجه شوید، پیشنهاد میکنیم ویدئوی آموزشی زیر را مشاهده کنید

متد GET_$

متدی است که شما هر اطلاعاتی را که بخواهید توسط آن به سمت سرور بفرستید را در قسمت آدرس‌بار مرورگر وارد میکند و از آن طریق به سمت سرور می‌فرستند.برای شما شما فرض کنید که فرمی دارید و میخواهید نام کاربری و کلمه عبور کاربران را از سمت کامپیوتر او به سمت سرور بفرستید، یک چیزی شبیه این کد :

<form action="action.php" method="get">
    <input type="text" name="username" placeholder="Username ..."><br><br>
    <input type="password" name="password" placeholder="Password ..."><br><br>
    <input type="submit" value="Login">
</form>

این کد اطلاعات را از کاربر دریافت میکند و بلافاصله بعد از کلیک بر روی دکمه‌ی Login اطلاعات را به فایلی که در مقدار action در خط اول اشاره شده می‌فرستد. سپس می‌توانیم از فایل action.php به اطلاعاتی که از این فرم ارسال شده دسترسی داشته باشیم.

تفاوت متد GET و POST

تفاوت متد GET و POST

دقت کنید که در همان خط اول ما method را برابر get قرار دادیم و این به این معنا است که میخواهیم اطلاعات این فرم را از طریق متد get به صفحه‌ی action.php بفرستیم. حالا اگر username و password را وارد کنیم و روی دکمه‌ی Login کلیک کنیم به صفحه‌ی action.php منتقل میشویم.
حالا اگر به قسمت آدرس‌بار مرورگرمان نگاه کنیم میبینیم که همان اطلاعاتی که در فرم نوشته بودیم در آدرس هم قرار دارد و برای ما نمایش داده میشود :

انتقال یا ریدایرکت (Redirect) کاربر به صفحه دیگر با PHP

از این میتوانیم متوجه شویم که متد get برای اطلاعاتی که بسیار طولانی هستند و یا اطلاعاتی که ارزش امنیتی دارند اصلا مناسب نمی‌باشد. مثل همین مثال که ما اصلا درست و منطقی نیست کلمه عبور کاربران را با متد get به سرور بفرستیم، زیرا اطلاعات آن‌ها به خطر میافتد.

در همان فایل action.php می‌توانیم به این شکل به اطلاعاتی که از همان فرم فرستادیم دسترسی پیدا کنیم :

<?php
$username = $_GET["username"];
$password = $_GET["password"];
echo $username . ' ' . $password;
?>

متد POST_$

متد post روش امن تری برای ارسال اطلاعات است و دیگر اگر اطلاعات فرم را از طریق متد post به صفحه‌ی دیگری بفرستیم، آن اطلاعات به هیچ طریقی قابل دسترسی نخواهند بود و از امنیت خوبی بهره میبرند.برای ارسال اطلاعات یک فرم از طریق متد post کافیست هنگام تعریف یک فرم به این شکل عمل کنیم :

<form action="action.php" method="post">
...
</form>

و اگر بخواهیم اطلاعات را درون فایل action.php بخوانیم کافیست کدی که بالاتر گفتیم را به این شکل تغییر دهیم :

$username = $_POST["username"];
$password = $_POST["password"];
echo $username . ' ' . $password;

برای درک بهتر این مباحث پیشنهاد میکنم آموزش ویدئویی اول این مطلب را دانلود و تماشا کنید تا مطالب را بهتر و عمیق تر درک کنید. اگر به دنبال جزئیات خیلی بیشتر از تفاوت GET و POST هستید،‌ مطالعه‌ی این مقاله از سایت diffen میتواند بسیار مفید باشد.

در این مقاله و فیلم آموزشی در یادیفای سعی کردیم بطور کامل تفاوت متد GET و POST را بررسی کنیم. در آموزش های آینده در مورد این دو متد ارسال و دریافت اطلاعات بیشتر صحبت میکنیم.

 

منبع: زنبیل

امتیاز مقاله
  • کیفیت فایل آموزشی
  • کاربردی بودن مطالب
  • اجرایی بودن مطالب
۵

درباره نویسنده

مهدی خسروی

۸ سال پیش که یادگیری برنامه نویسی رو آغاز کردم، با یک مشکل بزرگ مواجه شدم: کمبود منابع آموزشی حرفه‌ای و کاربردی به زبان فارسی. به همین دلیل، بعد از چندین سال فعالیت حرفه‌ای در زمینه‌ی برنامه نویسی، تصمیم گرفتم دانسته‌ها و تجربیات خودم را با شما عزیزان به اشتراک بگذارم. پیشنهاد میکنم به آدرس yadify.com/gifts حتما سر بزنید :)

درج دیدگاه

This site uses Akismet to reduce spam. Learn how your comment data is processed.