فرادرس فرادرس
  • تبلیغات
  • همکاری با ما
  • تماس با ما
  • صفحه اصلی
  • ریاضی و علوم پایه
    • ریاضی
    • فیزیک
    • زیست شناسی
    • شیمی
  • برنامه نویسی و علوم کامپیوتر
    • برنامه نویسی
    • آموزش رایگان پایتون
    • هوش مصنوعی
    • یادگیری ماشین
    • علم داده
    • آمار
  • زبان انگلیسی
    • گرامر زبان انگلیسی
    • زمان ها در زبان انگلیسی
    • صفت در زبان انگلیسی
    • افعال کمکی در زبان انگلیسی
    • انواع ضمایر انگلیسی
    • انواع اسم در زبان انگلیسی
    • انواع قید در زبان انگلیسی
    • حروف ربط در زبان انگلیسی
    • انواع جمله شرطی در انگلیسی
    • مجهول در زبان انگلیسی
    • آزمون های زبان انگلیسی
    • نمونه سوال زبان انگلیسی
    • مباحث متفرقه زبان انگلیسی
    • تمام مطالب زبان انگلیسی
  • آموزش بورس
  • ارز دیجیتال
    • آموزش بیت کوین
    • آموزش ارزهای دیجیتال
    • معرفی ارزهای دیجیتال
    • آموزش ترید ارزهای دیجیتال
    • تمام مطالب ارز دیجیتال
  • مهندسی
    • برق
    • عمران
    • مکانیک
    • صنایع
    • مهندسی
  • بیشتر
    • کاربردی
    • عمومی
    • ادبیات
    • اقتصادی
    • طراحی و گرافیک
    • بازاریابی
    • کسب و کار و موفقیت
    • سلامت
    • روانشناسی
    • پزشکی
    • علوم انسانی
    • تقلب‌نامه
برنامه نویسی

فرم لاگین بوت‌استرپ با اعتبارسنجی PHP – به زبان ساده

۶۴ بازدید
آخرین به‌روزرسانی: ۱۰ مرداد ۱۳۹۷
زمان مطالعه: ۵ دقیقه

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

فهرست مطالب این نوشته
طراحی صفحه لاگین با بوت‌استرپ
فایل CSS
اعتبار سنجی فرم از طریق PHP
اطمینان از خالی نبود مقادیر
اعتبارسنجی ایمیل
اعتبار سنجی طول رمز عبور

طراحی صفحه لاگین با بوت‌استرپ

صفحه لاگین را می‌توان از طریق html ساده نیز طراحی کرد. اما در مورد خاص این نوشته ما از بوت‌استرپ توییتر استفاده خواهیم کرد که یک کتابخانه CSS و جاوا اسکریپت اوپن‌سورس است. دلیل این‌که چرا از بوت‌استرپ استفاده می‌کنیم کاملاً مشخص است. نخست اینکه می‌خواهیم حس و ظاهر صفحه وب ما بهتر باشد و در بوت‌استرپ این حالت را با نوشتن چند خط کد می‌توان به دست آورد. دلیل دوم این است که می‌خواهیم صفحه لاگین ما واکنش گرا (responsive) باشد. در این خصوص نیز در بوت‌استرپ کلاس‌هایی وجود دارد که به ساخت طرح‌های آماده واکنش گرا کمک می‌کند. به قطعه کد زیر توجه کنید. نام صفحه وب ما «Index.php» است.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">

    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>PHP/Bootstrap Login Form</title>

    <!-- Bootstrap core CSS -->
    <link href="css/bootstrap.css" rel="stylesheet">
      
    <!-- Custom styles for this template -->
    <link href="css/style.css" rel="stylesheet">
   
  </head>

  <body>

    <div class="container">

      <form class="form-signin" method="post" action="index.php">
      
        <h2 class="text-center">Please Login</h2>
        <label for="inputEmail" class="sr-only">Email address</label>
        <input type="text" id="inputEmail" name="email" class="form-control" placeholder="Email address" required autofocus>
        
        <label for="inputPassword" class="sr-only">Password</label>
        <input type="password" id="inputPassword" name="password" class="form-control" placeholder="Password" required>
         <button name="submit" class="btn btn-success btn-block" type="submit">Login</button>
      </form>
        
    </div> <!-- /container -->
    <script src="js/bootstrap.js"></script>
  </body>
</html>

از بخش header کد، کار خود را آغاز می‌کنیم. در این بخش مقداری اطلاعات متا و پیوندهایی به استایل‌شیت بوت‌استرپ و همچنین استایل‌شیت سفارشی یعنی Style.Css وجود دارد. بخش body شامل یک div با کلاس «container.» است. این یک کلاس بوت‌استرپ است و فاصله‌های راست و چپ را اضافه می‌کند و همچنین div را در مرکز صفحه قرار می‌دهد.

درون این div یک فرم با کلاس «form-signin» ایجاد شده است. این هم یک کلاس بوت‌استرپ است که برای استایل دهی به فرم استفاده می‌شود. این فرم دو ورودی دارد. یکی از آن‌ها به شکل متن و دیگری به شکل رمز عبور است. هردوی این اجزا الزامی هستند و نمی‌توان آن‌ها را خالی گذاشت. در این قسمت ما عامدانه فیلد ایمیل را به‌صورت متن (text) تنظیم کرده‌ایم، چون اگر آن را ایمیل قرار می‌دادیم بوت‌استرپ روش اعتبار سنجی خاص خود را برای ایمیل استفاده می‌کرد، در حالی که می‌خواهیم به شما نشان دهیم که PHP چگونه اعتبار سنجی ایمیل را انجام می‌دهد.

فایل CSS

در فایل Style.Css کلاس “container” را اصلاح کرده‌ایم و خصوصیت عرض بیشینه (max-width) را به مقدار ۶۰۰ پیکسل تغییر داده‌ایم. همچنین یک تصویر پس‌زمینه تصادفی را به تگ body اضافه کرده‌ایم. محتویات فایل Style.Css از این قرار است.

.container{
    max-width: 600px;
}

body{
    
    background-image: url(../images/contact_form_background.jpg);
}

تا اینجای کار صفحه لاگین چیزی شبیه زیر خواهد بود.

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

اعتبار سنجی فرم از طریق PHP

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

 <body>

    <div class="container">

      <form class="form-signin" method="post" action="index.php">
      
  <?php if (isset($loginMessage)) echo $loginMessage ; ?>

        <h2 class="text-center">Please Login</h2>
        <label for="inputEmail" class="sr-only">Email address</label>
        <input type="text" id="inputEmail" name="email" class="form-control" placeholder="Email address" required autofocus>
        <span class="text-danger"><?php if (isset($errEmailMessage)) echo $errEmailMessage; ?></span>
        
         
        <label for="inputPassword" class="sr-only">Password</label>
        <input type="password" id="inputPassword" name="password" class="form-control" placeholder="Password" required>
        <span class="text-danger"><?php if (isset($errPassMessage)) echo $errPassMessage; ?></span>
         <button name="submit" class="btn btn-success btn-block" type="submit">Login</button>
      </form>

    </div> <!-- /container -->
    
    <script src="js/bootstrap.js"></script>
  </body>

اگر به تگ ابتدایی «form» نگاهی بکنیم می‌بینیم که حاوی خصوصیت متد با مقدار «post» و خصوصیت اکشن با مقدار «index.php» است. خصوصیت متد در واقع روش مورد استفاده برای ارسال داده‌های فرم را معین می‌کند. خصوصیات اکشن صفحه‌ای را که داده‌ها به آن ارسال خواهند شد، تعیین می‌کند. در این مورد وقتی کاربر فرم را ارسال می‌کند، داده‌ها به خود صفحه تحویل داده می‌شوند یعنی «index.php».

اطمینان از خالی نبود مقادیر

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

<?Php if (isset($loginMessage)) echo $loginMessage;?>

این خط کد تعیین می‌کند که آیا مقدار “$loginMessage” در php تعیین‌ شده است یا نه و مقدار متغیر را باز می‌گرداند. به‌طور مشابه زیر فیلد مربوط به ورودی ایمیل و رمز عبور نیز مقادیر متغیرهای “$errEmailMessage” و “$errPassMessage” را به ترتیب باز می‌گرداند. متغیر تعیین‌شده در زبان PHP به معنی متغیری است که خالی نباشد و حاوی مقداری باشد. زمانی که صفحه برای نخستین بار، بارگذاری می‌شود همه متغیرهایی که در بالا ذکر شدند، خالی خواهند بود و بنابراین مقادیرشان نمایش داده نخواهد شد.

اینک وقتی کاربر ایمیل و رمز عبور خود را در فیلدها وارد می‌کند و بر روی دکمه ارسال کلیک می‌کند، اطلاعات فرم به صفحه “Index.php” (که خود همین صفحه است) ارسال می‌شود. مقادیر فیلدهای فرم در آرایه‌ی متناظر $_POST ذخیره می‌شود و می‌توان با ارسال نام فیلد به این آرایه به آن‌ها دسترسی یافت. برای نمونه اگر بخواهید بررسی کنید که کاربر فرم را با کلیک بر روی دکمه ارسال تحویل داده است یا نه، می‌توانید از تابع “isset($_POST[“submit”])” استفاده کنید. این تابع درصورتی‌ که آرایه‌ی مربوطه حاوی مقدار “submit” از فیلد فرم باشد مقدار صحیح باز می‌گرداند.

اعتبارسنجی ایمیل

برای اعتبار سنجی ایمیل متد “filter_var($_POST[’email’], FILTER_VALIDATE_EMAIL))” استفاده می‌شود. این متد متن وارد شده از سوی کاربر در فیلد ایمیل را به‌عنوان پارامتر نخست و فلگ “FILTER_VALIDATE_EMAIL” را به‌عنوان پارامتر دوم می‌گیرد. اگر ایمیل معتبر باشد این تابع مقدار صحیح بازمی‌گرداند. اگر ایمیل معتبر نباشد، مقدار نادرست بازمی‌گرداند و یک پیغام خطا به متغیر “$errEmailMessage” انتساب می‌دهد.

اعتبار سنجی طول رمز عبور

برای اعتبارسنجی طول رمز عبور، از تابع “strlen” استفاده کرده‌ایم و آن را در مورد متن وارد شده در فیلد رمز عبور به کار می‌گیریم. درصورتی‌که تعداد کاراکترهای رمز عبور کمتر از ۸ باشد پیغام خطایی را به “$errPassMessage” انتساب می‌دهیم.

چنانچه هرکدام از آزمون‌های اعتبار سنجی فیلدهای ایمیل و رمز عبور موفق نباشند، مقدار متغیر “$LoginMessage” را به‌صورت «danger alert box» بوت‌استرپ تنظیم می‌کنیم و پیغام خطایی را به آن انتساب می‌دهیم. اما اگر اعتبار سنجی هر دو فیلد ایمیل و رمز عبور موفقیت‌آمیز باشد مقدار «success alert box» را به متغیر «“$LoginMessage”» انتساب می‌دهیم.

کد نهایی html اعتبار سنجی PHP در ادامه قابل‌ مشاهده است.

<?php
      $LoginE;
	if (isset($_POST["submit"])) 
    {
		
            $email = $_POST['email'];
            $name = $_POST['password'];
            $errEmail = false;
            $errPassword = false;
        
        
            if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
                  $errEmailMessage = "Please Enter a Valid Email.";
            }


            if (!$_POST['password'] || strlen($_POST['password']) < 8 ) {
                $errPassMessage = "Password should be minimum 8 characters.";
            }



    if (isset($errEmailMessage) || isset($errPassMessage) )
        {
            $loginMessage=  '<div class="container"><div class="alert alert-danger">Sorry there were errors loging into your account.Please try again later.</div></div>';
        

        }
        else 
            {
             $loginMessage=  '<div class="alert alert-success">You have successfully logged into your account.</div>'; 
            }
	}
?>


<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">

    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>PHP/Bootstrap Login Form</title>

    <!-- Bootstrap core CSS -->
    <link href="css/bootstrap.css" rel="stylesheet">
      
    <!-- Custom styles for this template -->
    <link href="css/style.css" rel="stylesheet">

   
  </head>

  <body>

    <div class="container">

      <form class="form-signin" method="post" action="index.php">
      

  <?php if (isset($loginMessage)) echo $loginMessage ; ?>

        <h2 class="text-center">Please Login</h2>
        <label for="inputEmail" class="sr-only">Email address</label>
        <input type="text" id="inputEmail" name="email" class="form-control" placeholder="Email address" required autofocus>
        <span class="text-danger"><?php if (isset($errEmailMessage)) echo $errEmailMessage; ?></span>
        
         
        <label for="inputPassword" class="sr-only">Password</label>
        <input type="password" id="inputPassword" name="password" class="form-control" placeholder="Password" required>
        <span class="text-danger"><?php if (isset($errPassMessage)) echo $errPassMessage; ?></span>
         <button name="submit" class="btn btn-success btn-block" type="submit">Login</button>
      </form>
        
    </div> <!-- /container -->
    
    <script src="js/bootstrap.js"></script>
  </body>
</html>

اینک اگر ایمیل نامعتبر یا رمز عبوری با کمتر از ۸ کاراکتر وارد کنید، مقادیر متغیرهای “$LoginMessage”، “$errEmailMessage” و/یا “$errPassMessage” تعیین می‌شوند و مقادیر آن‌ها (پیام‌های خطا) در فیلدهای مربوطه نمایش می‌یابد.

در تصویر زیر نحوه نمایش پیام‌های خطا را نشان داده‌ایم. یک جعبه هشدار بوت‌استرپ در بالا مشاهده می‌شود که حاوی مقداری برای متغیر“$LoginMessage” است. همچنین در زیر فیلدهای ایمیل و رمز عبور می‌توانید پیام‌های خطای متناظر را ببینید.

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

منبع

بر اساس رای ۱۰ نفر
آیا این مطلب برای شما مفید بود؟
شما قبلا رای داده‌اید!
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
ثبت نظر
به اشتراک بگذارید:
کپی شد
میثم لطفی (+)
«میثم لطفی» در رشته‌های ریاضیات کاربردی و مهندسی کامپیوتر به تحصیل پرداخته و شیفته فناوری است. وی در حال حاضر علاوه بر پیگیری علاقه‌مندی‌هایش در رشته‌های برنامه‌نویسی، کپی‌رایتینگ و محتوای چندرسانه‌ای، در زمینه نگارش مقالاتی با محوریت نرم‌افزار با مجله فرادرس همکاری دارد.
مطالب مرتبط

متدهای آرایه در جاوا اسکریپت – هر آنچه باید بدانید + مثال و کد

ساخت بازی حافظه تصویری با پایتون – ساده و مقدماتی

الگوریتم حریصانه چیست؟ – به زبان ساده + مثال کاربردی

لینوکس یا ویندوز کدامیک بهتر است؟ – مقایسه جامع به زبان ساده

آموزش مقدماتی Bundling و Minification در ASP.NET MVC + معرفی دوره

Reduce در جاوا اسکریپت چیست و چگونه استفاده می‌ شود؟ + نمونه کد

فیلتر در جاوا اسکریپت چیست و چه کاربردی دارد؟ + مثال و کد

برنامه نویسی اندروید رایگان – آموزش مقدماتی به بیان ساده

آموزش ماژول FS در Node.js + معرفی دوره آموزشی

جاوا اسکریپت سیاه – راهنمای JavaScript برای هک و امنیت

نظر شما چیست؟
لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

برچسب‌ها
Bootstrap
email valisation
login
php
اعتبارسنجی
بوت‌استرپ
فرم لاگین
بیشتر

فیلم‌های آموزش برنامه‌نویسی

فیلم‌های آموزش پروژه‌محور برنامه‌نویسی

فیلم‌های آموزش برنامه‌نویسی پایتون (Python)

فیلم‌های آموزش برنامه‌نویسی سی شارپ

فیلم‌های آموزش برنامه‌نویسی اندروید

فیلم‌های آموزش جاوا اسکریپت (JavaScript)

فیلم‌های آموزش برنامه‌نویسی

فیلم‌های آموزش PHP | آموزش برنامه‌نویسی پی‌اچ‌پی

فیلم‌های آموزش جاوا (Java)

فیلم‌های آموزش نرم‌افزار متلب (MATLAB)

فیلم‌های آموزش برنامه‌نویسی C و C++‎

فیلم‌های آموزش برنامه نویسی اسکرچ

فیلم‌های آموزش Visual Basics (ویژوال بیسیک)

فیلم‌های آموزش jQuery (جی کوئری)

فیلم‌های آموزش Visual Basics (ویژوال بیسیک)

فیلم‌های آموزش طراحی سایت با HTML و CSS

فیلم‌های آموزش برنامه‌نویسی بیسیک فور اندروید (B4A)

فیلم‌های آموزش ساختمان داده و طراحی الگوریتم

فیلم‌های آموزش مهندسی و علوم کامپیوتر

فیلم‌های آموزش برنامه‌نویسی

فیلم‌های آموزش برنامه‌نویسی پایتون (Python)

فیلم‌های آموزش پروژه‌محور برنامه‌نویسی

logo
دانلود اپلیکیشن فرادرس
با دریافت اپلیکیشن فرادرس از گوگل‌ پلی، می‌توانید تمامی امکانات سایت را روی موبایل خود نیز داشته باشید.
دانلود اپلیکیشن
با فرادرس
  • تماس با ما
  • همکاری با ما
  • تدریس در فرادرس
  • فرادرس
  • تبلیغات
  • درباره ما
آموزش‌های ویدئویی فرادرس
  • عمران
  • برنامه نویسی
  • هوش مصنوعی
  • برق و الکترونیک
  • طراحی گرافیک
  • مهندسی نرم افزار
همراه شوید
سازمان علمی و آموزشی «فرادرس» (Faradars) از قدیمی‌ترین وب‌سایت‌های یادگیری آنلاین است که توانسته طی بیش از ده سال فعالیت خود بالغ بر ۱۲۰۰۰ ساعت آموزش ویدیویی در قالب فراتر از ۲۰۰۰ عنوان علمی، مهارتی و کاربردی را منتشر کند و به بزرگترین پلتفرم آموزشی ایران مبدل شود.
فرادرس با پایبندی به شعار «دانش در دسترس همه، همیشه و همه جا» با همکاری بیش از ۱۸۰۰ مدرس برجسته در زمینه‌های علمی گوناگون از جمله آمار و داده‌کاوی، هوش مصنوعی، برنامه‌نویسی، طراحی و گرافیک کامپیوتری، آموزش‌های دانشگاهی و تخصصی، آموزش نرم‌افزارهای گوناگون، دروس رسمی دبیرستان و پیش دانشگاهی، آموزش‌های دانش‌آموزی و نوجوانان، آموزش زبان‌های خارجی، مهندسی برق، الکترونیک و رباتیک، مهندسی کنترل، مهندسی مکانیک، مهندسی شیمی، مهندسی صنایع، مهندسی معماری و مهندسی عمران توانسته بستری را فراهم کند تا افراد با شرایط مختلف زمانی، مکانی و جسمانی بتوانند با بهره‌گیری از آموزش‌های با کیفیت، به روز و مهارت‌محور همواره به یادگیری بپردازند. شما هم با پیوستن به جمع بزرگ و بالغ بر ۶۰۰ هزار نفری دانشجویان و دانش‌آموزان فرادرس و با بهره‌گیری از آموزش‌های آن، می‌توانید تجربه‌ای متفاوت از علم و مهارت‌آموزی داشته باشید.
مشاهده بیشتر بستن
هر گونه بهره‌گیری از مطالب مجله فرادرس به معنی پذیرش شرایط استفاده از آن بوده و کپی بخش یا کل هر کدام از مطالب، تنها با کسب مجوز مکتوب امکان پذیر است.
© فرادرس ۱۴۰۲
فهرست
    صفحه اصلی
    ریاضی و علوم پایه
    ریاضی
    فیزیک
    زیست شناسی
    شیمی
    برنامه نویسی و علوم کامپیوتر
    برنامه نویسی
    آموزش رایگان پایتون
    هوش مصنوعی
    یادگیری ماشین
    علم داده
    آمار
    زبان انگلیسی
    گرامر زبان انگلیسی
    زمان ها در زبان انگلیسی
    صفت در زبان انگلیسی
    افعال کمکی در زبان انگلیسی
    انواع ضمایر انگلیسی
    انواع اسم در زبان انگلیسی
    انواع قید در زبان انگلیسی
    حروف ربط در زبان انگلیسی
    انواع جمله شرطی در انگلیسی
    مجهول در زبان انگلیسی
    آزمون های زبان انگلیسی
    نمونه سوال زبان انگلیسی
    مباحث متفرقه زبان انگلیسی
    تمام مطالب زبان انگلیسی
    آموزش بورس
    ارز دیجیتال
    آموزش بیت کوین
    آموزش ارزهای دیجیتال
    معرفی ارزهای دیجیتال
    آموزش ترید ارزهای دیجیتال
    تمام مطالب ارز دیجیتال
    مهندسی
    برق
    عمران
    مکانیک
    صنایع
    مهندسی
    بیشتر
    کاربردی
    عمومی
    ادبیات
    اقتصادی
    طراحی و گرافیک
    بازاریابی
    کسب و کار و موفقیت
    سلامت
    روانشناسی
    پزشکی
    علوم انسانی
    تقلب‌نامه