فرم ثبت نام php ایندکس آرام. ساخت یک سیستم ثبت فوق العاده ساده در PHP و MySQL

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

میزبانی نمایندگی فروش

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

اکثر کاربران وب سایت یا لینوکس یا ویندوز دارند. این مربوط به زمان کار است. هر دو پلتفرم تضمین می کنند که وب سایت شما در 99٪ مواقع بالا است.

1. سفارشی سازی

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

2. برنامه های کاربردی

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

با این حال، لطفاً توجه داشته باشید که اگر از لینوکس برای میزبانی وب استفاده می کنید اما در عین حال از سیستم عامل ویندوز استفاده می کنید، ممکن است برخی از برنامه ها به سادگی کار نکنند.

3. ثبات

در حالی که هر دو سیستم عامل پایدار هستند، میزبانی Reseller Linux از این دو پایدارتر است. این پلتفرم منبع باز است، می تواند در چندین محیط کار کند. این پلتفرم را می توان هر از چند گاهی اصلاح و توسعه داد.

4. سازگاری با دات نت

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

5. مزایای هزینه

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

6. سهولت در راه اندازی

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

7-امنیت

میزبانی نمایندگی لینوکس را انتخاب کنید زیرا از ویندوز ایمن تر است. این امر به ویژه برای افرادی که تجارت الکترونیکی خود را اداره می کنند صادق است.

نتیجه

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



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

صادقانه بگویم، من مدت زیادی است که این وبلاگ را دارم و در گذشته به شبکه های تبلیغاتی مختلفی سر زده ام. پس از حذف واحدهای تبلیغاتی از آن شرکتی که مرا سخت کرده بود، به نقطه اول برگشتم. همچنین باید توجه داشته باشم که من هرگز محصول Googles AdSense را دوست نداشتم، فقط به این دلیل که احساس می کنم "پایین" تبلیغات نمایشی است نه از منظر کیفیت، بلکه از نظر درآمد.

با توجه به آنچه که من متوجه شدم، شما می خواهید تبلیغات گوگل در سایت خود انجام شود، اما همچنین می خواهید شرکت ها و آژانس های بزرگ دیگر نیز این کار را انجام دهند. به این ترتیب تقاضا و درآمد را به حداکثر می رسانید.

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

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

آنها اولین پرداخت را به موقع با پی پال به من دادند. اما از آنجایی که من در ایالات متحده نیستم (و این برای هر کسی که فکر می‌کنم اتفاق می‌افتد)، هزینه‌ای از Paypal دریافت کردم. در مورد آن به نماینده‌ام ایمیل زدم و پرسیدم آیا راهی برای جلوگیری از آن در آینده وجود دارد یا خیر.

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

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

میکروکامپیوترهایی که توسط بنیاد Raspberry Pi در سال 2012 ایجاد شده‌اند، در برانگیختن سطوح خلاقیت در کودکان بسیار موفق بوده‌اند و این شرکت مستقر در بریتانیا شروع به ارائه برنامه‌های استارت‌آپ یادگیری برای کدنویسی مانند pi-top an Kano کرد. اکنون یک استارت آپ جدید وجود دارد که از الکترونیک Pi استفاده می کند و دستگاه به نام Pip شناخته می شود، یک کنسول دستی که یک صفحه نمایش لمسی، چندین پورت، دکمه های کنترل و بلندگوها را ارائه می دهد. ایده پشت دستگاه این است که افراد جوان تر را با یک دستگاه بازی که یکپارچهسازی با سیستمعامل است، درگیر کند، اما تجربه یادگیری کد را از طریق یک پلت فرم مبتنی بر وب نیز ارائه می دهد.

پلتفرم نرم‌افزاری شگفت‌انگیزی که با Pip ارائه می‌شود، فرصتی را برای شروع کدنویسی در Python، HTML/CSS، JavaScript، Lua و PHP ارائه می‌دهد. این دستگاه آموزش های گام به گامی را برای شروع برنامه نویسی به کودکان ارائه می دهد و به آنها اجازه می دهد حتی LED ها را فلاش کنند. در حالی که Pip هنوز یک نمونه اولیه است، مطمئناً موفقیت بزرگی در صنعت خواهد بود و کودکانی را که به کدنویسی علاقه دارند درگیر خواهد کرد و آموزش و منابع مورد نیاز برای شروع کدنویسی در سنین پایین را در اختیار آنها قرار خواهد داد.

آینده برنامه نویسی آینده بسیار خوبی دارد، و حتی اگر کودکان از کدنویسی به عنوان شغلی استفاده نکنند، می توانند از یادگیری نحوه کدنویسی با این دستگاه جدید که کار را از همیشه آسان تر می کند، بهره مند شوند. با Pip، حتی جوان‌ترین علاقه‌مندان به برنامه‌نویسی زبان‌های مختلف را یاد می‌گیرند و در راه ایجاد کدهای خود، بازی‌های خود، برنامه‌های شخصی و موارد دیگر خواهند بود. این آینده عصر الکترونیک است و Pip اجازه می دهد تا بلوک های سازنده اساسی کدنویسی تسلط یابد.
علوم کامپیوتر به بخش مهمی از آموزش تبدیل شده است و با دستگاه هایی مانند Pip جدید، کودکان می توانند همزمان با سرگرمی، آموزش خود را در خانه تقویت کنند. کدنویسی بسیار فراتر از ایجاد وب سایت یا نرم افزار است. می توان از آن برای افزایش ایمنی در یک شهر، کمک به تحقیقات در زمینه پزشکی و موارد دیگر استفاده کرد. از آنجایی که ما اکنون در دنیایی زندگی می کنیم که تحت تسلط نرم افزار است، برنامه نویسی آینده است و برای همه کودکان مهم است که حداقل درک اولیه از نحوه کارکرد آن داشته باشند، حتی اگر هرگز از این مهارت ها به عنوان شغل استفاده نکنند. از نظر آینده، کدگذاری جزء حیاتی زندگی روزمره خواهد بود. این زبان دنیا خواهد بود و ندانستن رایانه ها یا نحوه کار آنها می تواند چالش هایی را ایجاد کند که غلبه بر آنها به همان اندازه بی سوادی دشوار است.
برنامه نویسی همچنین تغییرات عمده ای را در دنیای بازی ایجاد می کند، به خصوص در مورد بازی های آنلاین، از جمله دسترسی به کازینوهای آنلاین. برای اینکه ببینید چگونه برنامه نویسی قبلاً دنیای بازی را بهبود بخشیده است، به چند سایت کازینو دارای رتبه برتر که به کدنویسی متکی هستند نگاهی بیندازید. نگاهی سریع به آن بیندازید و ببینید که چگونه برنامه‌نویسی می‌تواند محیط‌های واقعی را به صورت آنلاین ارائه دهد. تعدادی دستگاه و ابزار سخت افزاری وجود دارد که می توان آنها را خریداری کرد، اما Pip رویکرد متفاوتی را در مورد دستگاه خود اتخاذ می کند. قابل حمل بودن دستگاه و صفحه نمایش لمسی مزیتی برای سایر دستگاه های کدنویسی موجود در بازار دارد. Pip علاوه بر سیستم Raspberry Pi HAT با قطعات الکترونیکی کاملاً سازگار خواهد بود. این دستگاه از زبان های استاندارد استفاده می کند و دارای ابزارهای اولیه است و یک دستگاه عالی برای هر کدنویس مبتدی است. هدف این است که هر گونه مانع بین ایده و خلقت را از بین ببرید و ابزارها را فوراً برای استفاده در دسترس قرار دهید. یکی از مزایای بزرگ دیگر Pip این است که از کارت SD استفاده می کند، بنابراین می توان از آن به عنوان یک کامپیوتر رومیزی و در صورت اتصال به مانیتور و ماوس استفاده کرد.
دستگاه Pip به بچه ها و مبتدیان علاقه مند به کدنویسی با اشتیاق در یادگیری و تمرین کدنویسی کمک می کند. با ارائه ترکیبی از تکمیل کار و سرهم بندی برای حل مشکلات، دستگاه مطمئناً نسل جوان را درگیر خواهد کرد. سپس این دستگاه به این کدنویسان جوان اجازه می دهد تا به سطوح پیشرفته تر کدنویسی در زبان های مختلف مانند جاوا اسکریپت و HTML/CSS حرکت کنند. از آنجایی که این دستگاه یک کنسول بازی را تکرار می کند، بلافاصله توجه کودکان را به خود جلب می کند و آنها را درگیر یادگیری کدنویسی در سنین پایین می کند. همچنین با برخی از بازی های از پیش بارگذاری شده برای حفظ توجه ارائه می شود، مانند Pac-Man و Minecraft. نوآوری های آینده نوآوری تا حد زیادی به توانایی فعلی کودک در کدنویسی و درک کلی آنها از فرآیند بستگی دارد. همانطور که کودکان در سنین پایین با استفاده از دستگاه هایی مانند Pip جدید کدنویسی را یاد می گیرند، مهارت ها و دانش لازم برای ایجاد چیزهای شگفت انگیز در آینده را به دست خواهند آورد. این می‌تواند معرفی بازی‌ها یا برنامه‌های جدید یا حتی ایده‌هایی باشد که می‌توانند برای کمک به تحقیقات و درمان‌های پزشکی جان بگیرند. امکانات بی پایانی وجود دارد. از آنجایی که آینده ما توسط نرم افزار و رایانه کنترل خواهد شد، شروع جوانی بهترین راه برای رفتن است، به همین دلیل است که Pip جدید برای جمعیت جوان طراحی شده است. با ارائه یک دستگاه کنسولی که می تواند همزمان با آموزش مهارت های کدنویسی، بازی کند، اعضای جوان جامعه به خوبی در مسیر خود قرار دارند تا در آینده سازندگان نرم افزارهایی باشند که زندگی همه ما را تغییر خواهد داد. این تازه شروع است، اما چیزی است که میلیون ها کودک در سراسر جهان شروع به یادگیری و تسلط بر آن کرده اند. با استفاده از دستگاه‌هایی مانند Pip، اصول برنامه‌نویسی پوشش داده می‌شود و کودکان به سرعت زبان‌های مختلف کدنویسی را یاد می‌گیرند که می‌توانند مسیرهای شگفت‌انگیزی را با ورود به بزرگسالی هدایت کنند.

اصولاً از متدهای POST و GET برای ارسال پارامترها استفاده می شود.
تفاوت اصلی بین روش های POST و GET در نحوه انتقال اطلاعات است. در روش GET، پارامترها از طریق نوار آدرس (URL)، یعنی. در هدر درخواست HTTP، در حالی که در روش POST پارامترها از طریق بدنه درخواست HTTP منتقل می شوند و در نوار آدرس منعکس نمی شوند.

1. دکمه ها - برچسب

تگ دکمه هایی را در یک صفحه وب ایجاد می کند و عملکرد آن شبیه نتیجه به دست آمده با استفاده از برچسب (با پارامتر type="button | reset | submit" است). برخلاف این تگ، گزینه های پیشرفته ای برای ایجاد دکمه ها ارائه می دهد. به عنوان مثال، روی چنین دکمه ای می توانید هر عنصر HTML از جمله تصاویر را قرار دهید. با استفاده از استایل ها، می توانید ظاهر یک دکمه را با تغییر فونت، رنگ پس زمینه، اندازه و سایر پارامترها تعریف کنید.
در تئوری، تگ باید در داخل فرم تنظیم شده توسط عنصر قرار گیرد. با این حال، مرورگرها پیغام خطا را نمایش نمی دهند و اگر به خودی خود با برچسب مواجه شد، به درستی با آن کار می کنند. اما در صورت نیاز به ارسال نتیجه کلیک روی دکمه به سرور، باید آن را در یک ظرف قرار دهید. برچسب بستن الزامی است.
گزینه ها:
غیر فعال - دسترسی و اصلاح عنصر را مسدود می کند.
نوع – نوع دکمه
ارزش – مقدار دکمه ای که به سرور ارسال می شود یا با استفاده از اسپریت خوانده می شود.

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

دکمه فعال دکمه غیر فعال

پارامتر TYPE
نوع دکمه را تعریف می کند که رفتار آن را روی فرم تنظیم می کند. انواع مختلف دکمه ها از نظر ظاهری به هیچ وجه تفاوتی با هم ندارند، اما هر دکمه عملکرد خاص خود را دارد. مقدار پیش فرض: دکمه.
استدلال ها:
دکمه - دکمه معمولی.
تنظیم مجدد - دکمه ای برای پاک کردن داده های فرم وارد شده و برگرداندن مقادیر به حالت اولیه.

ارسال – دکمه ارسال اطلاعات فرم به سرور.

پاک کردن فرم ارسال فرم

پارامتر VALUE مقدار دکمه ای که به سرور ارسال می شود را مشخص می کند. یک جفت "name=value" به سرور ارسال می شود که در آن نام با پارامتر نام تگ مشخص می شود و مقدار توسط پارامتر مقدار مشخص می شود. معنی می تواند با متن روی دکمه مطابقت داشته باشد یا مستقل باشد. پارامتر مقدار نیز برای دسترسی به داده ها از طریق اسکریپت استفاده می شود.

ارسال فرم

1.1. دکمه (نوع ورودی = دکمه) 1.2. دکمه با تصویر (نوع ورودی=تصویر) دکمه با تصویر

دکمه‌های دارای تصاویر از نظر عملکرد مشابه دکمه ارسال هستند، اما یک تصویر را نشان می‌دهند. برای انجام این کار، type=image و src="image.gif" را تنظیم کنید.

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

1.3. دکمه ارسال فرم (نوع ورودی = ارسال)

در خدمت ارسال فرم به اسکریپت است. هنگام ایجاد دکمه برای ارسال فرم، باید 2 ویژگی را مشخص کنید: type="submit" و value="Button text" . Атрибут name необходим, если кнопка не одна, а несколько и все они созданы для разных операций, например кнопки "Сохранить", "Удалить", "Редактировать" и т.д. После нажатия на кнопку сценарию передается строка имя=текст кнопки. !}


بدون نیاز به اسکریپت PHP

1.4. آرایه ای از دکمه ها (ارسال) برای انتخاب گزینه عمل 2. دکمه بازنشانی فرم (بازنشانی)

هنگامی که روی دکمه تنظیم مجدد کلیک می کنید، تمام عناصر فرم به حالتی که در ویژگی های پیش فرض مشخص شده است تنظیم می شود و فرم ارسال نمی شود.


بدون نیاز به اسکریپت PHP

3. چک باکس

چک باکس ها تعدادی گزینه را در اختیار کاربر قرار می دهند و امکان انتخاب دلخواه را فراهم می کنند (هیچ کدام، یک یا چند مورد).

سفید
سبز
آبی
قرمز
مشکی

مثال 2.
// اولین مجموعه دکمه ها
// مجموعه دوم دکمه ها
// مجموعه سوم از دکمه ها

5. فیلد متن (متن)

هنگام ایجاد یک فیلد متنی معمولی با اندازه اندازه و حداکثر طول مجاز کاراکترهای حداکثر طول، ویژگی type مقدار متن را می گیرد. اگر پارامتر مقدار مشخص شده باشد، فیلد مقدار مشخص شده در متغیر را نمایش می دهد. هنگام ایجاد یک فیلد، فراموش نکنید که نام فیلد را مشخص کنید، زیرا ... این ویژگی مورد نیاز است.

6. قسمت رمز عبور

دقیقاً مانند یک فیلد متنی، با این تفاوت که کاراکترهای تایپ شده توسط کاربر روی صفحه نمایش داده نمی شوند.

7. فیلد متن پنهان (مخفی)

به شما امکان می دهد برخی از اطلاعات سرویس را بدون نمایش آن در صفحه به اسکریپت منتقل کنید.

8. لیست کشویی (انتخاب کنید)

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

سفید سبز آبی قرمز مشکی

اگر نیاز به ایجاد یک کشویی با یک دنباله قابل پیش بینی دارید. به عنوان مثال، یک لیست با سال های 2000 تا 2050. سپس از تکنیک زیر استفاده می شود.

9. فیلد ورودی متن چندخطی (textarea)

یک فیلد ورودی متن چند خطی به شما امکان می دهد نه تنها یک خط، بلکه چندین خط را همزمان ارسال کنید. در صورت لزوم، می توانید ویژگی readonly را مشخص کنید که ویرایش، حذف و تغییر متن را ممنوع می کند. متن فقط خواندنی خواهد بود. اگر لازم است متن در ابتدا در یک فیلد ورودی چند خطی نمایش داده شود، باید بین تگ ها قرار گیرد.
یک پارامتر wrap وجود دارد - تنظیم بسته بندی خط. مقادیر ممکن:
خاموش - بسته بندی خط را غیرفعال می کند.
مجازی - شکست خط را نشان می دهد، اما متن را همانطور که وارد شده می فرستد.
فیزیکی - خطوط شکسته به شکل اصلی خود باقی می مانند.
به طور پیش فرض، تگ یک فیلد خالی ایجاد می کند که 20 کاراکتر عرض دارد و از 2 خط تشکیل شده است.


برای اینکه یک فیلد متنی چند خطی با قالب بندی html مطابقت داشته باشد (پیچ بندی خط با استفاده از تگ
یا
، سپس از تابع nl2br() استفاده کنید:

درج اولیه خط 1 درج اصلی خط 2 درج اصلی خط 3

10. دکمه برای آپلود فایل (مرور)

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

آپلود فایل:

راه های ارتباط مرورگر با سرور

روش های کمی توسط پروتکل HTTP ارائه شده است. این اطلاعات مهمی است. هیچ راه دیگری وجود ندارد. در عمل از دو مورد استفاده می شود:
GET زمانی است که داده ها در نوار آدرس ارسال می شوند، به عنوان مثال زمانی که کاربر روی یک پیوند کلیک می کند.
POST – زمانی که روی دکمه ای روی فرم کلیک می کند.

روش GET

برای انتقال داده ها با استفاده از روش GET، نیازی به ایجاد فرم در صفحه HTML ندارید (هیچ کس شما را از استفاده از فرم ها برای درخواست ها با استفاده از روش GET منع نمی کند) - فقط یک پیوند به سند با افزودن یک رشته پرس و جو، که می تواند شبیه متغیر = مقدار باشد. جفت ها با استفاده از علامت & به هم متصل می شوند و رشته با استفاده از علامت سوال به URL صفحه اضافه می شود. "
اما اگر نیاز دارید فقط یک متغیر را پاس کنید، مجبور نیستید از جفت‌های key=value استفاده کنید - برای انجام این کار، باید VALUE (نه نام) متغیر را بعد از علامت سوال بنویسید.
مزیت ارسال پارامترها از این طریق این است که مشتریانی که نمی توانند از روش POST استفاده کنند (مانند موتورهای جستجو) همچنان می توانند به سادگی پیوند را دنبال کنند تا پارامترها را به اسکریپت ارسال کرده و محتوا را بازیابی کنند.
نقطه ضعف این است که به سادگی با تغییر پارامترها در نوار آدرس، کاربر می تواند اسکریپت را به روشی غیرقابل پیش بینی بچرخاند و این یک حفره امنیتی بزرگ را در ترکیب با متغیرهای تعریف نشده و register_globals در ایجاد می کند یا کسی می تواند ارزش یک را پیدا کند. متغیر مهم (به عنوان مثال - شناسه جلسه) فقط با نگاه کردن به صفحه مانیتور.
:
- برای دسترسی به صفحات عمومی با پارامترهای عبور (افزایش عملکرد)
- انتقال اطلاعاتی که بر سطح امنیت تأثیر نمی گذارد
:
- برای دسترسی به صفحات محافظت شده با انتقال پارامتر
- برای انتقال اطلاعات موثر بر سطح امنیت
- برای انتقال اطلاعاتی که توسط کاربر قابل تغییر نیست (برخی متن پرس و جوهای SQL را انتقال می دهند.

روش POST

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

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

//فرم برای آپلود فایل ها این فایل را ارسال کنید:

در مثال بالا " URL" باید با پیوندی به یک اسکریپت PHP جایگزین شود. فیلد پنهان MAX _FILE_SIZE (مقدار باید بر حسب بایت مشخص شود) باید قبل از فیلد انتخاب فایل باشد و مقدار آن حداکثر اندازه مجاز فایل پذیرفته شده است. همچنین باید مطمئن شوید که enctype=" را در فرم ویژگی های multipart/form-data" مشخص کرده اید، در غیر این صورت فایل ها در سرور آپلود نمی شوند.
توجه
گزینه MAX _FILE_SIZE یک توصیه مرورگر است، حتی اگر PHP نیز این شرایط را بررسی کند. دور زدن این محدودیت در سمت مرورگر نسبتاً آسان است، بنابراین برای مسدود کردن همه فایل‌های بزرگتر نباید به این ویژگی اعتماد کنید. با این حال، هیچ راهی برای دور زدن حداکثر محدودیت اندازه PHP وجود ندارد. به هر حال باید متغیری به شکل MAX _FILE_SIZE اضافه کنید، زیرا از انتظار کاربران در حین انتقال فایل‌های بزرگ جلوگیری می‌کند، فقط متوجه می‌شود که فایل خیلی بزرگ است و واقعاً انتقال انجام نشد.

چگونه یک روش درخواست تعریف کنیم؟

به طور مستقیم:

Getenv("REQUEST_METHOD");

GET یا POST را برمی گرداند.

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

اگر از فرم برای درخواست برخی اطلاعات استفاده می شود، مثلاً در حین جستجو، باید با استفاده از روش GET ارسال شود. برای به روز نگه داشتن صفحه، می توانید آن را نشانه گذاری کنید و/یا پیوند را برای یک دوست ارسال کنید.
اگر در نتیجه ارسال فرم، داده ها در سرور ثبت یا تغییر داده شود، باید به روش POST ارسال شود و لازم است پس از پردازش فرم، مرورگر را با روش GET تغییر مسیر دهید. همچنین، در صورت نیاز به انتقال حجم زیادی از داده ها به سرور (برای GET بسیار محدود است)، و همچنین اگر نباید داده های منتقل شده را در نوار آدرس "درخشش" کنید (هنگام ورود به سیستم و برای مثال رمز عبور).
در هر صورت، پس از پردازش POST، همیشه باید مرورگر را به یک صفحه، حتی همان صفحه، اما بدون داده های فرم ریدایرکت کنید تا وقتی صفحه رفرش شد، دوباره ضبط نشوند.

چگونه با استفاده از متدهای GET و POST مستقیماً از بدنه برنامه PHP اطلاعات را به فایل دیگری منتقل کنیم؟

نمونه ای برای نشان دادن ارسال داده ها با استفاده از روش های POST و GET به طور همزمان و دریافت پاسخ از سرور.

در این مقاله با نحوه ایجاد فرم ثبت نام و ورود به سیستم با استفاده از HTML، JavaScript، PHP و MySql آشنا خواهید شد. چنین فرم هایی تقریباً در هر وب سایتی صرف نظر از نوع آن استفاده می شود. آنها برای یک انجمن، یک فروشگاه آنلاین، شبکه های اجتماعی (مانند فیس بوک، توییتر، Odnoklassniki) و بسیاری از انواع دیگر سایت ها ایجاد شده اند.

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

ایجاد جدول در پایگاه داده

برای پیاده سازی ثبت نام کاربر، اول از همه به یک پایگاه داده نیاز داریم. اگر قبلاً آن را دارید، عالی است، در غیر این صورت، باید آن را ایجاد کنید. در مقاله نحوه انجام این کار را با جزئیات توضیح می دهم.

و بنابراین، ما یک پایگاه داده (به اختصار DB) داریم، اکنون باید یک جدول ایجاد کنیم کاربرانکه در آن کاربران ثبت نام شده خود را اضافه خواهیم کرد.

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

بنابراین، ما فکر کردیم، تصور کردیم که فرم ما چه فیلدهایی خواهد داشت و یک جدول ایجاد کردیم کاربرانبا این فیلدها:

  • شناسه- مشخص کننده. رشته شناسههر جدول در پایگاه داده باید آن را داشته باشد.
  • نام کوچک- برای ذخیره نام.
  • نام خانوادگی- حفظ نام خانوادگی
  • پست الکترونیک- برای ذخیره آدرس پستی ما از ایمیل به عنوان ورود استفاده خواهیم کرد، بنابراین این فیلد باید منحصر به فرد باشد، یعنی دارای شاخص UNIQUE باشد.
  • ایمیل_وضعیت- فیلد برای نشان دادن اینکه آیا نامه تایید شده است یا خیر. اگر نامه تأیید شود، مقدار آن 1 خواهد بود، در غیر این صورت مقدار آن 0 است. به طور پیش فرض، این فیلد دارای مقدار 0 خواهد بود.
  • کلمه عبور- برای ذخیره رمز عبور

تمام فیلدهای نوع "VARCHAR" باید دارای مقدار پیش فرض NULL باشند.


اگر می خواهید فرم ثبت نام شما دارای فیلدهای دیگری باشد، می توانید آنها را در اینجا اضافه کنید.

همین است، میز ما کاربرانآماده. بیایید به مرحله بعدی برویم.

اتصال به پایگاه داده

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

در پوشه سایت ما یک فایل با نام ایجاد کنید dbconnect.phpو اسکریپت زیر را در آن بنویسید:

این فایل dbconnect.phpبرای کنترل فرم ها باید متصل شوند.

به متغیر توجه کنید $address_site، در اینجا نام سایت آزمایشی خود را که روی آن کار خواهم کرد را مشخص کردم. لطفا نام سایت خود را بر این اساس ذکر کنید.

ساختار سایت

حال بیایید به ساختار HTML سایت خود نگاه کنیم.

سربرگ و پاورقی سایت را به فایل های جداگانه منتقل می کنیم. header.phpو footer.php. ما آنها را در تمام صفحات قرار خواهیم داد. یعنی در صفحه اصلی (فایل index.php، به صفحه دارای فرم ثبت نام (فایل form_register.php) و به صفحه دارای فرم مجوز (فایل form_auth.php).

با پیوندهای ما مسدود کنید، ثبتو مجوز، آنها را به هدر سایت اضافه کنید تا در تمام صفحات نمایش داده شوند. یک لینک وارد صفحه با فرم ثبت نام (فایل form_register.php) و دیگری به صفحه دارای فرم مجوز (پرونده form_auth.php).

محتویات فایل header.php:

نام سایت ما

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


البته ممکن است سایت شما ساختار کاملاً متفاوتی داشته باشد، اما اکنون این موضوع برای ما مهم نیست. نکته اصلی این است که پیوندها (دکمه هایی) برای ثبت نام و مجوز وجود دارد.

حال به سراغ فرم ثبت نام می رویم. همانطور که قبلا متوجه شدید، ما آن را در پرونده داریم form_register.php.

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

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

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

و یک چیز دیگر، اگر کاربر قبلاً مجاز است و از روی کنجکاوی مستقیماً با نوشتن در نوار آدرس مرورگر به صفحه ثبت نام می رود. site_address/form_register.php، سپس در این حالت به جای فرم ثبت نام، سرفصلی مبنی بر اینکه قبلا ثبت نام کرده است را نمایش می دهیم.

به طور کلی، کد فایل form_register.phpما این رو گرفتیم:

شما قبلا ثبت نام کرده اید

در مرورگر، صفحه با فرم ثبت نام به صورت زیر است:


با استفاده از ویژگی مورد نیاز، همه فیلدها را اجباری کردیم.

به کد فرم ثبت نام که در آن کپچا نمایش داده می شود توجه کنید:


مسیر فایل را در مقدار مشخصه src برای تصویر مشخص کردیم captcha.php، که این کپچا را تولید می کند.

بیایید به کد فایل نگاه کنیم captcha.php:

کد به خوبی توضیح داده شده است، بنابراین من فقط روی یک نکته تمرکز می کنم.

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

کار ما با ساختار HTML تمام شده است، وقت آن است که ادامه دهیم.

بررسی اعتبار ایمیل با استفاده از jQuery

هر فرمی باید اعتبار داده های وارد شده را هم در سمت مشتری (با استفاده از جاوا اسکریپت، جی کوئری) و هم در سمت سرور بررسی کند.

باید به قسمت Email توجه ویژه ای داشته باشیم. بسیار مهم است که آدرس پستی وارد شده معتبر باشد.

برای این فیلد ورودی، نوع ایمیل (type="email") را تنظیم می کنیم، این کمی به ما در مورد فرمت های نادرست هشدار می دهد. اما این کافی نیست، زیرا از طریق بازرس کدی که مرورگر در اختیار ما قرار می دهد، می توانیم مقدار ویژگی را به راحتی تغییر دهیم نوعبا پست الکترونیکبر متنو بس، چک ما دیگر معتبر نخواهد بود.


و در این صورت باید بررسی مطمئن تری انجام دهیم. برای این کار از کتابخانه jQuery از جاوا اسکریپت استفاده می کنیم.

برای اتصال کتابخانه jQuery، در فایل header.phpبین تگ ها ، قبل از تگ بسته شدن ، این خط را اضافه کنید:

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

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

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

ثبت نام کاربر

ما فرم را برای پردازش به فایل ارسال می کنیم register.php، از طریق روش POST. نام این فایل کنترل کننده در مقدار مشخصه مشخص شده است عمل. و روش ارسال در مقدار ویژگی مشخص شده است روش.

این فایل را باز کنید register.phpو اولین کاری که باید انجام دهیم این است که یک تابع راه اندازی جلسه بنویسیم و فایلی را که قبلا ایجاد کرده ایم وصل کنیم dbconnect.php(در این فایل ما با دیتابیس ارتباط برقرار کردیم). و همچنین، بیایید بلافاصله سلول ها را اعلام کنیم پیغام خطاو پیغام_های موفقیتدر آرایه نشست سراسری که در error_mesagesما تمام پیام های خطایی را که در حین پردازش فرم رخ می دهد ضبط می کنیم succes_messages، پیام های شادی آور را ضبط خواهیم کرد.

قبل از ادامه، باید بررسی کنیم که آیا اصلاً فرم ارسال شده است یا خیر. یک مهاجم می تواند به مقدار ویژگی نگاه کند عملاز فرم، و پیدا کنید که کدام فایل در حال پردازش این فرم است. و ممکن است او این ایده را داشته باشد که با تایپ آدرس زیر در نوار آدرس مرورگر، مستقیماً به این فایل برود: http://site_address/register.php

بنابراین ما باید سلولی را در آرایه جهانی POST بررسی کنیم که نام آن با نام دکمه "ثبت" ما از فرم مطابقت داشته باشد. به این ترتیب بررسی می کنیم که آیا دکمه "ثبت نام" کلیک شده است یا خیر.

اگر مهاجم بخواهد مستقیماً به این فایل برود، یک پیغام خطا دریافت می کند. یادآوری می کنم که متغیر $address_site حاوی نام سایت است و در فایل اعلام شده است dbconnect.php.

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

حالا بیایید به خود تأیید ادامه دهیم. در پرونده register.php، در داخل بلوک if، جایی که بررسی می کنیم که آیا روی دکمه "ثبت نام" کلیک شده است یا بهتر بگوییم جایی که نظر " نشان داده شده است" // (1) فاصله برای قطعه کد بعدی"ما نوشتیم:

//کاپچای دریافتی را بررسی کنید //فاصله ها را از ابتدا و انتهای خط برش دهید $captcha = trim($_POST["captcha"]); if(isset($_POST["captcha"]) && !empty($captcha))( //مقدار دریافتی را با مقدار جلسه مقایسه کنید. if(($_SESSION["rand"] != $captcha) && ($_SESSION ["rand"] != ""))( // اگر کپچا صحیح نیست، کاربر را به صفحه ثبت نام برمی گردانیم و در آنجا یک پیغام خطا به او نشان می دهیم که کپچا را اشتباه وارد کرده است. $error_message = "

خطا! شما کپچا را اشتباه وارد کردید

"; // پیام خطا را در جلسه ذخیره کنید. $_SESSION["error_messages"] = $error_message; // کاربر را به سرصفحه صفحه ثبت برگردانید("HTTP/1.1 301 Moved Permanently"); header("Location:" .$address_site ."/form_register.php" //توقف اسکریپت exit( // (2) جای کد بعدی )else( //اگر کپچا پاس نشد یا خالی بود exit(); "

خطا! هیچ کد تأییدی وجود ندارد، یعنی یک کد کپچا. می توانید به صفحه اصلی بروید.

"); }

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

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

بعد از اینکه فاصله ها را کوتاه کردیم، خط را به متغیر اضافه می کنیم و اگر خالی نبود آن را بررسی می کنیم، در غیر این صورت کاربر را با فرم ثبت نام به صفحه هدایت می کنیم.

این کد را در مکان مشخص شده قرار دهید" // (2) فاصله برای قطعه کد بعدی".

/* بررسی کنید که آیا داده ای از فرم در آرایه جهانی $_POST ارسال شده است و داده های ارسالی را در متغیرهای معمولی قرار دهید.*/ if(isset($_POST["first_name"]))( //فاصله ها را از ابتدا برش دهید. و انتهای رشته $first_name = trim($_POST["first_name"] //بررسی خالی بودن متغیر if(!empty($first_name))( // برای امنیت، کاراکترهای ویژه را به موجودیت های HTML تبدیل کنید $first_name =); htmlspecialchars($first_name, ENT_QUOTES) )else( // پیام خطا را در جلسه ذخیره کنید. $_SESSION["error_messages"] .= "

اسمت را وارد کن

فیلد نام وجود ندارد

"; //بازگرداندن کاربر به عنوان صفحه ثبت نام("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Stop exit script(); ) if( isset($_POST["last_name"]))( //فاصله ها را از ابتدا و انتهای خط برش دهید $last_name = trim($_POST["last_name"]); if(!empty($last_name)) ( // برای امنیت، کاراکترهای خاص را به موجودیت های HTML تبدیل کنید $last_name = htmlspecialchars($last_name, ENT_QUOTES); )else( // پیام خطا را در جلسه ذخیره کنید. $_SESSION["error_messages"] .= "

لطفا نام خانوادگی خود را وارد کنید

"; //بازگرداندن کاربر به عنوان صفحه ثبت نام("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Stop exit script(); ) )else ( // پیام خطا را در جلسه ذخیره کنید. $_SESSION["error_messages"] .= "

قسمت نام خانوادگی وجود ندارد

"; //بازگرداندن کاربر به عنوان صفحه ثبت نام("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Stop exit script(); ) if( isset($_POST["email"]))( //قطع کردن فاصله از ابتدا و انتهای خط $email = trim($_POST["email"]); if(!empty($email)) ($email = htmlspecialchars ($email, ENT_QUOTES)؛ // (3) مکان کد برای بررسی قالب آدرس ایمیل و منحصر به فرد بودن آن )else( // پیام خطا را در جلسه ذخیره کنید. $_SESSION["error_messages"] .="

ایمیل خود را وارد کنید

"; //بازگرداندن کاربر به عنوان صفحه ثبت نام("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Stop exit script(); ) )else ( // پیام خطا را در جلسه ذخیره کنید. $_SESSION["error_messages"] .= "

"; //بازگرداندن کاربر به عنوان صفحه ثبت نام("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Stop exit script(); ) if( isset($_POST["password"]))( //فاصله های ابتدا و انتهای رشته را برش دهید $password = trim($_POST["password"]); if(!empty($password)) ($password = htmlspecialchars ($password, ENT_QUOTES)؛ //رمز رمزگذاری $password = md5($password."top_secret");else( //پیام خطا را در جلسه ذخیره کنید. $_SESSION["error_messages"] . ="

رمز عبور خود را وارد کنید

"; //بازگرداندن کاربر به عنوان صفحه ثبت نام("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Stop exit script(); ) )else ( // پیام خطا را در جلسه ذخیره کنید. $_SESSION["error_messages"] .= "

"; //بازگرداندن کاربر به سرصفحه صفحه ثبت ("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Stop exit script(); ) // (4) محل کد برای افزودن کاربر به پایگاه داده

این رشته از اهمیت ویژه ای برخوردار است پست الکترونیک. باید فرمت آدرس پستی دریافتی و منحصر به فرد بودن آن را در پایگاه داده بررسی کنیم. یعنی آیا کاربری با همان آدرس ایمیل قبلا ثبت نام کرده است؟

در محل مشخص شده" // (3) مکان کد برای بررسی قالب آدرس پستی و منحصر به فرد بودن آن"کد زیر را اضافه کنید:

//فرمت آدرس ایمیل دریافتی را با استفاده از عبارت معمولی بررسی کنید $reg_email = "/^**@(+(*+)*\.)++/i"; //اگر قالب آدرس ایمیل دریافتی با عبارت عادی مطابقت ندارد if(!preg_match($reg_email, $email))( // پیام خطا را در جلسه ذخیره کنید. $_SESSION["error_messages"] .= "

ایمیل نادرستی وارد کردید

"; //بازگرداندن کاربر به عنوان صفحه ثبت نام("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Stop exit script(); ) // بررسی می کنیم که آیا چنین آدرسی قبلاً در پایگاه داده وجود دارد یا خیر دقیقاً یک ردیف هستند، به این معنی که کاربر با این آدرس ایمیل قبلاً ثبت نام کرده است if($result_query->num_rows == 1)( //اگر نتیجه به دست آمده نادرست نباشد if(($row = $result_query->fetch_assoc() ) != false) ( // پیام خطا را در جلسه ذخیره کنید. $_SESSION["error_messages"] .= "

کاربری با این آدرس ایمیل قبلاً ثبت شده است

"; //بازگرداندن کاربر به عنوان صفحه ثبت نام ("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); )else( // ذخیره پیام خطا به جلسه $_SESSION["error_messages"] .= "

خطا در کوئری پایگاه داده

"; //بازگرداندن کاربر به سرصفحه صفحه ثبت نام ("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); ) /* بستن انتخاب */ $ result_query-> close( //Stop the script exit( ) /* بستن قسمت انتخابی */ $result_query->close();

و بنابراین، تمام بررسی‌ها را به پایان رساندیم، زمان اضافه کردن کاربر به پایگاه داده است. در محل مشخص شده" // (4) محل کد برای افزودن کاربر به پایگاه داده"کد زیر را اضافه کنید:

//پرس و جو برای افزودن کاربر به پایگاه داده $result_query_insert = $mysqli->query("INSERT INTO `users` (first_name, last_name, email, password) VALUES ("".$first_name."", "".$last_name ." ", "".$email.", "".$password."")"); if(!$result_query_insert)( // پیام خطا را در جلسه ذخیره کنید. $_SESSION["error_messages"] .= "

خطا در درخواست افزودن کاربر به پایگاه داده

"; //بازگرداندن کاربر به عنوان صفحه ثبت نام("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Stop exit script(); )else( $_SESSION["success_messages"] = "

ثبت نام با موفقیت انجام شد!!!
اکنون می توانید با استفاده از نام کاربری و رمز عبور خود وارد شوید.

"; //ارسال کاربر به سربرگ صفحه مجوز ("HTTP/1.1 301 به طور دائم منتقل شد"); header("مکان: ".$address_site."/form_auth.php"); ) /* تکمیل درخواست */ $ result_query_insert-> close( //بستن اتصال به پایگاه داده $mysqli->close();

اگر در درخواست افزودن کاربر به پایگاه داده خطایی رخ داد، پیامی در مورد این خطا به جلسه اضافه می کنیم و کاربر را به صفحه ثبت نام برمی گردانیم.

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

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

جلسه نیز در فایل شروع می شود header.php، بنابراین در فایل form_auth.phpنیازی به شروع جلسه نیست، زیرا با خطا مواجه خواهیم شد.


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

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

مجوز کاربر

برای نسبت دادن مقدار عملنقص مجوز دارای یک فایل مشخص شده است auth.php، به این معنی است که فرم در این فایل پردازش می شود.

و بنابراین، فایل را باز کنید auth.phpو برای پردازش فرم مجوز کد بنویسید. اولین کاری که باید انجام دهید این است که یک جلسه را شروع کرده و فایل را متصل کنید dbconnect.phpبرای اتصال به پایگاه داده

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

کد فایل logout.php:

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

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

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

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

اگر سوالی دارید، لطفا با من تماس بگیرید و در صورت مشاهده هر گونه خطایی در مقاله، لطفاً به من اطلاع دهید.

طرح درس (قسمت 5):

  • ایجاد یک ساختار HTML برای فرم مجوز
  • داده های دریافتی را پردازش می کنیم
  • تبریک کاربر را در هدر سایت نمایش می دهیم
  • آیا مقاله را دوست داشتید؟

    آخرین به روز رسانی: 11/1/2015

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

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

      ایجاد یک عنصر در نشانه گذاری HTML

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

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

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

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

    ورود به سایت ورود:

    کلمه عبور:

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

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

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

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

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

    اکنون می توانیم به فرم دسترسی پیدا کنیم:

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

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

    ورود به سایت ورود:

    کلمه عبور:

    امنیت داده ها

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

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

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

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

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

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

    تابع دیگر - تابع strip_tags () به شما امکان می دهد تگ های html را کاملاً حذف کنید:

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

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

    در این آموزش، من شما را از طریق فرآیند کامل ایجاد یک سیستم ثبت نام کاربر راهنمایی می کنم که در آن کاربران می توانند با ارائه نام کاربری، ایمیل و رمز عبور، ورود و خروج با استفاده از PHP و MySQL یک حساب کاربری ایجاد کنند. همچنین به شما نشان خواهم داد که چگونه می توانید برخی از صفحات را فقط برای کاربرانی که وارد سیستم شده اند در دسترس قرار دهید. هر کاربر دیگری که وارد نشده باشد قادر به دسترسی به صفحه نخواهد بود.

    یاد بگیرید که چگونه یک وبلاگ کامل با PHP و پایگاه داده MySQL با من ایجاد کنید دوره رایگان در یوتیوب.

    اولین کاری که باید انجام دهیم این است که پایگاه داده خود را راه اندازی کنیم.

    یک پایگاه داده به نام ثبت نام ایجاد کنید. در پایگاه ثبت نام، جدولی به نام کاربران اضافه کنید. جدول کاربران چهار فیلد زیر را می گیرد.

    • نام کاربری - varchar(100)
    • ایمیل - varchar(100)
    • رمز عبور - varchar(100)

    شما می توانید این را با استفاده از یک کلاینت MySQL مانند PHPMyAdmin ایجاد کنید.

    یا می توانید آن را در اعلان MySQL با استفاده از اسکریپت SQL زیر ایجاد کنید:

    ایجاد جدول «کاربران» («id» int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY، «نام کاربری» varchar(100) NOT NULL، «email» varchar(100) NOT NULL، «رمز عبور» varchar(100) NOT NULL) ENGINE =InnoDB DEFAULT CHARSET=latin1;

    و این در مورد پایگاه داده است.

    اکنون یک پوشه به نام ثبت نام در دایرکتوری قابل دسترسی سرور ما ایجاد کنید. یعنی پوشه را در داخل htdocs (اگر از سرور XAMPP استفاده می کنید) یا داخل www (اگر از سرور wampp استفاده می کنید) ایجاد کنید.

    در داخل پوشه ثبت نام، فایل های زیر را ایجاد کنید:

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

    ثبت نام کاربر

    فایل register.php را باز کرده و کد زیر را در آن قرار دهید:

    register.php:

    ثبت نام کاربری

    اشتراک گذاری