PHP و MySQL برنامه نویسی وب

تفاوت POST و GET در زبان برنامه نویسی PHP + مثال عملی

مهدی خسروی
نوشته شده توسط مهدی خسروی

برای کار با فرم ها در php دو متد get و post استفاده میشود که هرکدام کاربردی خاص دارند. در این آموزش با تفاوت POST_$ و GET_$ در زبان php آشنا میشویم.

تفاوت POST و GET در PHP

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

دکمه دانلوددانلود ویدئوی آموزشی با کیفیت بالا و کاملا واضح (با حجم ۱۰ مگ)دکمه دانلود

آموزش متنی

دو متدی که برای ارسال اطلاعات از سمت کاربر به سمت سرور استفاده می‌شوند POST_$ و GET_$ نام دارند که به توضیح آن‌ها می‌پردازیم:

متد 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 به اطلاعاتی که از این فرم ارسال شده دسترسی داشته باشیم.

تفاوت post و get

تفاوت POST و GET

دقت کنید که در همان خط اول ما method را برابر get قرار دادیم و این به این معنا است که میخواهیم اطلاعات این فرم را از طریق متد get به صفحه‌ی action.php بفرستیم. حالا اگر username و password را وارد کنیم و روی دکمه‌ی Login کلیک کنیم به صفحه‌ی action.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;

برای درک بهتر این مباحث پیشنهاد میکنم آموزش ویدئویی اول این مطلب را دانلود و تماشا کنید تا مطالب را بهتر و عمیق تر درک کنید.

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

مهدی خسروی

مهدی خسروی

سلام، مهدی خسروی هستم، نویسنده کتاب «دوبار فکر کن، یک بار کد بزن» و مدرس دوره‌های طراحی و برنامه نویسی زنبیل.
همیشه، بزرگ‌ترین موضوعی که من را اذیت میکرد، نبود دوره‌های آموزشی باکیفیت، پروژه‌محور و حرفه‌ای به زبان فارسی بود. همین موضوع باعث شد «زنبیل» متولد شود.
اگر علاقمند به یادگیری هستید، دوره‌های رایگان و ویژه زنبیل را در آدرس xanbil.com/vip از دست ندهید.

۱ نظر

درج نظر

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