تفاوت get و post
در این بخش از آموزش php از تاپ سایت 98 به سراغ تفاوت get و post می رویم.
ابتدا xampp را استارت کنید.
بررسی post
برای فهم تفاوت get و post ابتدا بایستی با هر دو آنها آشنا شوید.
در این بخش به بررسی post می پردازیم. در زیر یک فرم را مشاهده می کنید.
یک پوشه در xampp و htdocs بنام topsite98 ایجاد کنید.
حال یک فایل بنام form.php ایجاد نمایید و کد زیر را در آن قرار دهید.
در فرم و method حتما post بگذارید مانند مثال زیر .
داده های فرم با روش HTTP POST ارسال می شوند.
<head>
<meta charset="UTF-8" >
</head>
<body>
<form action="post.php" method="post">
Name: <input type="text" name="name"><br>
website: <input type="text" name="website"><br>
<input type="submit" value="send">
</form>
</body>
</html>
حال یک فایل دیگر بنام post.php ایجاد کنید و کد زیر را در آن قرار دهید.
با $_POST متغیر را دریافت می کنیم.
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your website is: <?php echo $_POST["website"]; ?>
</body>
</html>
سپس کد را اجرا می کنیم. در مرورگر آدرس http://localhost/topsite98/form.php
را تایپ کنید تا فایل اجرا شود حتما xampp را استارت کرده باشید.
در فرم نام و وبسایت را وارد نمایید. سپس دکمه send را کلیک کنید.
اطلاعات به فایل post.php می رود و نام و وبسایت نمایش داده می شود. خروجی را در تصویر می بینید.
اطلاعات ارسال شده از فرم با روش POST برای دیگران غیرقابل مشاهده است (کلیه نام ها و مقادیر در متن درخواست HTTP جاسازی شده اند) و محدودیتی در میزان اطلاعات ارسال ندارند.
علاوه بر این POST از قابلیت های پیشرفته مانند پشتیبانی از ورودی باینری چند قسمتی در هنگام بارگذاری فایل ها روی سرور پشتیبانی می کند.
اما ، به دلیل اینکه متغیرها در URL نمایش داده نمی شوند ، امکان نشانه گذاری صفحه وجود ندارد.
توسعه دهندگان برای ارسال داده های فرم POST را ترجیح می دهند.
بررسی get
برای بررسی get در php مثال بالا را تغییر می دهیم. در فرم و method و مقدار get را وارد نمایید.
حال یک فایل بنام get.php ایجاد کنید و کد زیر را در آن کپی نمایید.
نام و وبسایت که در فرم وارد کرده اید نمایش داده می شود.
داده های فرم با روش HTTP GET ارسال می شوند.
با $_GET متغیر را دریافت می کنیم.
<head>
<meta charset="UTF-8" >
</head>
<body>
Welcome <?php echo $_GET["name"]; ?><br>
Your website is: <?php echo $_GET["website"]; ?>
</body>
</html>
اطلاعات در مرورگر نمایش داده می شود. پس از نام فایل get.php و علامت سوال ، نام متغیر و علامت مساوی و مقدار نمایش داده می شود.
در صورتی که متغیر بیش از یکی باشد از علامت & استفاده می شود.
از GET برای ارسال داده های غیر حساس استفاده می شود.
توجه: برای ارسال گذرواژه یا اطلاعات حساس نباید از GET استفاده کنیم.
اطلاعات ارسال شده از فرم با روش GET برای همه قابل مشاهده است (همه نامها و مقادیر متغیر در URL نمایش داده می شوند). GET همچنین درمورد میزان ارسال اطلاعات محدودیت دارد. محدودیت در حدود 2000 کاراکتر است. اما به دلیل اینکه متغیرها در URL نمایش داده می شوند ، می توانید صفحه را علامت گذاری کنید. این در بعضی موارد می تواند مفید باشد.
خروجی را در تصویر زیر می بینید.
تفاوت get و post در php
حال تفاوت get و post در php را بررسی می کنیم.
در زمانی که متد post باشد اطلاعات بصورت امن دریافت و نمایش داده می شود.
اما در حالت get اطلاعات در مرورگر نمایش داده میشود. در تصویر بالا می بینید.
امنیت حالت get پایین تر است اما در جاهایی از پروژه بایستی از آن استفاده کرد . یکی از جاهایی که از متد get استفاده می شود در جستجوی سایت می باشد.
امنیت اطلاعات دریافتی با get و post
هنگام پردازش فرم های PHP به امنیت اهمیت دهید.
مثال های بالا دارای هیچ گونه اعتبار سنجی فرم نیست ، فقط نشان می دهد که چگونه می توانید داده های فرم را ارسال و بازیابی کنید.
اگر اطلاعات و داده ها را ساده و بدون هیچ بررسی امنیتی دریافت کرده و در دیتابیس ذخیره کنید هکرها براحتی برایتان مشکل ایجاد می کنند و سایت شما را هک می کنند.
نتیجه گیری
ما تفاوت get و post در php را بررسی کردیم اما نمی توانیم بگوییم کدام یک بهتر است از هر دستور در جایی استفاده می شود . بعضی اطلاعات دارای اهمیت بیشتری هستند و بعضی اهمیت کمتر.
برای ارسال فرم هایی مانند ثبت نام کاربر و ذخیره اطلاعات از متد post استفاده می کنیم. چون اطلاعات کاربر بایستی در دیتابیس ذخیره گردد پس دارای اهمیت زیادی است و امنیت آن مهم است.
اما در جستجوی سایت ، از متد get استفاده می کنیم چون امنیت کمتری دارد و اگر داده ها در مرورگر نمایش داده شود اشکالی ندارد.
آموزش کار با فرم و get و post در php را نیز می توانید ببینید.
منبع: دبلیوتری اسکولز
تگ:
نظرات کاربران
از دیدگاه مرتبط با موضوع استفاده نمایید.
از تبلیغ سایت یا شبکه اجتماعی خودداری فرمایید.
برای پاسخ گویی بهتر در سایت ثبت نام نمایید و سپس سوال خود را مطرح فرمایید.
اگر به دنبال کار پاره وقت هستید با ما تماس بگیرید.
اگر سوال یا نظری دارید در بخش کامنت ها بنویسید.اگر موضوع خاصی مد نظر شماست که در سایت موجود نیست در بخش کامنت ها بنویسید