مدیریت فرم‌ها

از ویکی‌کد
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Php-menu.png
موارد آموزشی
فرم‌ها در PHP
۱مدیریت فرم
۲ارزیابی فرم
۳فیلدهای اجباری فرم
۴ارزیابی URL/E-mail
۵فرم کامل
PHP پیشرفته
شیء گرایی در PHP
پایگاه داده MySQL
XML در PHP
AJAX در PHP
مثال‌های PHP
مرجع PHP

متغیرهای فراسراسری (به انگلیسی: superglobals) یعنی $_GET و $_POST برای جمع‌آوری داده‌های فرم استفاده می‌شوند. [۱]

PHP - یک فرم ساده HTML

مثال زیر یک فرم ساده HTML شامل دو فیلد ورودی داده و یک دکمه ثبت را نمایش می‌دهد:

مثال

 1 <html>
 2 <body>
 3 
 4 <form action="welcome.php" method="post">
 5 Name: <input type="text" name="name"><br>
 6 E-mail: <input type="text" name="email"><br>
 7 <input type="submit">
 8 </form>
 9 
10 </body>
11 </html>


مشاهدهٔ نتیجه


زمانی که کاربر فرم بالا را پر می‌کند و روی دکمه ثبت کلیک می‌کند، اطلاعات فرم برای فایل پردازشگری به نام "welcome.php" ارسال می‌گردد. اطلاعات فرم به وسیله روش HTTP POST ارسال می‌گردد.

برای نمایش اطلاعات ثبت شده، شما به سادگی می‌توانید مقادیر تمامی متغیرها را در خروجی چاپ کنید. فایل "welcome.php" به صورت زیر است:

<html>
<body>

Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>

</body>
</html>

خروجی شبیه به چیزی همانند زیر خواهد بود:

Welcome John
Your email address is john.doe@example.com

می‌توان با استفاده از روش HTTP GET به نتیجه‌ای مشابه مثال بالا دست یافت:

مثال

 1 <html>
 2 <body>
 3 
 4 <form action="welcome_get.php" method="get">
 5 Name: <input type="text" name="name"><br>
 6 E-mail: <input type="text" name="email"><br>
 7 <input type="submit">
 8 </form>
 9 
10 </body>
11 </html>


مشاهدهٔ نتیجه


و فایل "welcome_get.php" به صورت زیر است:

<html>
<body>

Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>

</body>
</html>

کد بالا بسیار ساده است. اما، مهمترین بخش فراموش شده‌است. شما می‌بایست داده‌های فرم را ارزیابی کنید تا کد خود را از کدهای مخرب محافظت کنید.

در هنگام پردازش فرم‌های PHP به امنیت نیز فکر کنید!

این صفحه شامل هیچ‌گونه ارزیابی نمی‌شود، این صفحه تنها به شما نحوه ارسال و دریافت اطلاعات از فرم‌ها را نشان می‌دهد.

اما، صفحات بعدی به شما نشان می‌دهند که چگونه داده‌های فرم‌ها را در PHP با همان میزان امنیتی که در سر دارید پردازش کنید! فراهم سازی ارزیابی برای داده‌های فرم برای محافظت از فرم شما در برابر هکرا و اسپمرها مهم است!

روش GET در برابر روش POST

هر دوی روش‌های GET و POST یک آرایه (برای مثال (key1 => value1, key2 => value2, key3 => value3, ...)) می‌سازد. این آرایه جفت‌هایی از مقادیر کلید/مقدار را نگه‌داری می‌کند که کلید نام کنترل‌های فرم است و مقادیر نیز داده‌های وارد شده توسط کاربر هستند.

هر دو روش‌های GET و POST به صورت $_POST و $_GET شناخته می‌شوند. این موارد جز متغیرهای فراسراسری (به انگلیسی: Superglobals) هستند که به این معنی است که این متغیرها همیشه و بدون وابسته بودن به محدوده دسترسی، قابل دسترسی هستند – و شما می‌توانید به آنها از طریق هر تابع، کلاس یا فایلی بدون نیاز به انجام کار به خصوصی، دسترسی داشته باشید.

$_GET آرایه‌ای از متغیرهایی است که به اسکریپت جاری به وسیله پارامترهای URL ارسال شده‌است.

$_POST آرایه‌ای از متغیرهایی است که به اسکریپت جاری به وسیله روش HTTP POST ارسال شده‌اند.

چه زمانی می بایست از GET استفاده کرد؟

اطلاعاتی که از یک فرم به وسیله روش GET ارسال می‌شود، برای همه نمایان است (تمامی نام متغیرها و مقادیر در URL نشان داده می‌شوند). همچنین روش GET نیز محدودیتهایی را روی میزان اطلاعات ارسالی دارد. محدودیت روش GET 2000 کاراکتر است. اما، چون متغیرها در URL نشان داده می‌شوند، امکان نشانه‌گذاری (به انگلیسی: Bookmark) صفحه وجود دارد. این امر می‌تواند در بعضی از موارد کاربردی باشد.

از روش GET می‌توان برای ارسال داده‌های غیرحساس استفاده کرد.

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

چه زمانی می بایست از روش POST استفاده کرد؟

اطلاعاتی که از یک فرم به وسیله روش POST ارسال می‌شود برای دیگران پنهان است (تمامی نام‌ها/مقادیر درون بدنه درخواست HTTP قرار می‌گیرند) و همچنین هیچ‌گونه محدودیتی برای میزان اطلاعات ارسالی وجود ندارد.

به علاوه روش POST از برخی قابلیت‌های پیشرفته مانند پشتیبانی از ورودی چند بخشی باینری (دو دویی) هنگام بارگذاری فایل روی سرور پشتیبانی می‌کنند.

اما، چون متغیرها در URL نمایان نیستند، نشانه‌گذاری صفحه ممکن نیست.

توسعه دهندگان ترجیح می‌دهند از روش ارسال POST برای ارسال داده‌های فرم استفاده کنند.

حالا، بگذارید ببینیم چطور می‌توانیم اطلاعات فرم‌ها در PHP را به صورت امن پردازش کنیم!

تمرینات PHP

Time2wait.svg ساخت نمونه مثال این بخش در دست اقدام است.



منابع آموزشی