آموزش ساخت صفحه لاگین ساده با php

1396/11/14 علیرضا حاتمی نیا 1871

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

صفحه لاگین چیست؟

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

پیش نیازهای آموزشی

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

ساخت فرم لاگین در HTML

در این آموزش 2 صفحه به نام های form.php جهت ورود اطلاعات و صفحه دیگر به نام login.php جهت بررسی اطلاعات ارسال شده ایجاد می کنیم. 
قبل از شروع کد نویسی در php ابتدا لازم است تا یک فرم ورود یا لاگین توسط HTML ایجاد کنید. این فروم شامل دو textbox جهت وارد کردن Email و رمز عبورو یک دکمه جهت ارسال داده ها به صفحه login.php است.

کدهای مربوط به صفحه form.php

HTML

<div id="login">
        <div class="form">Login Form</div>
        <form action="login.php" method="post">
            <input type="email" name="email" placeholder="Email">
            <input type="password" name="password" placeholder="password">
            <input type="submit" value="Login">
        </form>
    </div>

CSS

body {
            background: #133751;
        }
        #login {
            width: 400px;
            margin-left: -200px;
            background: #359ace;
            position: absolute;
            top: 25%;
            left: 50%;
            padding: 10px;
            border: 1px solid black;
        }
        #login input[type=email],
        #login input[type=password] {
            display: block;
            width: 90%;
            margin-top: 5px;
            padding: 5px;
        }
        #login input[type=submit] {
            width: 50%;
            margin-left: 25%;
            margin-top: 10px;
            padding: 7px;
            cursor: pointer;
            background: #666666;
            color: #ffffff;
            border: none;
        }
        .form {
            text-align: center;
            font-size: 20px;
            color: #ffffff;
            border-bottom: 1px solid #ffffff;
            padding-bottom: 10px;
            margin-bottom: 20px;
        }

اگر دقت کرده باشید شیوه ارسال داده های فرم Post می باشد و اطلاعات به صفحه login.php ارسال می شود.
در صفحه login.php ابتدا یک session_start شده است. سپس بررسی می شود اگر اطلاعات باشیوه POST ارسال شد email و password بررسی شوند. در صورت صحیح بودن یک session با اندیس "is_login" تولید شده و مقدار آن برابر true می شود. مقدار آن هر چیزی می تواند باشد و در غیر این صورت به صفحه form.php هدایت می شود.

PHP

session_start();
if($_SERVER['REQUEST_METHOD'] == 'POST') {
    if($_POST['email'] == 'alireza@yahoo.com' && $_POST['password'] == '1234') {
       $_SESSION['is_login'] = true;
    } else {
        header('Location: form.php');
    }
} elseif (!isset($_SESSION['is_login'])) {
    header('Location: form.php');
}

در ضمن یک لینک جهت logout می سازیم که در صفحه login.php بررسی می شود اگر اطلاعات این لینک به شیوه GET به صفحه login.php ارسال شد و متغیر action نیز موجود بود آرایه session را خالی کند که همین سبب می شود تا به صفحه form.php هدایت شود.

HTML

<a href="?action=logout">Logout</a>

PHP

if(isset($_GET['action'])) {
    $_SESSION = [];
}