با عرض سلام خدمت کاربران محترم سایت پی وی لرن. در این جلسه و جلسات آتی قصد داریم تا به مباحث مختلف کار با فرم ها در PHP و دریافت اطلاعات از فرم در PHP بپردازیم.
همانطور که می دانید، فرم ها (Form) صفحاتی هستند که اطلاعات مختلفی را از کاربر دریافت می کنند.
php از سوپرگلوبال های (superglobal) GET_$ و POST_$ برای جمع آوری داده ها از فرم استفاده می کند.
superglobal ها متغیر های سراسری هستند که می توانند در هر کجا از کد مورد استفاده قرار بگیرند.
مثال زیر فرم ساده ای را نمایش می دهد که دارای دو فیلد دیافتی و یک دکمه ارسال (submit) می باشد.
1 2 3 4 5 6 7 8 9 10 11 | <html> <body> <form action="welcome.php" method="post"> Name: <input type="text" name="name"><br> E-mail: <input type="text" name="email"><br> <input type="submit"> </form> </body> </html> |
وقتی که کاربر فرم بالا را پر کرد و روی دکمه ارسال کلیک کند، داده های فرم به فایلی به نام “welcome.php” برای پردازش ارسال می شوند. این اطلاعات با استفاده از متد HTTP POST ارسال می شوند.
برای دریافت اطلاعات از فرم در php و نمایش آن ها می توانید به سادگی از دستور echo برای متغیر ها استفاده نمایید.
فایل “welcome.php” را در پایین مشاهده می کنید:
1 2 3 4 5 6 7 8 | <html> <body> Welcome <?php echo $_POST["name"]; ?><br> Your email address is: <?php echo $_POST["email"]; ?> </body> </html> |
خروجی کد بالا:
1 2 | Welcome John Your email address is john.doe@example.com |
با استفاده از متد HTTP GET نیز می توانیم به نتیجه مشابه بالا برسیم.
1 2 3 4 5 6 7 8 9 10 11 | <html> <body> <form action="welcome_get.php" method="get"> Name: <input type="text" name="name"><br> E-mail: <input type="text" name="email"><br> <input type="submit"> </form> </body> </html> |
فایل “welcome.php” :
1 2 3 4 5 6 7 8 | <html> <body> Welcome <?php echo $_GET["name"]; ?><br> Your email address is: <?php echo $_GET["email"]; ?> </body> </html> |
کد بالا کاملا واضح و سادست اما یک چیز مهم را فراموش کردیم. برای جلوگیری از ارسال کد مخرب توسط وروذی ها ما باید داده ها را اعتبار سنجی نماییم. در جلسات آتی به این مبحث خواهیم پرداخت.
GET و POST هردو یک آرایه ایجاد می کنند. (مانند : array( key => value, key2 => value2, key3 => value3 ,…) ) .
این آرایه جفت کلید/مقدار هایی را ذخیره می کند که کلید ها اسم کنترل های فرم و مقدار ها داده های ورودی کاربر از طریق فرم ها است.
GET_$ آرایه ای از متغیر های ارسال شده به اسکریپت جاری توسط پارامتر های URL می باشد.
POST_$ آرایه ای از متغیر های ارسال شده به اسکریپت جاری توسط متد HTTP POST می باشد.
اطلاعاتی که توسط متد GET از یک فرم ارسال می شوند، برای همه قابل مشاهده است.(تمام اسم متغیر ها ومقادیر داخل URL قابل مشاهده می باشد)
همچنین GET برای مقدار اطلاعات ارسالی محدودیت هایی رو دربرداره. محدودیت حدود ۲۰۰۰ کاراکتر هست.
به هرحال به این دلیل که متغیر ها داخل URL قابل نمایش هستند، این امکان وجود دارد تا صفحه را نشانه گذاری(bookmark) کنیم که می تواند در بعضی از موارد کاربرد داشته باشد.
GET ممکنه برای ارسال اطلاعات غیر حساس استفاده شود.
نکته : هیچ گاه از GET برای ارسال پسوورد ها و اطلاعات حساس استفاده نکنید.
اطلاعاتی که توسط متد POST از یک فرم ارسال می شوند، برای دیگران قابل مشاهده نیست.(تمام اسم متغیر ها ومقادیر داخل بدنه درخواست HTTP جای گرفته است) و هیچ محدودیتی برای مقدار اطلاعات ارسالی وجود ندارد.
علاوه بر این، POST از قابلیت های پیشرفته مانند پشتیبانی از ورودی های باینری چند بخشی در هنگام آپلود فایل ها به سرور برخوردار هست.
در کل برای ارسال اطلاعات بیشتر از POST استفاده می شود.
در این جلسه با نحوه کار با فرم ها در php و دریافت اطلاعات از آن ها آشنا شدید. در جلسه بعد به اعتبار سنجی فرم ها در php خواهیم پرداخت.
در ضمن میتوانید نظرات و سوالات خود را از طریق بخش نظرات با ما در میان بگذارید.
edrispy
سلام مطلب خیلی مفیدوعالی بود
علیرضا
سلام نمیشه هنگام ارسال اطلاعات به کاربر برگه php نماییش داده نشود
Mrms
سلام.من میخوام برای سایتم یه فرم بسازم که فرد بتونه اسم و ایمیلشو بده و اون منتقل بشه به پنل ادمین.متاسفانه من بک اند کار نیستم و هیچ مهارتی تو بخش سمت سرور ندارم.پس لطفا کمک کنید(: