تفاوت متد GET و POST در PHP + مثال عملی
آیا تابهحال به تفاوت متد 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
دقت کنید که در همان خط اول ما 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;
برای درک بهتر این مباحث پیشنهاد میکنم آموزش ویدئویی اول این مطلب را دانلود و تماشا کنید تا مطالب را بهتر و عمیق تر درک کنید. اگر به دنبال جزئیات خیلی بیشتر از تفاوت GET و POST هستید، مطالعهی این مقاله از سایت diffen میتواند بسیار مفید باشد.
در این مقاله و فیلم آموزشی در یادیفای سعی کردیم بطور کامل تفاوت متد GET و POST را بررسی کنیم. در آموزش های آینده در مورد این دو متد ارسال و دریافت اطلاعات بیشتر صحبت میکنیم.
درباره مهدی خسروی
۸ سال پیش که یادگیری برنامه نویسی رو آغاز کردم، با یک مشکل بزرگ مواجه شدم: کمبود منابع آموزشی حرفهای و کاربردی به زبان فارسی. به همین دلیل، بعد از چندین سال فعالیت حرفهای در زمینهی برنامه نویسی، تصمیم گرفتم دانستهها و تجربیات خودم را با شما عزیزان به اشتراک بگذارم. پیشنهاد میکنم به آدرس yadify.com/gifts حتما سر بزنید :)
نوشته های بیشتر از مهدی خسرویمطالب زیر را حتما مطالعه کنید
4 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
دیدگاهتان را بنویسید لغو پاسخ
این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش میشوند.
سلام علیکم
من می خوام یه فایل PHP درخواست بفرسته به:
https://api.kavenegar.com/v1/613472435563797A3767733D/verify/lookup.json?receptor=09361234567&token=852596&template=myverification
بعد پاسخ رو نشون بده
ممنون میشم اگه کمکم کنید
کلی توی مطالب سایت شما گشتم اما دقیق نتونستم درستش کنم
سلام علی عزیز.
اینطور که مشخصه شما میخواهید با api سایت کاوه نگار کار کنید. برای اینکار باید به دنبال فایل راهنمای کار با api این سایت یا اصطلاحا document اون باشید.اگر این فایل توسط کاوه نگار تهیه شده باشد،در آن توضیحات کاملی در خصوص روش کار با api آورده شده است.
سلام اگه بخوام یه input داشته باشم از نوع تکست که چیزی که کاربر مینویسه زیرش نمایش داده بشه .و بعد دوباره تو همون input چیزدیگری نوشت نمایش تکست قبلی پاک نشه و زیر هم نشون داده بشه چیکار کنم؟
سلام زینب گرامی
احتمال میدم دقیق متوجه منظور شما نشده باشم. اما اگر درست متوجه شده باشم، اینکار رو میتونید با جاوا اسکریپت و جی کوئری انجام بدید