خانه - برای مبتدی ها
روش های PHP و GET و POST انتقال داده. POST, GET: چگونه درخواست ها با یکدیگر تفاوت دارند انتقال داده با استفاده از روش دریافت چیست

شرح

ویژگی روش به سرور در مورد روش درخواست می گوید.

نحو

...

ارزش های

مقدار ویژگی متد به حروف بزرگ و کوچک حساس نیست. دو روش وجود دارد - دریافت و ارسال.

دریافت این روش یکی از متداول ترین روش هاست و برای به دست آوردن اطلاعات مورد نیاز و انتقال داده ها به آن طراحی شده است نوار آدرس. در این حالت، جفت های name=value بعد از علامت سوال به آدرس اضافه می شوند و با علامت (& نماد) از هم جدا می شوند. راحتی استفاده از روش دریافت این است که آدرس با تمام پارامترها را می توان بارها و بارها استفاده کرد و آن را به عنوان مثال در نشانک های مرورگر خود ذخیره کرد و همچنین می توانید مقادیر پارامتر را مستقیماً در نوار آدرس تغییر دهید. post روش ارسال داده ها را در یک درخواست مرورگر به سرور ارسال می کند. این به شما امکان می‌دهد تا داده‌های بیشتری از آنچه برای روش دریافت موجود است ارسال کنید، زیرا دارای محدودیت 4 کیلوبایت است. حجم زیادی از داده ها در انجمن ها، خدمات ایمیل، پر کردن پایگاه های داده، ارسال فایل ها و غیره استفاده می شود.

ویژگی مورد نیاز

مقدار پیش فرض

HTML5 IE Cr Op Sa Fx

تگ FORM، ویژگی متد



هنگام توسعه هر پروژه، یکی از اساسی ترین موارد ارتباط با کاربر است. می‌توانیم از او چیزی بپرسیم و به او حق پاسخگویی بدهیم (نظرسنجی)، می‌توانیم به او این حق را بدهیم که نظرش را در مورد یک محصول یا خدمات بنویسد، می‌توانیم به او کمک کنیم تا در صورت نیاز به ایجاد یک آنلاین، هزینه خدمات ما را محاسبه کند. فروشگاه و غیره

در همه موارد، کاربر باید حق داشته باشد چیزی بنویسد و روی چیزی کلیک کند. فرم ها برای همین هستند.

کار با فرم ها در PHP و HTML

فرم ها با تگ فرم مشخص می شوند:

ویژگی روشنشان می دهد که از کدام روش برای ارسال فرم استفاده می شود. 2 روش وجود دارد - GET و POST. در ادامه بیشتر در مورد این مطلب بخوانید، در حالی که به طور خلاصه در مورد عناصر اصلی فرم صحبت خواهیم کرد:

فیلد متن - متن را وارد کنید

فیلد متنی که می توانید اطلاعات را در آن وارد کنید. ویژگی نام- نام فیلد متنی, ارزش- معنی آنها به این شکل هستند:

دکمه - ورودی ارسال

دکمه ای که برای ارسال فرم ها استفاده می شود. به نظر می رسد این است:

بلوک متن - Textarea

بلوک متن، معمولا برای نوشتن پیام های بزرگ استفاده می شود. ردیف ها، ستون ها - طول و عرض را مشخص کنید.

ظاهر:

اطلاعات بیشتر در مورد فرم ها را در وب سایت ما یا در منابع دیگر بخوانید. هدف از این درس این است که نشان دهد چگونه پردازش فرم ها با استفاده از PHP

روش GET و POST هنگام ارسال فرم ها

روش های GET و POSTدر ویژگی متد فرم هنگام مقداردهی اولیه مشخص می شوند:

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

در داده های PHP با استفاده از روش GET دریافت شده استدر یک متغیر ذخیره می شود $_GET. داده ها با استفاده از روش POST ارسال می شوددر یک متغیر ذخیره می شود $_POST.

ابتدا کدی را بنویسیم که با متد GET کار کند سپس متد POST.

فرم ها - استودیوی طراحی OX2.ru

 

print_r($_GET); //خروجی آرایه با استفاده از print_r
?>

اسم شما:
پیام:



حالا بیایید اسکریپت را برای ارسال داده با استفاده از روش POST دوباره کار کنیم.

فرم ها - استودیوی طراحی OX2.ru

 

print_r($_POST); //خروجی آرایه با استفاده از print_r
?>

اسم شما:
پیام:



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

هنگام توسعه هر پروژه، یکی از اساسی ترین چیزها ارتباط با کاربر است. می‌توانیم از او چیزی بپرسیم و به او حق پاسخگویی بدهیم (نظرسنجی)، می‌توانیم به او این حق را بدهیم که نظرش را در مورد یک محصول یا خدمات بنویسد، می‌توانیم به او کمک کنیم تا در صورت نیاز به ایجاد یک آنلاین، هزینه خدمات ما را محاسبه کند. فروشگاه و غیره

OX2 2014-10-05 2014-10-05

مشتریان مرورگر می توانند اطلاعات را به وب سرور ارسال کنند.

قبل از اینکه مرورگر اطلاعاتی را ارسال کند، آن را با استفاده از طرحی به نام رمزگذاری URL رمزگذاری می کند. در این طرح، جفت‌های نام/مقدار با علامت‌های مساوی به هم متصل می‌شوند و جفت‌های مختلف با یک علامت از هم جدا می‌شوند.

Name1=value1&name2=value2&name3=value3

فاصله ها حذف می شوند و با یک کاراکتر + جایگزین می شوند و هر کاراکتر غیر الفبایی دیگر با مقادیر هگزا دسیمال جایگزین می شود. پس از کدگذاری اطلاعات به سرور ارسال می شود.

روش GET

متد GET اطلاعات کاربر رمزگذاری شده ضمیمه شده به درخواست صفحه را ارسال می کند. آیا صفحات و اطلاعات رمزگذاری شده از یکدیگر جدا هستند؟ علامت سوال.

http://www.test.com/index.htm?name1=value1&name2=value2

  • روش GET یک رشته طولانی را تولید می کند که در گزارش های سرور شما در قسمت "موقعیت" مرورگر ظاهر می شود.
  • روش GET فقط به ارسال تا 1024 کاراکتر محدود می شود.
  • اگر رمز عبور یا غیره دارید، هرگز از روش GET استفاده نکنید اطلاعات محرمانهبرای ارسال به سرور
  • GET را نمی توان برای انتقال داده های باینری، مانند تصویر یا اسناد متنی، به سرور.
  • داده های ارسال شده با استفاده از روش GET با استفاده از آن قابل دسترسی هستند متغیر محیطی QUERY_STRING.
  • PHP آرایه انجمنی $_GET را برای دسترسی به تمام اطلاعات ارسالی با استفاده از روش GET فراهم می کند.

if($_GET["name"] || $_GET[" سن"]) ( echo "Welcome ". $_GET["name"]; echo "You are ". $_GET[" سن"]. " ساله "; exit();)

نام: سن:

روش POST

روش پستاطلاعات را از طریق هدر HTTP منتقل می کند. اطلاعات همانطور که در مورد روش توضیح داده شد کدگذاری می شود گرفتن، و در هدر قرار می گیرد QUERY_STRING.

  • روش POST هیچ محدودیتی در اندازه داده هایی که باید ارسال شوند ندارد.
  • از روش POST می توان برای ارسال ASCII و همچنین داده های باینری استفاده کرد.
  • داده هایی که با استفاده از روش POST ارسال می شوند از یک هدر HTTP عبور می کنند، بنابراین امنیت به پروتکل HTTP بستگی دارد. با استفاده از Secure HTTP، می توانید از امنیت اطلاعات خود اطمینان حاصل کنید.
  • PHP یک آرایه انجمنی $_POST برای دسترسی به تمام اطلاعات ارسال شده با استفاده از روش POST فراهم می کند.

مثال زیر را با قرار دادن امتحان کنید منبعبه اسکریپت test.php.

if($_POST["name"] || $_POST["سن"]) ( if (preg_match("[^A-Za-z"-]",$_POST["name"])) ( مرگ (" نام و نام نامعتبر باید آلفا باشد"؛ ) echo "خوش آمدید ". $_POST["name"]؛ echo "شما ". $_POST["سن"] هستید. "سال"؛ exit(); )

نام: سن:

متغیر $_REQUEST

متغیر PHP $_REQUESTحاوی مطالبی مانند $_GET, $_POST، بنابراین $_COOKIE. در مورد متغیر بحث خواهیم کرد $_COOKIEوقتی در مورد کوکی ها صحبت می کنیم

متغیر PHP $_REQUEST می تواند برای بازیابی نتیجه از داده های فرم ارسال شده با استفاده از روش های GET و POST استفاده شود.

وجه مشترک آنها این است که کارشان یکسان است. از نظر فنی تفاوتی بین آنها وجود ندارد. اما تفاوت های ایدئولوژیکی وجود دارد.

من در مورد آنها در زمینه PHP صحبت خواهم کرد. لطفا توجه داشته باشید که پروتکل HTTP به طور غیر مستقیم با PHP مرتبط است زیرا برای تبادل ایجاد شده است صفحات htmlو PHP به سادگی قابلیت های هر دو را گسترش می دهد.

درخواست GET برای دریافت داده و POST برای ارسال استفاده می شود. (به یاد داشته باشید که از نظر فنی آنها یکسان کار می کنند).

بنابراین، در زمینه PHP، بر اساس این ایدئولوژی، موارد زیر را انجام دادیم:
1. هر بار که PHP را راه اندازی می کنید، آرایه های سوپرگلوبال ($_GET، $_POST) به طور پیش فرض ایجاد می شوند.
2. اگر علامت سوال(؟) در رشته query وجود داشته باشد. همه چیز بعد از آن در نظر گرفته می شود مولفه هایدرخواست GET، آنها در قالب "key"="value" ارائه می شوند و کاراکتر علامت (&) به عنوان جداکننده استفاده می شود.
مثال:
دریافت /index.php?name=Andrey&surname=Galkin
این یک رشته پرس و جو است، 2 پارامتر وجود دارد. این پارامترها وارد آرایه $_GET خواهند شد.
3. $_POST به روش دیگری پر می شود. محتویات این آرایه از "سرصفحه های درخواست" پر شده است. یعنی از جایی که به وضوح از دید پنهان است. مرورگر تمام کارهای مربوط به ایجاد چنین هدرهایی را انجام می دهد. اگرچه گاهی اوقات چیزی در سرفصل ها به صورت دستی ویرایش می شود.

اغلب، درخواست پست در فرم ها (برای ارسال داده) استفاده می شود.

به عنوان مثال، ما یک فرم ورود با 2 فیلد: ورود و رمز عبور داریم.

بیایید تصور کنیم که از روش GET استفاده می کنیم. سپس در هنگام ارسال فرم به آدرس زیر می رویم /login.php?login=Andrey&password=123 شما موافقت می کنید که انتقال چنین اطلاعاتی از این طریق به هیچ وجه امن نیست. هرکسی می‌تواند مرورگر شما را باز کند و با شروع وارد کردن آدرس سایت، می‌تواند رمز عبور و لاگین‌های شما را از تاریخچه مشاهده کند.

اما اگر متد POST را مشخص می کردیم، درخواست زیر را دریافت می کنیم:
POST /login.php (login=Andrey&password=123) آنچه در داخل پرانتز است پنهان می شود و به هیچ وجه در مرورگر ذخیره نمی شود.

به طور خلاصه:
GET برای وارد کردن یک صفحه خاص است یک فرم خاص(مرتب سازی، صفحه فعلی وبلاگ، نوار جستجو و غیره).
POST - برای ارسال داده هایی که بر نمایش صفحه تأثیر نمی گذارد، به این معنا که این داده ها فقط بر نتیجه اسکریپت (ورودی، رمز عبور، شماره کارت اعتباری، پیام ها و غیره) تأثیر می گذارد.

و یک خبر خوب دیگر این است که می توان آنها را به عنوان مثال ترکیب کرد
POST /index.php?page=login (login=Andrey&password=123) فکر می کنم قبلاً به اندازه کافی توضیح داده ام که از این نتیجه چه خواهد شد و کدام پارامترها در کدام آرایه قرار می گیرند.

استفاده از متدهای GET و POST در PHP به سختی قابل برآورد است، زیرا این روش ها تقریباً در هر وب سایتی یافت می شوند. قبل از مطالعه مطالبی که در زیر توضیح داده شده است، به شما توصیه می کنم که با برچسب html آشنا شوید

. بیایید هر یک از این روش ها را با جزئیات بررسی کنیم.

روش GET

متد GET از یک رشته URL برای انتقال داده ها استفاده می کند. ممکن است متوجه URL های طولانی و نامشخص شده باشید. مثلا: function.php?login=Alex&email=dezyakin. در این حالت داده ها در function.php پردازش می شوند. پس از علامت سوال "?" لیستی از پارامترهای ارسال شده وجود دارد (پارامترها با "&" از هم جدا می شوند) با مقادیر: پارامتر ورود به سیستم مقدار Alex و متغیر ایمیل با مقدار dezyakin اختصاص داده می شود. داده ها در آرایه superglobal $_GET ذخیره می شوند. نمونه ای از استفاده از روش GET در زیر ارائه شده است:

وارد شدن: پست الکترونیک: با استفاده از آرایه superglobal $_GET، مقادیر پذیرفته شده را نمایش می دهیم:*/ پژواک"
login = ". $_GET["login"] ; echo "
email = ". $_GET["email"] ; ?>

توجه کنید که چگونه مقادیر را از آرایه ابرجهانی $_GET می خوانیم: $_GET["variable_name"]. در مثال ما، نام متغیرها به شکل (name=login و name=email) اعلام شد.

مشاوره:
قبل از پردازش مقادیر دریافتی، به شما توصیه می کنم وجود آنها را از طریق توابع بررسی کنید isset(نام_متغیر)یا خالی (نام_متغیر)- این توابع در درس 2 قبلی مورد بحث قرار گرفت: متغیرها در PHP. مثلا:

بررسی وجود با استفاده از isset: if isset ($_GET["login"] ) ( اپراتورها برای پردازش ورود ... } //یا وجود را با استفاده از خالی بررسی کنید:اگر خالی باشد ($_GET["ایمیل"] ) ( اپراتورهای پردازش ایمیل ... } ?>

در فرم می توانید نام فایلی را که مقادیر منتقل شده را پردازش می کند، مشخص کنید. این کار با استفاده از ویژگی action فرم انجام می شود که می توان آدرس این فایل را به آن اختصاص داد. به طور پیش فرض این فایل اختصاص داده شده است فایل کنونی(یعنی در فایلی که فرم در آن قرار دارد پردازش شده است). در اینجا مثالی وجود دارد که در آن داده‌های یک فرم برای پردازش به فایل srcipt.php منتقل می‌شوند:

وارد شدن: پست الکترونیک:

فایل script.php باید حاوی نوعی کنترل کننده اطلاعات باشد، در غیر این صورت اطلاعات خالی ارسال می شود.

روش GET دارای معایب بسیاری است:

  • کاربر مقادیر پارامترهای ارسال شده را می بیند.
  • کاربر به راحتی می تواند جعل کند پارامترهای تصویب شده;
  • انتقال نامناسب اطلاعات باینری (شما باید آن را در آن رمزگذاری کنید قالب متن);
  • حجم داده های منتقل شده محدود است - 8 کیلوبایت.

با توجه به معایب فوق، روش GET تنها در مواردی استفاده می شود که نیاز به انتقال حجم کمی از داده ها باشد و این داده ها به هیچ وجه طبقه بندی نمی شوند.

روش POST

روش POST با GET متفاوت است زیرا داده ها به صورت خصوصی منتقل می شوند. یک آرایه ابرجهانی $_POST وجود دارد که داده ها را می توان به صورت زیر خواند: $_POST["variable_name"]. مثلا:

وارد شدن: "> ایمیل: ">
با استفاده از آرایه superglobal $_POST، مقادیر پذیرفته شده را نمایش می دهیم:*/ پژواک"
login = ". $_POST["login"] ; echo "
email = ". $_POST["email"] ; ?>

نتیجه اجرای کد بالا در شکل زیر نشان داده شده است:

همانطور که می بینید، URL هیچ پست اسکریپتی ندارد، اما با این وجود داده ها دریافت و نمایش داده شده اند.

توجه داشته باشید:
1) حجم مقادیر منتقل شده با استفاده از روش POST به صورت پیش فرض محدود بوده و برابر با 8 مگابایت است. برای افزایش این مقدار باید دستور post_max_size را در php.ini تغییر دهید.

2) در نسخه‌های قبلی PHP، به جای نام‌های کوتاه آرایه ابرجهانی $_GET و $_POST، از نام‌های طولانی‌تر استفاده می‌شد: $HTTP_GET_VARS و $HTTP_POST_VARS. به طور پیش فرض آنها در PHP 5 غیرفعال هستند، اما می توانید آنها را در فایل پیکربندی php.ini با استفاده از پارامتر register_long_arrays فعال کنید. در نسخه php 6 این نام های طولانی در دسترس نخواهند بود.

3) قبل از پردازش متغیرها از $_POST، من به شما توصیه می کنم که متغیرها را از نظر وجود آنها بررسی کنید، همانطور که با روش GET انجام شد.



 


خواندن:



منوی سمت چپ cayo coco را باز کنید

منوی سمت چپ cayo coco را باز کنید

جزیره کایو کوکو یک جزیره تفریحی در مرکز کوبا است. موقعیت جزیره جزیره کایو کوکو دقیقا روبروی کانال ویجو در...

چرا به ارتباطات رادیویی و ایستگاه های رادیویی نیاز داریم؟

چرا به ارتباطات رادیویی و ایستگاه های رادیویی نیاز داریم؟

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

ضرایب همبستگی رتبه کندال و اسپیرمن مثال ضریب همبستگی رتبه کندال

ضرایب همبستگی رتبه کندال و اسپیرمن مثال ضریب همبستگی رتبه کندال

ارائه و پردازش مقدماتی ارزیابی های کارشناسی در عمل از چندین نوع ارزیابی استفاده می شود: - کیفی (اغلب به ندرت،...

توابع برنامه نویسی

توابع برنامه نویسی

هدف کار: 1) قوانین توصیف توابع را مطالعه کنید. 2) کسب مهارت در استفاده از توابع هنگام نوشتن برنامه در C++. نظری...

فید-تصویر RSS