نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی پرتال اطلاعاتی

PHP و فرم ها PHP _SELF روی ویژگی action فرم

آخرین به روز رسانی: 1.11.2015

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

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

    ایجاد عنصر

    در نشانه گذاری HTML

    افزودن یک یا چند فیلد ورودی به این عنصر

    تنظیم روش انتقال داده: GET یا POST

    تنظیم آدرسی که داده های وارد شده به آن ارسال می شود

بنابراین بیایید یک شکل جدید ایجاد کنیم. برای این کار یک فایل form.php جدید تعریف می کنیم که محتوای زیر را در آن قرار می دهیم:

وارد سایت شوید

وارد شدن:

کلمه عبور:

ویژگی action = "login.php" عنصر فرم مشخص می کند که داده های فرم توسط اسکریپت پردازش می شوند. login.phpکه همراه فایل خواهد بود form.phpدر یک پوشه و ویژگی متد = "POST" نشان می دهد که روش POST به عنوان روش انتقال داده استفاده خواهد شد.

حالا بیایید یک فایل بسازیم login.phpکه دارای محتوای زیر خواهد بود:

رمز عبور شما: $ password ";?>

متغیر جهانی $ _POST برای دریافت داده های فرم استفاده می شود. این یک آرایه انجمنی از داده های ارسال شده با استفاده از روش POST را نشان می دهد. با استفاده از کلیدها می توانیم مقادیر ارسال شده را بدست آوریم. کلیدهای این آرایه مقادیر ویژگی های نام فیلدهای ورودی فرم هستند.

از آنجایی که ویژگی نام فیلد ورودی ورود به سیستم ورود است ( ، سپس در آرایه _POST $ مقدار این فیلد نشان دهنده کلید "login" است: $ _POST ["login"]

و از آنجایی که موقعیت هایی وجود دارد که فیلد ورودی تنظیم نمی شود، به عنوان مثال، زمانی که مستقیماً به اسکریپت می روید: http: // localhost: 8080 / login.php... در این مورد، توصیه می شود قبل از پردازش داده ها، در دسترس بودن داده ها را با استفاده از تابع isset () بررسی کنید. و اگر متغیر تنظیم شده باشد، تابع isset () true خواهد شد.

اکنون می توانیم به فرم مراجعه کنیم:

و با زدن دکمه داده های وارد شده به روش POST به اسکریپت ارسال می شود login.php:

شما مجبور نیستید داده های فرم را به اسکریپت دیگری ارسال کنید، می توانید داده های فرم را در همان فایل فرم پردازش کنید. برای این کار فایل را تغییر می دهیم form.phpبه روش زیر:

رمز عبور شما: $ password ";)?>

وارد سایت شوید

وارد شدن:

کلمه عبور:

امنیت داده ها

امنیت داده ها در PHP بسیار مهم است. بیایید به چند مکانیسم ساده نگاهی بیندازیم که می تواند امنیت وب سایت ما را بهبود بخشد.

اما ابتدا فرم مربوط به مبحث قبل را گرفته و سعی می کنیم اطلاعاتی را در آن وارد کنیم. به عنوان مثال، بیایید در فیلد ورود وارد کنیم ""، و در قسمت رمز عبور متن"

کلمه عبور

":

پس از ارسال داده ها به نشانه گذاری html، کد جاوا اسکریپت تزریق می شود که یک جعبه پیام را نمایش می دهد.

برای جلوگیری از این نوع مشکل امنیتی، از تابع htmlentities () استفاده کنید:

اگر (isset ($ _ POST ["ورود"]) && isset ($ _ POST ["رمز عبور"])) ($ login = htmlentities ($ _ POST ["ورود"])؛ $ رمز عبور = htmlentities ($ _ POST ["رمز عبور" ])؛ echo "ورود شما: ورود $
رمز عبور شما: رمز عبور $ ";)

و حتی پس از وارد کردن کد html یا جاوا اسکریپت، تمامی تگ ها فرار کرده و خروجی زیر را دریافت می کنیم:

ویژگی دیگر، تابع strip_tags () است که به شما امکان می دهد تگ های html را به طور کامل حذف کنید:

اگر (isset ($ _ POST ["ورود"]) && isset ($ _ POST ["رمز عبور"])) ($ login = strip_tags ($ _ POST ["login"])؛ $ password = strip_tags ($ _ POST ["رمز عبور" ])؛ echo "ورود شما: ورود $
رمز عبور شما: رمز عبور $ ";)

حاصل کار آن با همان ورودی خروجی زیر خواهد بود.

روز همگی بخیر الکسی گولینین در تماس است. در آخرین مقاله، متوجه شدید که سریال سازی در php چیست. در این مقاله می خواهم در مورد نحوه کار با آن صحبت کنم فرم ها در PHP... PHP برای اسکریپت نویسی وب طراحی شده است و پردازش فرم شاید مهم ترین در این فرآیند باشد. امروزه حتی نمی توانید با سایت هایی برخورد کنید که مثلاً ثبت نام یا فرم بازخورد یا پرسشنامه ندارند. انجمن ها، فروشگاه های آنلاین، اضافه کردن نظر، ارسال پیام در یک شبکه اجتماعی - همه اینها پردازش داده های قرار داده شده در فیلدهای فرم است. بیایید از یک مثال استفاده کنیم تا بفهمیم چگونه پردازش فرم ها در PHP.
ما یک کار ساده را اجرا خواهیم کرد: شما باید 2 فیلد (نام و نام خانوادگی) ایجاد کنید، این داده ها را به اسکریپت action.php منتقل کنید، در نتیجه باید یک تبریک بیرون بیاید. "خوش آمدید نام خانوادگی"... چه کسی فراموش کرده است که فرم ها چگونه ایجاد می شوند و چه زمینه هایی وجود دارد، می توانید ببینید. بیایید یک فایل test.html ایجاد کنیم:

نام: نام خانوادگی:

لطفاً توجه داشته باشید که فایل action.php (در مورد ما) باید در همان پوشه فایل test.html قرار گیرد. در اینجا می توانید مسیرهای نسبی و مطلق را مشخص کنید. مراقب باشید، بسیاری از خطاها با تعیین نادرست مسیر اسکریپت کنترل کننده فرم همراه است.

بیایید یک فایل action.php با محتوای زیر ایجاد کنیم:

اگر اکنون فایل test.html را باز کرده و فیلدهای فرم را پر کرده و روی دکمه کلیک کنیم به فایل action.php میرسیم که در آن پیغامی نمایش داده می شود. در این حالت مرورگر به اسکریپت action.php اشاره می کند و آن را از طریق "?" به آن پاس می دهد. تمام مقادیر ویژگی های نام که در داخل تگ ها قرار دارند جدا شده به واسطه &. توجه داشته باشید که چه چیزی جایگزین _SERVER $ شده است.

ما می توانیم با تجزیه رشته QUERY_STRING با استفاده از توابع استاندارد برای کار با رشته ها در PHP مشکل خود را حل کنیم، اما بهتر است از مکانیزم دیگری استفاده کنیم - این با استفاده از آرایه $ _REQUEST است. PHP تمام داده های دریافتی از فیلدهای فرم را بدون توجه به نحوه انتقال داده ها در آرایه $ _REQUEST قرار می دهد: POST یا GET (شما می توانید از طریق _SERVER $ ["REQUEST_METHOD"] متوجه شوید. اجازه دهید به شما یادآوری کنم که این روش ها چگونه متفاوت هستند:

روش GET عمومی است، روش POST خصوصی است، یعنی. آنها در نحوه ارسال پارامترها متفاوت هستند. مثال:

1) اگر از روش ارسال استفاده کنیم: mysite.ru/request.php.
2) اگر از روش دریافت استفاده کنیم: mysite.ru/request.php?myname=ansAlexans&surname=Gulynin ".

همچنین، علاوه بر آرایه $ _REQUEST، PHP آرایه های $ _GET و $ _POST را ایجاد می کند. بیایید اکنون وظیفه خود را بر اساس دانش به دست آمده اجرا کنیم:

اگر اکنون فرم را پر کرده و روی دکمه کلیک کنیم، می بینیم که اسکریپت action.php با نام خانوادگی و نام به ما سلام می دهد. همه چیز به درستی کار می کند.

اینجا همه چیز خوب است، اما اگر نام اسکریپت را تغییر دهیم، باید تغییراتی در فایل test.html ایجاد کنیم. بیایید فایل action.php را طوری تغییر دهیم که با دسترسی به آن، زمانی که چیزی ارسال نکرده‌ایم، فرمی نمایش داده می‌شود، یا وقتی روی دکمه کلیک می‌کنیم، تبریک می‌گوییم:

"> نام: نام خانوادگی:

اکنون ما به نام اسکریپت وابسته نیستیم، زیرا ما آن را از طریق متغیر محیطی $ _SERVER ["SCRIPT_NAME"] تنظیم می کنیم. = $ _ SERVER ["SCRIPT_NAME"]؟> معادل است .
علاوه بر متغیر محیطی SCRIPT_NAME، متغیرهای بسیار دیگری نیز وجود دارد.

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

من اخیراً مقاله ای در مورد نحوه انجام این کار با استفاده از افزونه فرم تماس 7 انجام دادم. همچنین می توانید فقط یک فرم بازخورد در جوملا و سایر CMS های محبوب ایجاد کنید.

اما سایت هایی که از CMS محبوب استفاده نمی کنند چطور؟ - باقی مانده است که همه چیز را با دستان خود انجام دهید.

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

می توانید نصب و سفارشی سازی فرم تمام شده را با قیمت 500 روبل در اینجا سفارش دهید (این برای کسانی است که خیلی تنبل هستند که با دستان خود کار کنند یا مهارت کافی نیست).

نحوه عملکرد فرم بازخورد html

فرم ما دارای 5 فیلد برای وارد کردن داده ها خواهد بود - نام، آدرس ایمیل، شماره تلفن، آدرس وب سایت، متن پیام (شما می توانید خودتان آنها را حذف یا تغییر دهید).

همه فیلدها، به جز آدرس وب سایت، مورد نیاز خواهند بود (همچنین می توانید خودتان آن را پیکربندی کنید).

برای فیلدهای دارای آدرس ایمیل و وب سایت، بررسی اجباری صحت ورود داده ها انجام می شود.

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


فرم تماس ایجاد شده در html برای کار به 3 عنصر نیاز دارد.

اولی مسئول ساختار خود فرم، نوع و تعداد فیلدهای ورودی داده است. این کد معمولی html است.

دومی مسئول پردازش داده هایی است که کاربر در فیلدهای فرم وارد می کند. پس از کلیک روی دکمه ارسال پیام، مشخص می کند که چه چیزی، کجا و به چه شکلی فوروارد شود. برای پیاده سازی از یک اسکریپت خاص PHP استفاده می شود.

سوم مسئول ظاهر است. اندازه و موقعیت فیلدهای ورودی داده را تنظیم می کند، رنگ ها و افکت های مختلف را اضافه می کند. این همه توسط سبک های CSS تنظیم شده است.

نسخه آزمایشی فرم

ما تنظیمات هر یک از این عناصر را مرحله به مرحله تجزیه و تحلیل خواهیم کرد.

ایجاد طرح بندی HTML

برای اینکه مقاله زیاد طولانی نشود و هر عنصر جداگانه اضافه نشود، کد html کامل را می دهم و در زیر هر بلوک و تغییرات احتمالی را شرح می دهم.

برای نشان دادن فرم ها در html از تگ استفاده می شود

، که در داخل آن پارامترهای لازم پر شده است.

فرمت صحیح " [ایمیل محافظت شده]"

قالب صحیح "+ 7-123-4567890" است

فرمت صحیح "http://someaddress.com" است

"اسمت را وارد کن"مورد نیاز />

"آدرس ایمیل خود را وارد کنید"مورد نیاز />

"شماره تلفن خود را وارد کنید"مورد نیاز />

قالب صحیح "+ 7-123-4567890" است

"آدرس وب سایت خود را وارد کنید"الگو = "(http | https): //.+" />

فرمت صحیح "http://someaddress.com" است

بیایید با خط اول شروع کنیم.

class = "contact_form"- ما کلاس را به منظور تنظیم سبک های CSS در آینده نشان می دهیم.

action = ”contact-form.php”- نام فایل را با اسکریپتی که داده های فرم را پردازش کرده و پیام ارسال می کند، مشخص کنید. اگر فایل در همان پوشه صفحه با فرم است، کافی است فقط نام فایل را مشخص کنید، اگر در پوشه دیگری باشد، باید مسیر فایل را مشخص کنید.

سپس 4 بلوک وجود دارد

مسئول خروجی فیلدها برای ورود اطلاعات، از اسامی مشخص است که کدام یک مسئول چه چیزی است. خود فیلدها با استفاده از تگ ها نمایش داده می شوند ، که در داخل آن ویژگی های زیر تنظیم شده است:

تایپ کنید- مسئول نوع داده های ورودی، متن - متن ساده، ایمیل - آدرس ایمیل، چنین فیلدهایی به طور خودکار برای صحت بررسی می شوند (@ باید وجود داشته باشد)، شماره تلفن، آدرس اینترنتی - آدرس سایت.

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

مکان نگهداریک اشاره در داخل فیلد است، متنی که جایگزین فیلد خالی عنصر می شود. می توان آن را تغییر داد یا حذف کرد؛ این کار تأثیری بر عملکرد فرم ندارد.

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

الگو = ”(http | https): //.+”- این ساختار برای بررسی درستی فیلد وب سایت است، نشان می دهد که آدرس باید حاوی متن http: // یا متن https: // باشد، در غیر این صورت خطایی رخ می دهد.

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

فیلدهای وارد کردن خود پیام با یک برچسب مشخص شده است

پردازش فرم ها بدون نگرانی در مورد نام فیلدهای واقعی امکان پذیر است.

برای انجام این کار، می توانید (بسته به روش انتقال) از آرایه انجمنی $ HTTP_GET_VARS یا $ HTTP_POST_VARS استفاده کنید. این آرایه ها شامل جفت نام / مقدار برای هر عنصر فرم ارسال شده است. اگر اهمیتی نمی دهید، می توانید از آرایه انجمنی _REQUEST $ استفاده کنید.

مثال 6

مدیریت ورودی دلخواه بدون توجه به روش انتقال $ value) echo "$ key == $ value
"; ?>

مثال 7. مدیریت کلیک بر روی یک دکمه با استفاده از عملگر "@".

">

با استفاده از تابع هدر () با ارسال هدر "مکان" به مرورگر، می توانید کاربر را به صفحه جدیدی هدایت کنید.

مثلا:

انتقال فایل به سرور آپلود فایل. بارگذاری

PHP به شما امکان می دهد فایل ها را به سرور منتقل کنید. فرم HTML برای ارسال فایل باید حاوی آرگومان enctype = "multipart / form-data" باشد.

علاوه بر این، باید یک فیلد مخفی به نام max_file_size در جلوی قسمت کپی فایل در فرم وجود داشته باشد. این فیلد پنهان باید حداکثر حجم فایل منتقل شده را داشته باشد (معمولاً بیش از 2 مگابایت).

فیلد انتقال فایل خود یک عنصر INPUT معمولی با آرگومان type = "file" است.

مثلا:

"روش =" پست ">

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

مثال 8

در حال پردازش فایل منتقل شده "; echo" name: ". $ _ FILES [" userfile "] [" name "]."
"; echo" اندازه: ". $ _ FILES [" userfile "] [" size "]."
"; echo" نوع: ". $ _ FILES [" userfile "] [" type "]."
"; } ?>
"روش =" پست ">

نمونه هایی از آپلود فایل ها در سرور

اگر با رمزگذاری سرور فایل آپلود شده مشکل دارید، نماد با کد 0x00با یک فاصله (نویسه با کد 0x20، به فایل اضافه کنید httpd.confاز دایرکتوری آپاچی (/ usr / local / apache) خطوط زیر.

CharsetRecodeMultipartForms خاموش است

مقالات مرتبط برتر