🎁 شروع برنامه نویسی را از ما هدیه بگیرید!
۰ ثانیه
۰ دقیقه
۰ ساعت
۱۰۴ دیدگاه نظر امیر صالحی
آموزش ساخت صفحه لاگین و ثبت نام با php و mysql
آموزش ساخت صفحه لاگین و ثبت نام با php و mysql

اکثر ما وقتی وارد سایت مورد علاقه‌مان می‌شویم تصمیم به ثبت نام می‌کنیم تا بخشی از خانواده‌ی سایت مورد علاقه‌مان باشیم، اما تا به حال به این دقت کرده‌اید که ما دقیقا چگونه در سایت‌ها login یا ورود می‌کنیم و وارد پنل کاربری خود می‌شویم؟ و حتی اینکه چگونه در یک سایت عضو می‌شویم؟ اگر شما هم این سوال‌ها در ذهنتان هست پس در مقاله‌ی آموزش ساخت صفحه لاگین و ثبت نام با php و mysql با ما همراه باشید.

لاگین کردن در PHP - ساخت صفحه لاگین و ثبت نام با php و mysql

آمادی سازی محیط کار

برای شروع به کار در سیستم عامل خود یک ویرایشگر کد یا IDE داشته باشید تا بتوانید به راحتی نرم‌افزار خود را توسعه دهید. برای اینکه بتوانیم کدهای PHP خود را اجرا کنیم حتما WAMP یا XAMPP را نصب داشته باشید که ما به شما XAMPP را توصیه می‌کنیم.

در ادامه ما نیاز به چهار فایل داریم به نام‌های login.php، register.php، process.php، config.php. فایل login.php کدهای html ما که مربوط به فرم ورود (لاگین) است را در بر دارد و فایل register.php سورس کد فرم ثبت نام html را در بر دارد.

در فایل process.php ما کدهای مربوط به php را می‌نویسیم و در اصل عمل ثبت نام و ورود کاربر در آن قرار می‌گیرد و در آخر نیز در فایل config.php ما کدهای مربوط به اتصال به پایگاه داده را وارد می‌کنیم.

ساخت صفحه لاگین و ثبت نام با php

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

ساخت صفحه لاگین با php

سورس صفحه لاگین php در پایین همین متن قرار دارد و می‌توانید استفاده کنید، نام فایل را به دلخواه می‌توانید هر چیزی بگذارید اما برای اینکه با ما قدم به قدم جلو بیایید نام فایل را login.php قرار دهید.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>7Learn</title>
    <style>
        html,
        body {
            height: 100%;
        }
        body {
            background: #007bec;
            color: #fff;
            font-size: 1.5em;
            font-weight: 400;
            text-align: right;
            display: flex;
            align-items: center;
            flex-direction: column;
            justify-content: center;
        }
        .main {
            position: relative;
            background: #ffffff;
            color: #0e5698;
            display: inline-block;
            padding: 15px 30px;
            margin: 0 auto;
            border-radius: 7px;
            box-shadow: 0 50px 50px rgba(0, 0, 0, 0.2);
            min-height: 250px;
            min-width: 400px;
        }
        h1 {
            font: 30px sans-serif;
            text-align: center;
            margin: 25px 10px;
            font-weight: bold;
            color: #4a96db;
        }
        input,
        button,
        select,
        textarea {
            display: block;
            border: 1px solid #ccc;
            border-radius: 3px;
            margin-top: 10px;
            line-height: 28px;
            height: 30px;
            padding: 0 10px;
            width: 100%;
            box-sizing: border-box;
            font-family: sans-serif;
            font-size: 15px;
        }
        button {
            background: #007bec;
            color: #fff;
            line-height: 40px;
            height: 40px;
            font-size: 18px;
            border: 0;
        }
        button:hover {
            opacity: 0.7;
            cursor: pointer;
        }
    </style>
</head>
<body>
    <div class='main'>
        <h1>7Learn</h1>
        <form action="process.php" method="post">
            <input type="text" name="username" placeholder="username">
            <input type="password" name="password" placeholder="password">
            <button type="submit" name=login"">Login</button>
        </form>
    </div>
</body>
</html>

سورس کد فرم ثبت نام html

سورس (source) صفحه ثبت نام را هم می‌توانید از همین جا بردارید، همان‌طور که گفته شد قرار دادن نام فایل دلخواه است اما برای اینکه با ما قدم به قدم جلو بیایید نام فایل را register.php قرار دهید.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>7Learn</title>
    <style>
        html,
        body {
            height: 100%;
        }
        body {
            background: #007bec;
            color: #fff;
            font-size: 1.5em;
            font-weight: 400;
            text-align: right;
            display: flex;
            align-items: center;
            flex-direction: column;
            justify-content: center;
        }
        .main {
            position: relative;
            background: #ffffff;
            color: #0e5698;
            display: inline-block;
            padding: 15px 30px;
            margin: 0 auto;
            border-radius: 7px;
            box-shadow: 0 50px 50px rgba(0, 0, 0, 0.2);
            min-height: 250px;
            min-width: 400px;
        }
        h1 {
            font: 30px sans-serif;
            text-align: center;
            margin: 25px 10px;
            font-weight: bold;
            color: #4a96db;
        }
        input,
        button,
        select,
        textarea {
            display: block;
            border: 1px solid #ccc;
            border-radius: 3px;
            margin-top: 10px;
            line-height: 28px;
            height: 30px;
            padding: 0 10px;
            width: 100%;
            box-sizing: border-box;
            font-family: sans-serif;
            font-size: 15px;
        }
        button {
            background: #007bec;
            color: #fff;
            line-height: 40px;
            height: 40px;
            font-size: 18px;
            border: 0;
        }
        button:hover {
            opacity: 0.7;
            cursor: pointer;
        }
    </style>
</head>
<body>
    <div class='main'>
        <h1>7Learn</h1>
        <form action="process.php" method="post">
            <input type="text" name="username" placeholder="username">
            <input type="password" name="password" placeholder="password">
            <button type="submit" name="register">register</button>
        </form>
    </div>
</body>
</html>
سیستم ثبت نام کاربر در PHP - ساخت صفحه لاگین و ثبت نام با php و mysql

کدهای اتصال به پایگاه داده در php

در mysql یک دیتابیس به اسم my_site بسازید و درون دیتابیس ساخته شده یک جدول به اسم users با ستون‌های username، password ایجاد کنید تا بتوانیم کاربران خود را بسازیم و عمل ثبت نام و ورود کاربران را انجام بدهیم.

همان‌طور که در بالاتر نیز گفته شد ما کدهای مربوط به اتصال به پایگاه داده را درون فایل config.php می‌نویسیم. ابتدا ما مشخصات پایگاه داده‌ی خود را درون یک آرایه به اسم database_config ذخیره سازی می‌کنیم.

<?php
$database_config = (object) [
    'host'    => 'localhost',
    'user'    => 'root',
    'pass'    => '',
    'dbname'  => 'my_site'
]

در ادامه کدهای بالا ما باید کدهای مربوط به اتصال به پایگاه داده را بنویسیم که در اینجا ما از روش PDO استفاده می‌کنیم.

try {
    $pdo = new PDO("mysql:host={$database_config->host};dbname={$database_config->dbname}", $database_config->user, $database_config->pass);
    $pdo->exec('set names utf8');
} catch (Exception $e) {
    die("There is something wrong with connection, error: " . $e->getMessage());
}

در کد بالا و قسمت اتصال به پایگاه داده را درون بلاک try قرار داده‌ایم. درون کلاس PDO ما تمامی مشخصات لازم برای اتصال به پایگاه داده را نوشته‌ایم، بلاک catch هم زمانی اجرا می‌شود که خطایی در اتصال به پایگاه داده رخ بدهد.

حال اتصال به پایگاه داده‌ی ما آماده است و درون متغیر pdo قرار دارد و می‌توانیم به راحتی فایل config.php را هر جا که خواستیم include کنیم و از آن استفاده کنیم.

سورس کدهای ساخت صفحه لاگین و ثبت نام با php

کدهای مربوط به ثبت نام و لاگین (login) کاربر را ما درون فایل process.php می‌نویسیم، ابتدا ما می‌خواهیم از ثبت نام کاربر شروع کنیم پس با ما همراه باشید.

ثبت نام کاربر در php و mysql

به خاطر داشته باشید که action فرم ما به فایل process.php که ما اکنون درون آن کار می‌کنیم است و متد (method) فرم‌مان نیز POST می‌باشد.

وقتی که اطلاعات درون فرم موجود در فایل register.php ارسال می‌شود ما تمامی مقادیر وارد شده در فرم را درون آرایه‌ی سوپر گلوبال  (super global variables) POST داریم و می‌توانیم از آن‌ها به درستی استفاده کنیم.

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

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (isset($_POST['username']) and isset($_POST['password'])) {
        if (!empty($_POST['username']) and !empty($_POST['password'])) {
            if (isset($_POST['register'])) {
                # Register User
            } elseif (isset($_POST['login'])) {
                # Login User
            }
        }
    }
}
در کد بالا در اولین شرط بررسی کرده‌ایم آیا فرم ارسال شده است؟ که بررسی این شرط با REQUEST_METHOD انجام شده است که اگر مقدار POST را درون خودش داشت به این معناست که فرم ارسال شده است.

در شرط بعدی بررسی کرده‌ایم که مقادیر ارسال شده‌اند یا خیر؟ که از isset استفاده کرده‌ایم. درون شرط بعدی بررسی کرده‌ایم که مقادیر ارسال شده خالی نباشند.

بعد از این سه تا شرط ما شرطی را آورده‌ایم که تشخیص دهد داده‌های ارسال شده از فرم ورود (login) است یا ثبت نام (register).

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

کدهای ثبت نام کاربر در php

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

include 'config.php';
ابتدا تابعی می‌نویسیم تا بررسی که آیا کاربری با این نام کاربری وجود دارد یا خیر؟
function isUserExists($username)
{
    global $pdo;
    $sql = "SELECT * FROM users WHERE username = :username";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([':username' => $username]);
    return $stmt->rowCount();
}

تابع بالا یک نام کاربری به عنوان ورودی دریافت می‌کند و یک کوئری به سمت پایگاه داده می‌زند تا بررسی کند کاربری که اطلاعات را اسال کرده است موجود است یا خیر؟ ما تابع بالا را درون تابع register استفاده می‌کنیم که اگر کاربر موجود بود او را به صفحه‌‌ی لاگین هدایت کنیم و اگر کاربر موجود نبود او را ثبت نام می‌کنیم.

function register($name, $username, $password)
{
    global $pdo;
    if (isUserExists($username)) {
        return false;
    }
    $sql = "INSERT INTO users (username, password) VALUES (:username, :password)";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([':username' => $username, ':password' => $password]);
    return $stmt->rowCount();
}

در تابع register ما یک شرط آورده‌ایم و اگر کاربر موجود بود false را به عنوان خروجی تابع برمی‌گردانیم تا بتوانیم به او اطلاع بدهیم تا عمل لاگین را انجام دهد. اگر هم کاربر موجود نبود و از قبل ثبت نام نکرده بود ادامه‌ی کد اجرا می‌شود و کاربر در سیستم ما ثبت نام می‌شود.

در بخش شرط‌هایمان که تابع register را صدا زده‌ایم به راحتی می‌توانیم خروجی تابع register را دریافت کنیم و با توجه به آن خروجی واکنش مناسبی می‌دهیم. تابع register اگر به درستی کاربر را ثبت کند خروجی 1 را به عنوان خروجی می‌دهد و اگر عملیات با موفقیت انجام نشد خروجی 0 خواهد بود که 1 و 0 معادل true و false هستند.

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (isset($_POST['username']) and isset($_POST['password'])) {
        if (!empty($_POST['username']) and !empty($_POST['password'])) {
            if (isset($_POST['register'])) {
                if (register($_POST['username'], $_POST['password'])) {
                    header("location: register.php?s=1");
                    exit;
                }else{
                    header("location: register.php?s=0");
                    exit;
                }
            } elseif (isset($_POST['login'])) {
               # 
            }
        }
    }
}

در بلاک شرط register ما بررسی کرده‌ایم که اگر خروجی تابع register درست یا true بود به صفحه‌ی register.php برگشت داده شود و در URL برگشت داده شده ما یک مقدار s=1 را نیز قرار داده‌ایم تا بتوانیم در صفحه‌ی مقصد پیام مرتبط را چاپ کنیم. در بخش else هم زمانی اجرا می‌شود که درون تابع register تابع isUserExists اجرا شده است و تابع به این نتیجه رسیده است که کاربر موجود است و نیازی به ثبت نام دوباره ندارد پس مقدار بازگشتی تابع 0 خواهد بود و ما می‌توانیم پیام مرتبط با آن را نیز نمایش بدهیم.

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

سیستم ثبت نام کاربر در PHP - ساخت صفحه لاگین و ثبت نام با php و mysql

کدهای لاگین کاربر در php

در این بخش از مقاله‌ی آموزش ساخت صفحه لاگین و ثبت نام با php و mysql ، به آموزش ساخت صفحه لاگین با php می‌پردازیم.

بخش لاگین کاربر ساده‌تر از ثبت نام او است ولی باید یک نکته را در نظر بگیرید، زمانی که عمل لاگین کاربر انجام شد ما باید از کاربر یک رد پا بگذاریم تا بتوانیم تشخیص بدهیم که کاربر لاگین کرده است. این کار را می‌توانیم با SESSIONها انجام بدهیم.

برای اینکه بتوانیم از SESSIONها استفاده کنیم باید SESSION را start کنیم، برای این کار کافی است در بالاترین قسمت صفحه‌ای که قرار است از SESSION استفاده کنیم تابع ()session_start را استفاده کنیم.

بعد از ()session_start حال نوبت به نوشتن تابع login است.
function login($username, $password)
{
    global $pdo;
    if (!isUserExists($username)) {
        return false;
    }
    $sql = "SELECT * FROM users WHERE username = :username AND password = :password";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([':username' => $username, ':password' => $password]);
    $result = $stmt->fetch(PDO::FETCH_OBJ);
    $_SESSION['login'] = $result->id;
    return true;
}

درون تابع لاگین ما اول بررسی کرده‌ایم که آیا کاربر از قبل وجود دارد؟ اگر کاربر از قبل ثبت نام کرده بود ما در ادامه‌ی کد با یک کوئری بررسی می‌کنیم ببینیم آیا نام کاربری و رمز عبورش درست است. اگر درست بود یک SESSION برای کاربر با id خودش ثبت می‌کنیم.

تمامی کدهای صفحه‌ی process.php در یک نگاه

<?php
session_start();
include 'config.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (isset($_POST['username']) and isset($_POST['password'])) {
        if (!empty($_POST['username']) and !empty($_POST['password'])) {
            if (isset($_POST['register'])) {
                if (register($_POST['username'], $_POST['password'])) {
                    header("location: register.php?s=1");
                    exit;
                } else {
                    header("location: register.php?s=0");
                    exit;
                }
            } elseif (isset($_POST['login'])) {
                if (login($_POST['username'], $_POST['password'])) {
                    header("location: login.php?s=1");
                    exit;
                } else {
                    header("location: login.php?s=0");
                    exit;
                }
            }
        }
    }
}
function isUserExists($username)
{
    global $pdo;
    $sql = "SELECT * FROM users WHERE username = :username";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([':username' => $username]);
    return $stmt->rowCount();
}
function register($username, $password)
{
    global $pdo;
    if (isUserExists($username)) {
        return false;
    }
    $sql = "INSERT INTO users (username, password) VALUES (:username, :password)";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([ ':username' => $username, ':password' => $password]);
    return $stmt->rowCount();
}
function login($username, $password)
{
    global $pdo;
    if (!isUserExists($username)) {
        return false;
    }
    $sql = "SELECT * FROM users WHERE username = :username AND password = :password";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([':username' => $username, ':password' => $password]);
    $result = $stmt->fetch(PDO::FETCH_OBJ);
    $_SESSION['login'] = $result->id;
    return true;
}

بررسی لاگین بودن کاربر در صفحه‌ی لاگین

در صفحه login.php می‌خواهیم لاگین بودن کاربر را با SESSION که در تابع login ثبت کردیم بررسی کنیم، برای این کار ابتدا در بالاترین نقطه‌ی صفحه‌ی login.php سشن (SESSION) را start کنید.

<?php session_start() ?>

حال می‌خواهیم بررسی کنیم اگر کاربر لاگین بود فرم ورود را نشان ندهد و یک پیام "You are logged in" را می‌دهیم و اگر لاگین نبود فرم ورود را به کاربر نشان می‌دهیم تا لاگین کند.

    <?php if (isset($_SESSION['login'])) : ?>
        <?= "You are login" ?>
    <?php else : ?>
        <div class='main'>
            <h1>7Learn</h1>
            <form action="process.php" method="post">
                <input type="text" name="username" placeholder="username">
                <input type="password" name="password" placeholder="password">
                <button type="submit" name="login">Login</button>
            </form>
        </div>
    <?php endif; ?>

در کد بالا با یک if ساده این کار را انجام داده‌ایم دقت کنید که ما این کدها را درون فایل login.php نوشته‌ایم و از شرط‌هایی که درون بلاک‌های مختلف php آمده‌اند استفاده کرده‌ایم.

جمع‌بندی

در این مقاله ما یاد گرفتیم که چگونه کاربر را درون سیستم خود ثبت نام و ورود یا به اصطلاح لاگین کنیم و توانستیم با کمک توابعی که نوشته‌ بودیم این کار را به راحتی انجام دهیم، کار دیگری که می‌توانید با این پروژه کوچک انجام بدهید این است که بعد از دریافت s=1 و s=0 از header به کاربر یک پیام مناسب نشان دهید. اگر در مورد آموزش ساخت صفحه لاگین و ثبت نام با php و mysql سوال یا نظری داشتید خوشحال می‌شویم که در بخش نظرات با ما و کاربران سون لرن به اشتراک بگذارید.

اگر به یادگیری بیشتر در زمینه‌ی PHP علاقه داری، با شرکت در دوره‌ PHP در کمتر از یک سال به یک متخصص PHP تبدیل می‌شوی که آماده‌ی استخدام، دریافت پروژه، کسب درآمد و یادگیری مباحثی مثل لاراول هستی.
۱۰۴ دیدگاه
ما همه سوالات و دیدگاه‌ها رو می‌خونیم و پاسخ میدیم
امیرمحمد سبزواری ۰۷ اسفند ۱۴۰۲، ۱۵:۴۵

سلام ببخشید من تو این که چه نوع فایلی باید بسازم مشکل دارم مثلا الان در دو فایل اول کد PHP نوشته نشده و فقط html وجود داره پس چرا پسوند فایل باید php باشه بهتر نیست فرم رو با استفاده از پسوند html نوشت و بعد به فایل مربوط به احراز و ثبت در دیتابیس include کرد و سپس مراحل رو انجام داد من تو این خیلی مشکل دارم که دقیقا چند تا فایل باید داشته باشم و با چه پسوندی مثقلا همین رو میشه در یک فایل html و یک فایل PHP خلاصه کرد درستش چی هست ؟

نازنین کریمی مقدم ۲۸ اسفند ۱۴۰۲، ۲۰:۴۱

درود ببینید راستش هردو روش درسته. راه ما ساده‌ترین و ابتدایی‌ترین کاریه که میشه انجام داد و برای گیج نشدن افراد تازه کار همه موارد رو در یک فایل php نوشتیم. اما این روشی که بخش html و css و php رو از هم جدا کنیم و با ایمپورت کار کنیم یک روش اصولی و استاندارد هست و کاملا هم درسته. اگر میخواید طبق آموزش ما پیش برید همونطور که اول مقاله گفتیم کلا چهارتا فایل php نیازه. اما در روش خودتون به ازای هر فایل بخش html جدا میشه و درون فایل دیگری قرار میگیره و در مجموع 8 تا فایل خواهید داشت. انتخاب با شماست :)

amir ۰۱ مهر ۱۴۰۲، ۱۰:۳۷

ارور not afund درقسمت فرم‌ها از چی میتونه باشه؟؟

نازنین کریمی مقدم ۲۴ مهر ۱۴۰۲، ۰۵:۳۸

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

۲۸ مرداد ۱۴۰۲، ۲۰:۴۵

سلام خسته نباشید در قسمت function login وقتی به شر ط if (!isUserExists($username)) می‌رسیم فقط یوزر نیم رو بررسی میکنه که آیا در دیتابیس موجود هست یا نه و پسورد رو بررسی نمیکنه و اگه ما برای ورود پسورد رو هم اشتباه وارد کنیم به ما ورود میده من تغییرش دادم و این شرط رو وارد کردم if (!isUserExists($username,$password)) که هم پسورد رو چک کنه و هم یوزر نیم رو و درست جواب داد که البته باید در قسمت select هم query رو تغییر بدیم $select = &amp;quot;SELECT * FROM users WHERE user = :username AND pass = :password&amp;quot;; $stmt = $connection-&amp;gt;prepare($select); $stmt-&amp;gt;execute([&amp;quot;username&amp;quot;=&amp;gt;$username,&amp;quot;password&amp;quot;=&amp;gt;$password]); $result = $stmt-&amp;gt;fetch(PDO::FETCH_OBJ); $_SESSION[&amp;#39;login&amp;#39;] = $result-&amp;gt;id; return true; فقط تنها جایی که درست متوجه نشدم $_SESSION[&amp;#39;login&amp;#39;] = $result-&amp;gt;id; بود که اگه لطف کنید توضیح بدین ممنون میشم.

نازنین کریمی مقدم ۱۹ شهریور ۱۴۰۲، ۱۰:۵۹

درود ممنون از همراهی تون و اینکه به دوستان سون لرنی کمک میرسونید. اون خط میاد برای کاربر یک session میسازه تا اگر کاربر تغییری داد (مثلا پستی رو لایک کرد یا چیزی به سبد خرید اضافه کرد) صرفا برای اون کاربر اعمال بشه و نه برای همه.

۰۵ مرداد ۱۴۰۲، ۱۹:۰۰

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

نازنین کریمی مقدم ۱۹ شهریور ۱۴۰۲، ۰۸:۵۲

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

۲۳ تیر ۱۴۰۲، ۱۳:۰۳

سلام خیلی ممنون از این آموزش من میخواستم وقتی که درون صفحه لاگین میشه کاربر به صفحه خودش بره و هر تغییری رو انجام بده روی صفحه خودش باشه مثلاً محصولی درون سبد خرید قرار میده برای همه این اجرا نشه خیلی ممنون میشم اگه زود‌تر بگید باید چیکار کنم

نازنین کریمی مقدم ۱۹ شهریور ۱۴۰۲، ۱۰:۲۳

درود باید برای هر کاربر یک session و آیدی تعریف کنید و تغییرات رو براساس آیدی در دیتابیس ذخیره کنید. کلا برای این کار باید به php و برنامه نویسی بک اند مسلط باشید و پاسخ تون در قالب کامنت نمیگنجه.

۲۲ تیر ۱۴۰۲، ۲۱:۱۶

سلام دوست من با برسی کدهای شما به این نتیجه رسیدم بسیار ضعیف بود البته از بنده خورده نگیرید چند مساله مطرح است ورودی ثبت نام برای پسورد برای ذخیره در جدول باید هش شود که بهترینش argon2id به همراه نمکو فلفل میباشد مساله بعدی ورودی‌های کاربر باید از حملات xssدر امان باشد و شما برای جلوگیری از درامان ماندن در مقابل حملات از فیلتروارو htmlspecialchars استفاده نمایید و در ثبت ورود و خروج ورودی‌ها را فرار دهید شما میتوانید برای هر فیلد تایین کنید مقدار چه باشد و ...

نازنین کریمی مقدم ۲۸ تیر ۱۴۰۲، ۲۰:۰۴

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

۲۰ تیر ۱۴۰۲، ۱۰:۳۶

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

نازنین کریمی مقدم ۲۸ تیر ۱۴۰۲، ۱۹:۵۳

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

۲۷ اردیبهشت ۱۴۰۲، ۱۲:۳۲

سلام خسته نباشید این کد نویسی واین کار هارو میشه با گوشی انجام داد؟

نازنین کریمی مقدم ۳۰ اردیبهشت ۱۴۰۲، ۰۶:۳۲

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

۲۴ اردیبهشت ۱۴۰۲، ۱۷:۵۳

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

نازنین کریمی مقدم ۰۲ خرداد ۱۴۰۲، ۰۸:۳۶

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

۲۲ اردیبهشت ۱۴۰۲، ۱۴:۰۳

سلام خسته نباشید باید این کد هارو از بالا تا پایین پشت سر هم بنویسیم و همشون در یک صفحه php باشند؟

نازنین کریمی مقدم ۲۳ اردیبهشت ۱۴۰۲، ۰۶:۲۴

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

آیدا قاسم پور ۱۶ اردیبهشت ۱۴۰۲، ۱۸:۵۶

سلام عالی بود ممنون یک سوال داشتم در کد هایی که شما نوشته اید ، برای استایل دادن به کد‌ها از تگ استایل در قسمت head استفاده شده آیا امکانش هست که در فایل پی اچ پی ای که مینویسیم برای استایل دهی از فایل css ای که ایجاد میکنیم و link دادن در قسمت تگ head استفاده نمود یا حتما در فایل PHP باید از استایل دهی مستقیم استفاده نمود ؟

نازنین کریمی مقدم ۱۷ اردیبهشت ۱۴۰۲، ۱۰:۰۳

درود میشه. کلا دو روش کدنویسی وجود داره و هر دو روش مستقیم و فایلی اوکی هستند.

۲۴ فروردین ۱۴۰۲، ۰۹:۵۰

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

نازنین کریمی مقدم ۲۴ فروردین ۱۴۰۲، ۲۰:۴۱

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

۰۸ بهمن ۱۴۰۱، ۰۳:۱۲

سلام . ما کدی میخوایم که کاربر فرم ثبت نام انجام بشه اطلاعاش ذخیره بشه و به طور خودکار سایت ما اطلاعاتشو در سایت دیگه هر چند ثانیه ارسال کنه که اون بانک مورد نظر پیدا شد رو ثبت نامش کنه ... کدش چیه

نازنین کریمی مقدم ۰۸ بهمن ۱۴۰۱، ۰۵:۵۴

درود این کار به یک برنامه نویس حرفه ای PHP نیاز داره و مسائل امنیتی هم در کنار عملکرد باید چک بشه. کدش در حد دو خط نیست که بشه اینجا توضیح بدیم!

۲۲ دی ۱۴۰۱، ۰۵:۰۸

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

نازنین کریمی مقدم ۲۵ دی ۱۴۰۱، ۱۱:۱۵

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

۱۰ دی ۱۴۰۱، ۲۰:۵۹

سلام به این خطا بر میخورم Parse error: syntax error, unexpected &amp;#39;try&amp;#39; (T_TRY) in G:\xampp\htdocs\test\config.php on line 8 کد هامم درسته دقیقا از کد‌های شما کپی کردم

نازنین کریمی مقدم ۱۱ دی ۱۴۰۱، ۱۷:۳۴

درود <a href="https://stackoverflow.com/questions/51115167/parse-error-syntax-error-unexpected-try-t-try-in-e-wamp64-www-project-tri" rel="nofollow ugc">این تاپیک</a> رو بررسی کنید.

۱۲ مهر ۱۴۰۱، ۱۴:۳۵

سلام. میشه فایل کامل مربوط به این آموزش ارسال کنید؟

۰۱ شهریور ۱۴۰۱، ۱۵:۴۷

سلام چطوری میشه یک صفحه ورود رو به چندین سایت متصل کرد یعنی با ورود داخل این صفحه خودکار در چند سایت دیگر لاگین شه کاربر

نازنین کریمی مقدم ۰۲ شهریور ۱۴۰۱، ۰۳:۵۱

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

۲۲ تیر ۱۴۰۱، ۱۲:۱۷

سلام و تشکر از مطلب خوبتون اگر بخواهم در قسمت لاگین گزینه نمایش پسورد را قرار دهم (که معمولا به شکل چشم هستش) باید چکار کنم؟

نازنین کریمی مقدم ۲۶ تیر ۱۴۰۱، ۰۴:۰۲

درود کافیه در تگ input در بخش html، ویژگی type=password رو اضافه کنید.

۱۹ خرداد ۱۴۰۱، ۲۰:۰۳

خوب بود با جاوا اسکریپت کار ساخت صفحه ثبت نام و لاگین با مشکل مواجه میشه چونکه اگه بخایم کاربران رو توی local Storage ذخیره کنیم محدودیت ۵ مگابایت داریم و فقط توی یک مرورگر در دسترس هست و کاربرای عمومی نمیشن با جاوا اسکریپت نمیشه صفحه لاگین ساخت چون حتما با مشکلاتی مواجه خاهیم شد و باید کنار جاوااسکریپت از زبان‌های دیگه هم استفاده کنیم(به احتمال زیاد) و جاوااسکریپت به تنهایی موفق نمیشه کل صفحه لاگین رو بسازه و دیتا کاربران رو درون خودش ذخیره کنه و این صفحه خوب بود بعنوان pdf دانلودش کردم

۰۲ بهمن ۱۴۰۱، ۱۸:۳۴

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

۰۹ اردیبهشت ۱۴۰۱، ۰۶:۴۴

سلام و درود من یک سایت وردپرسی دارم که از پلاگین‌های المنتور و ووکامرس استفاده میکنم. میخوام وقتی کاربر لاگین میکنه یا ورود میزنه توی همون صفحه ای فرود بیاد که داخلش بود مثلا توی صفحه سبد خرید _ تسویه حساب ( که مربوط به ووکامرس هستن ) یا حتی توی هر کدوم از نوشته‌های سایت ( که با المنتور طراحی و نوشته شدن) ممنون میشم منو راهنمایی کنید. ممنونم

نازنین کریمی مقدم ۱۸ اردیبهشت ۱۴۰۱، ۰۸:۴۵

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

۰۶ فروردین ۱۴۰۱، ۲۰:۳۵

ببخشید یه سوال این صفحه لاگینی که درست کرید اگر من بخواهم برای سایتم استفاده کنم و در اینترنت قرار دهم آیا امنیت را خواهم داشت؟ ای کاش یه سایت در مورد مباحث امنیت برای ساخت یه سایت با php را کامل توضیح می‌داد :(

نازنین کریمی مقدم ۰۹ فروردین ۱۴۰۱، ۱۴:۴۷

درود برای بحث امنیت باید بگم که باید مواظب sql injection‌ها باشید. با سرچ در نت به نتایج خوبی میرسید. کلا امنیت شاخه به شدت پرباری هست و سعی میکنیم در آینده این بخش رو پوشش بدیم.

۰۶ فروردین ۱۴۰۱، ۰۷:۴۷

تشکر از زحمات شما. از function register($name, $username, $password) به function register($username, $password) تغییر کند

۱۱ بهمن ۱۴۰۰، ۲۳:۰۸

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

نازنین کریمی مقدم ۱۲ بهمن ۱۴۰۰، ۰۹:۴۱

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

۱۰ دی ۱۴۰۰، ۱۷:۱۲

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

۰۹ دی ۱۴۰۰، ۰۸:۴۳

سلام مجدد معذرت می‌خوام ارسال لینک مجاز نیست به همین خاطر لینک حذف شده. https?://codepen.io/?GrandvincentMarion/pen/epEPjp در ضمن من از بک اند سر در نمیارم امکانش هست موفق بشم؟

نازنین کریمی مقدم ۱۱ دی ۱۴۰۰، ۱۴:۳۶

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

۰۶ دی ۱۴۰۰، ۱۳:۰۲

سلام وقت بخیر بنده می‌خواهم از لاگین پیج لینک زیر استفاده کنم. چه کار باید بکنم؟

نازنین کریمی مقدم ۰۶ دی ۱۴۰۰، ۱۳:۴۹

درود لینک تون رو فراموش کردید بفرستید :)

۳۰ آذر ۱۴۰۰، ۱۳:۴۶

slm be in error bar mikhorm chra Parse error: syntax error, unexpected token &amp;quot;try&amp;quot; in H:\xampp\htdocs\test\config.php on line 8

نازنین کریمی مقدم ۰۴ دی ۱۴۰۰، ۰۷:۳۸

درود این ارور میگه که شما در فایل config.php در خط 8 خطای نوشتاری دارید. کدتون رو بررسی کنید یه پرانتزی براکتی چیزی جا مونده احتمالا :)

۲۱ آذر ۱۴۰۰، ۱۹:۱۷

سلام اموزش ثبت نام و احراز هویت شماره همراه رو از کجا میتونم ببینم؟

نازنین کریمی مقدم ۲۲ آذر ۱۴۰۰، ۰۶:۰۲

درود نزدیک‌ترین بهش مقاله <a href="https://7learn.com/blog/phone_authentication_in_laravel" rel="noopener" target="_blank">احراز هویت با موبایل در لاراول</a> هست.

ali ۱۱ آذر ۱۴۰۰، ۲۱:۰۹

سلام ممنون از مقاله خوبتون من یه سوالی داشتم و اینکه چطوری توی وبسایت‌ها مختلف ما ثبت نام میکنیم و بعد چند روز میایم داخل سایت میبینیم که توی سایت لاگین هستیم بعد اگه ما توی کوکی بریزیم امنیتش پایینه و اگر هم داخل سشن بریزیم بعد از بسته شدن مرورگر از بین میره می‌خواستم بدونم که چطوری میشه کاری کرد که وقتی کاربر ثبت نام میکنه اون تا چند روز توی سایت لاگین باشه؟

Nazanin KarimiMoghaddam ۱۳ آذر ۱۴۰۰، ۰۸:۲۸

درود بسیاری از روش کوکی و سشن استفاده میکنند که همونطور که فرمودید روش مناسبی نیست. یکی از کاربردی‌ترین کارها استفاده از JWT هست. وقتی کاربر یک بار لاگین میکنه، یک توکن امن توسط سرور صادر شده و با فرمت JWT به سمت کلاینت ارسال میشه. این توکن در بخش local storage مرورگر کاربر ذخیره میشه (پس دیگه مشکل سشن رو نداره) دفعات بعدی بجای ارسال اطلاعات به سرور و... سایت میاد خیلی راحت local storage رو چک میزنه و میبینه کاربر اجازه ورود داره و اطلاعاتشم همونجاست، پس لاگین نگهش میداره. برای اطلاعات بیشتر میتونید <a href="https://stackoverflow.com/questions/41319927/how-do-websites-keep-you-logged-in" target="_blank" rel="noopener nofollow ugc">این لینک</a> رو مطالعه کنید.

Hacker ۲۵ آبان ۱۴۰۰، ۰۴:۲۹

ببخشید یه راهنمایی دارم براتون داخل قسمت سرچ شما برای حذف&amp;lt;&amp;gt; از از &amp;amp;gt; &amp;amp;lt; استفاده کردید ولی در داخل قسمت پایینش جای حروف اصلی کد هایی که زدید نمایش داده میشه بهتره که یکاری کنید که در قسمت پایین سرچ که سرچ رو نشون میده &amp;amp;gt; و &amp;amp;lt; رو تبدیل به علامت‌های اصلی کنه

Nazanin KarimiMoghaddam ۲۵ آبان ۱۴۰۰، ۰۶:۲۷

درود باهاتون خیلی موافقم :) یکم تمیزکاری میخواد.

Hacker ۲۵ آبان ۱۴۰۰، ۰۴:۲۳

سلام من علاقه بسیاری به برنامه نویسی دارم ولی نت ندارم و ویندوزم هم 32 هستش برای برنامه نویسی پی اچ پی کامپایلر افلاین وجود داره؟۱۴ سالمه css html js رو یاد گرفتم میخوام پی اچ پی رو‌هم یاد‌ بگیرم

Nazanin KarimiMoghaddam ۲۵ آبان ۱۴۰۰، ۰۶:۰۵

درود بله میتونید از برنامه phpstorm یا حتی vscode استفاده کنید. هردو هم نسخه 32 بیتی دارند. نیازی به نت نیست اما بهتره یکمی داشته باشید که اگر به مشکلی خوردید بتونید سرچش کنید. پاینده باشید.

Dude ۰۳ مهر ۱۴۰۰، ۲۱:۱۵

سلام. در مورد لاگین چند مرحله ای سوال داشتم. ۱: ابتدا کاربر با شماره موبایل احراز هویت میکنه و کد تایید ارسال میشه . ۲: اگر کاربر قبلا ثبت نام کرده باشه و اطلاعاتش تو دیتابیس باشه وارد برنامه میشه ولی اگر ثبت نام نکرده باشه صفحه ثبت نام ایجاد میشه که اطلاعات باید وارد کند. مشکل من قسمت دوم هستش که چه کدی باید نوشت که تشخیص بده کاربر جدید هست یا نه ؟ ممنوم میشم راهنماییم کنید.

نازنین کریمی مقدم ۰۶ مهر ۱۴۰۰، ۰۲:۰۷

درود کاربر شما هنگام ثبتنام یسری اطلاعات داده که در پایگاه داده ذخیره میشن. شما با تابع isUserExists چک میزنید که این اطلاعات در پایگاه داده هست یا خیر. اگر نبود یعنی کاربر جدید هست. تابع isUserExists رو چک بزنید بدنه و ورودی خروجیها به صورت کد موجود هست و کافیه مطالعه کنید.

saeed ۲۹ شهریور ۱۴۰۰، ۰۵:۴۸

سلام هنگام لاگین کردن با پسورد اشتباه هم وارید میشه لطفا راهنمایی کنید

نازنین کریمی مقدم ۳۱ شهریور ۱۴۰۰، ۱۱:۴۸

درود بخش تابع login رو بررسی کنید و یه پرینت بذارید ببینید مقدار پسورد ذخیره شده و پسورد وارد شده رو چی میزنه؟ چون تو این بخش چک میزنیم اگه برابر بود بیاد session بسازه و قاعدتا نباید مشکلی باشه.

eliya ۰۱ شهریور ۱۴۰۰، ۱۱:۲۵

نمیتوانم لودینگو بسازم

رامین احمدی ۲۸ خرداد ۱۴۰۰، ۰۸:۱۵

شما مثلا سایت برنامه نویسی هستید . ولی کدهای خودتون هم ارور سینتکس داره . من تامام مراحل رو رفتم ولی همونطور که یه کاربر دیگه هم گفته بود Parse error: syntax error, unexpected 'try' (T_TRY) in C:\xampp\htdocs\my_site\config.php on line 9 در اینجا دچار مشکل هست . لطفا بررسی کنید

نازنین کریمی مقدم ۲۸ خرداد ۱۴۰۰، ۱۳:۰۷

سلام یکی از دلایل رایج در گرفتن سینتکس ارور این هست که شما در کدتون و به خصوص حوالی بلاک try یه جایی semicolon یا ; رو فراموش کردید بذارید. یه دلیل دیگه هم میتونه این باشه که یه جایی اشتباها پرانتز و یا آکولادی رو بستید. کدتون رو با درنظر گرفتن این موارد بررسی کنید. به هر حال انسان جایزالخطاست و ممکنه تو نگارش مقاله یسری چیزا در ساختار سایت جا بمونه. مفهومو که بفهمید باقیش رو خودتون میتونید بزنید.

مانی ۰۱ اردیبهشت ۱۴۰۰، ۲۲:۳۴

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

نازنین کریمی مقدم ۰۳ اردیبهشت ۱۴۰۰، ۱۴:۰۲

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

علیرضا ۲۵ فروردین ۱۴۰۰، ۰۶:۱۳

بری اینکه این سیستم رو امن کنیم چه پیشنهاداتی دارین؟ یا اگه ممکنه سری مبحث بهم معرفی کنید برم خودم سرچ بزنم الان هیچ دیدی ندارم که واسه امنیتش لز کجا شروع کنم

نازنین کریمی مقدم ۲۵ فروردین ۱۴۰۰، ۱۲:۲۱

درود. شما میتونید عبارت امنیت php رو در سایت سرچ بزنید مقالات مرتبط رو میاره. برای مثال این مقاله خیلی خوبیه: <a href="https://7learn.com/programming/php/php-security-tutorial" rel="noopener" target="_blank">آموزش کامل برقراری امنیت در برنامه نویسی PHP</a>

قاسم ۲۱ اسفند ۱۳۹۹، ۲۱:۱۱

سلام ، مراحل طی شد و درست اجرا میشه . منتها کاربر مجدد که register میشه و با وارد کردن نام کاربری خود و رمز عبوری مخالف رمز ی که اول وارد کرده ( در قالب رمزی 34 رقمی در جدول ذخیره شده است ) هدایت به فرم لاگین می‌شود مگر غیر اینه که سیتم باید ارور بده ، زیرا رمز اشتباه است .

نازنین کریمی مقدم ۲۶ اسفند ۱۳۹۹، ۱۰:۲۴

درود. بله ما تو کدمون اینطوری مدیریت کردیم اما شما میتونید تابع login رو با نوشتن یک شرط ادیت کنید که اگر رمز اشتباه بود، سیستم پیام ارور بده.

mohammad ۲۳ بهمن ۱۳۹۹، ۱۰:۲۲

من وقتی اطلاعات رجیستر رو وارد میکنم با ارور this page is'nt working روبه رو میشم وقتی میخود بره به process.php

نازنین کریمی مقدم ۲۹ بهمن ۱۳۹۹، ۱۷:۱۲

درود این خطا معمولا وقتی پیش میاد که در کد خطا دارید. یکبار دیگه بررسی کنید اسم متغیری رو جایی اشتباه ننوشته باشید و... چون این کدها تست شدند و درست کار میکنند.

قاسم ۲۷ دی ۱۳۹۹، ۰۹:۰۴

سلام ، ""کدهای مربوط به ثبت نام و لاگین (login) کاربر را ما درون فایل process.php می‌نویسیم"" لطفا چگونگی ترکیب این کدها را توضیح دهید.

نازنین کریمی مقدم ۲۷ دی ۱۳۹۹، ۱۰:۵۹

درود. چهار فایل داریم به نام‌های login.php، register.php، process.php، config.php. فایل login.php کدهای html که مربوط به فرم ورود (لاگین) است و فایل register.php سورس کد فرم ثبت نام html را دارد. در فایل process.php کدهای مربوط به php را می‌نویسیم و در اصل عمل ثبت نام و ورود کاربر در آن قرار می‌گیرد و در آخر نیز در فایل config.php ما کدهای مربوط به اتصال به پایگاه داده را وارد می‌کنیم. نیاز به ترکیب نیست: به همون ترتیبی که در هر بخش گفته شده کد رو در فایل مخصوص به خودش کپی پیست میکنید. توصیه میکنم php رو از پایه یاد بگیرید چون در ادامه براتون مشکل ساز میشه. پاینده باشید.

احسان معالی امیری ۱۴ دی ۱۳۹۹، ۱۷:۲۶

سلام من پس از زدن لاگین اروری دریافت نمی‌کنم ولی برنامه در config.php گیر می‌کند و عملکرد نخواهد داشت دلیل چیست کدهای شما را کاملا درست کپی کردم دیتابیس هم ارور نمیدهد ولی درست عمل نمی‌کند لطفا یا سورس را برای دانلود بگذارید یا راهنمایی بفرمایید با تشکر

نازنین کریمی مقدم ۱۴ دی ۱۳۹۹، ۲۱:۳۶

سلام. بررسی کردید که دقیقا رو چه خطی گیر میکنه؟

حسین ۲۵ آذر ۱۳۹۹، ۱۰:۱۸

ممنون از آموزش خوب و جامع تون من php یه کم تازه واردم چجوری میتونم این فرم رو داخل صفحه html وبسایتم بارگزاری کنم؟

نازنین کریمی مقدم ۱۶ دی ۱۳۹۹، ۰۸:۴۸

سلام. اگر فقط کد html رو نیاز دارید کافیه کپیش کنید. اما اگر کل کد رو به همراه کدهای php میخواید طبق مراحل مقاله پیش برید.

علی ۱۸ آذر ۱۳۹۹، ۱۸:۰۷

سلام خوبین اگه میشه سورس کامل zip شده رو به ایمیلم ارسال کنید

رضا کلیدری ۱۱ آذر ۱۳۹۹، ۱۳:۴۵

سلام ب همه دوستان اگر میخواین متد logout رو هم پیاده کنید، لازمه که صفحه process رو به صورت زیر ویرایش کنید:

mahan ۳۰ مهر ۱۳۹۹، ۰۹:۲۸

سلام وقتتون بخیر من با این که دقیقا کدهارو عین شما اجرا کردم syntax ارور گرفتم (Parse error: syntax error, unexpected 'try' (T_TRY) in C:\xampp\htdocs\login_form\config.php on line 10)میشه راهنماییم کنین مشکل از چیه . تو syntax هیچ مشکلی نمیتونم پیدا کنم

نازنین کریمی مقدم ۰۸ آبان ۱۳۹۹، ۱۱:۴۹

سلام. یکی از دلایل رایج در گرفتن سینتکس ارور این هست که شما در کدتون و به خصوص حوالی بلاک try یه جایی semicolon یا ; رو فراموش کردید بذارید. یه دلیل دیگه هم میتونه این باشه که یه جایی اشتباها پرانتز و یا آکولادی رو بستید. کدتون رو با درنظر گرفتن این موارد بررسی کنید.

مصطفی ۲۷ مهر ۱۳۹۹، ۰۹:۲۷

سلام خسته نباشید به شما و گروه خوبتون میخواستم بپرسم ایا شما اموزش {(رمز خود را فراموش کرده اید ؟ )} رو هم توی این وب سایت قرار دادین ؟ یا اگه ندادین میشه یک کمک بکنید ببینم چجوری میشه ساخت این بخش رو ، که مثلا چجوری میشه پیام فرستاد به جیمیل طرف که از طریق اون بره رمزش رو عوض کنه

نازنین کریمی مقدم ۲۷ آبان ۱۳۹۹، ۱۳:۰۲

سلام. خیر چنین آموزشی در مقالات هنوز نوشته نشده اما در دستور کار قرار میدیم. اگر نیاز فوری دارید، میتونید به این آموزش مراجعه کنید: <a href="https://www.allphptricks.com/forgot-password-recovery-reset-using-php-and-mysql/" target="_blank" rel="noopener noreferrer nofollow ugc">آموزش ارسال ایمیل در صورت فراموشی رمز در php</a>

Hosein Mohamadi_R ۰۵ شهریور ۱۳۹۹، ۱۲:۲۷

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

امیر صالحی ۰۵ شهریور ۱۳۹۹، ۱۳:۲۲

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

رضا ۲۲ مرداد ۱۳۹۹، ۱۶:۵۶

سلام سابتتون عالیه ولی وقتی فرم میخوام تست کمنم میزنم لاگین همینتور میره مثلا نمیگه فرم را کامل کنید یا فرم اشتباه است ممنون میشم کدی بدید که بشه به کاربر اخطار داد

امیر صالحی ۲۴ مرداد ۱۳۹۹، ۱۶:۱۵

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

sadaf ۱۶ مرداد ۱۳۹۹، ۱۷:۴۱

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

امیر صالحی ۱۷ مرداد ۱۳۹۹، ۱۵:۴۵

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

سید مهدی ۳۰ تیر ۱۳۹۹، ۱۱:۲۴

سلام با تشکر از زحماتتون ولی من صفحه login برام کار نمیکنه در هر صورتی به صفحه process منتقل میشه اگه اطلاعات درست باشه خالی باشه غلط باشه فرقی نمیکنه کلا میره به صفحه process

امیر صالحی ۳۰ تیر ۱۳۹۹، ۱۵:۳۸

سلام، ممنون از لطفی که دارید شما می‌تونید در دومین شرطی که بررسی میشه کاربر اطلاعات را وارد کرده یا خیر به راحتی یک else برای اون شرط قرار بدید و نزارید کاربر تا وقتی که اطلاعات را کامل وارد نکرده، وارد صفحه process نشه

saeed ۲۴ تیر ۱۳۹۹، ۰۷:۳۲

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

امیر صالحی ۲۴ تیر ۱۳۹۹، ۱۰:۴۸

سلام سعید جان خواهس مبکنم افتخاریه برای ما. برای اینکه کاربر رو به جای دیگه انتقال بدی میتونی از تابع header استفاده کنی header("Location: test.php")

محمدرضا رحیمی ۰۴ تیر ۱۳۹۹، ۱۶:۵۷

سلام به جای session میشه از cookie استفاده کرد؟ که مثلا کاربر تا یک هفته هرموقع به سایت مراجعه کرد نیازی به لاگین کردن نداشته باشه

امیر صالحی ۲۴ تیر ۱۳۹۹، ۱۰:۴۵

سلام محمد رضا جان. بله میشهُ نمونه ش رو هم میتونی تو همین سایت سون لرن مشاهده کنی

mjavadH ۳۰ خرداد ۱۳۹۹، ۰۵:۴۵

بسیار خوب بود ولی من وقتی چک کردن وجود کاربر رو (isUserExists ) رو بصورت تابع مینوشتم query کار نمیکرد

امیر صالحی ۰۳ تیر ۱۳۹۹، ۱۵:۱۸

سپاس فرمان از شما آیا connection به درستی بر قرار شده بود؟

بهرام ۲۸ خرداد ۱۳۹۹، ۰۷:۴۳

عالی بود. ممنون.

امیر صالحی ۰۳ تیر ۱۳۹۹، ۱۵:۱۷

ممنون از توجهتون

!" A "! ۲۸ خرداد ۱۳۹۹، ۰۶:۰۳

? واقعا گروه 7learn گروه قدرتمندی هست ! خیلی عالی بود ? اگه ممکنه همچین مقاله هایی رو بیشتر انتشار بدین. موفق باشید.

امیر صالحی ۰۳ تیر ۱۳۹۹، ۱۵:۱۶

خیلی ممنونیم از شما و از لطفتون، حتما

  • آمادی سازی محیط کار
  • ساخت صفحه لاگین و ثبت نام با php
  • کدهای اتصال به پایگاه داده در php
  • سورس کدهای ساخت صفحه لاگین و ثبت نام با php
  • بررسی لاگین بودن کاربر در صفحه‌ی لاگین
اشتراک گذاری مقاله در :