تفاوت POST و GET در PHP
آیا تابهحال به تفاوت POST و GET در php فکر کردهاید؟ معمولا در اپلیکیشنهای وبی که مینویسیم خیلی پیش میآید که بخواهیم اطلاعاتی را از سمت کاربر به سمت سرور بفرستیم. برای این نوع ارسال اطلاعات چند روش مختلف دارد که دور روش POST_$ و GET_$ از معروفترین آنها میباشد. این دو روش تفاوتهایی باهم دارند که در این مطلب به تفاوتهای آنها میپردازیم و یک مقایسهای بین آنها انجام میدهیم.
دانلود ویدئوی آموزشی با کیفیت بالا و کاملا واضح (با حجم 10 مگ)
آموزش متنی
دو متدی که برای ارسال اطلاعات از سمت کاربر به سمت سرور استفاده میشوند 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
دقت کنید که در همان خط اول ما 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;
برای درک بهتر این مباحث پیشنهاد میکنم آموزش ویدئویی اول این مطلب را دانلود و تماشا کنید تا مطالب را بهتر و عمیق تر درک کنید.