آموزش ایجاد صفحه ثبت نام با Ajax در PHP
0 0

آموزش ایجاد صفحه ثبت نام با Ajax در PHP


آموزش ایجاد صفحه ثبت نام با Ajax در PHP

در این قسمت برای شما آموزش نحوه ثبت نام کاربر با Jqury و Ajax به زبان php را آماده کرده ایم.

برای اینکه ما بتوانیم از قابلیت های Jquery و Ajax استفاده کنیم ابتدا باید آخرین نسخه Jquery را دانلود کرده و در برنامه خودتان استفاده کنید ما در فایل این برنامه این فایل را قرار داده ایم.

برای ثبت نام کاربر به زبان php ما به صفحات ذیل نیازمندیم که به ترتیب تک تک صفحات را توضیح می دهیم.

قبل از اینکه به سراغ توضیح صفحات برویم ابتدا باید یک پایگاه داده ایجاد کرده و جدولی را با فیلدهای زیر ایجاد نماییم.

ما در این برنامه فیلدهای Id,Username,Email,Password را در نظر گرفته ایم ولی شما بسته به وب سایت خودتان می توانید فیلدهایی را به این جدول اضافه نمایید.

صفحه index.php : کدهای این صفحه به صورت زیر می باشد.

<!DOCTYPE html>
<html>
<head>
    <title>ثبت نام ایران گنج</title>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="css/style.css"/>
    <script src="js/jquery.min.js"></script>
    <script type="text/javascript" src="js/registration.js"></script>
</head>
<body>
<div class="container">
    <div class="main">
        <form class="form" method="post" action="#">
            <h2>ثبت نام</h2>
            <hr/>
            <div id="error"></div>
            <label>نام کاربری :</label>
            <input type="text" name="username" id="username">

            <label>ایمیل :</label>
            <input type="text" name="email" id="email">

            <label>پسورد :</label>
            <input type="password" name="password" id="password">

            <label>تکرار پسورد :</label>
            <input type="password" name="rePassword" id="rePassword">

            <input type="button" name="register" id="register" value="ثبت نام">
        </form>
    </div>
</div>
</body>
</html>

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

ولی نکته ای که باید رعایت کنید باید برای فیلدهایی که در فرم در نظر می گیرید ID و Name مناسب را انتخاب کنید. چون در صفحه Jquery به این ها نیازمندیم.

در این صفحه یک تگ div با آی دی error قرار داده ایم که پیغام های خطا را به کاربر نشان می دهیم.

همچنین در تگ head فایل jquery و فایل Css ای که نوشتیم را لینک کرده ایم.

برای زیبایی فرم از css استفاده کردیم که می توانید کدهای آن را در زیر ببینید.

body {
    direction: rtl;
    font-family: 'b nazanin', serif;
}

h2 {
    text-align: center;
    font-size: 24px;
}

hr {
    margin-bottom: 30px;
}

div.container {
    width: 500px;
    height: 610px;
    margin: 50px auto;
    font-family: 'b nazanin', serif;
    position: relative;
}

div.main {
    width: 320px;
    padding: 10px 55px 40px;
    background-color: rgba(187, 255, 184, 0.65);
    border: 15px solid white;
    box-shadow: 0 0 10px;
    border-radius: 2px;
    font-size: 13px;
}

input[type=text], [type=password] {
    width: 97.7%;
    height: 34px;
    padding-left: 5px;
    margin-bottom: 20px;
    margin-top: 8px;
    box-shadow: 0 0 5px #00F5FF;
    border: 2px solid #00F5FF;
    color: #4f4f4f;
    font-size: 16px;
}

label {
    color: #464646;
    text-shadow: 0 1px 0 #fff;
    font-size: 14px;
    font-weight: bold;
}

#register {
    font-size: 20px;
    font-family: 'b nazanin', serif;
    margin-top: 15px;
    background: linear-gradient(#22abe9 5%, #36caf0 100%);
    border: 1px solid #0F799E;
    padding: 7px 35px;
    color: white;
    text-shadow: 0px 1px 0px #13506D;
    font-weight: bold;
    border-radius: 2px;
    cursor: pointer;
    width: 100%;
}

#register:hover {
    background: linear-gradient(#36caf0 5%, #22abe9 100%);
}

.error {
    border: solid #ff0000;
    font-family: 'b nazanin', serif;
    font-size: 18px;
    padding-right: 10px;

}

صفحه registration.js : کدهای این صفحه به صورت زیر می باشد.

$(document).ready(function () {

    $("#register").click(function () {

        var username = $("#username").val();
        var email = $("#email").val();
        var password = $("#password").val();
        var rePassword = $("#rePassword").val();
        var message = "";
        if (username == '' || email == '' || password == '' || rePassword == '') {
            message = "فیلدهای زیر را تکمیل کنید" + "<br/>";
            if (username == '') {
                message += "نام کاربری نمی تواند خالی باشد" + "<br/>";
            }
            if (email == '') {
                message += "ایمیل نمی تواند خالی باشد" + "<br/>";
            }
            if (password == '') {
                message += "پسورد نمی تواند خالی باشد" + "<br/>";
            }
            if (rePassword == '') {
                message += "تکرار پسورد نمی تواند خالی باشد" + "<br/>";
            }
            $("#error").addClass("error");
            $("#error").html(message);
        }
        else if ((username.length) < 6) {
            message = "نام کاربری نمی تواند کمتر از 6 کاراکتر باشد";
            $("#error").addClass("error");
            $("#error").html(message);
        }
        else if ((password.length) < 6) {
            message = "پسورد نمی تواند کمتر از 6 کاراکتر باشد";
            $("#error").addClass("error");
            $("#error").html(message);
        }
        else if (password!=rePassword) {
            message = "پسورد و تکرار آن یکسان نیستند";
            $("#error").addClass("error");
            $("#error").html(message);
        }
        else {
            $("#error").hide();
            $.post("register.php", {username1: username, email1: email, password1: password},
                function (data) {
                    if (data == 'ثبت نام شما با موفقیت انجام شد') {
                        $("form")[0].reset();
                    }
                    $("#error").show();
                    $("#error").addClass("error");
                    $("#error").html(data);
                });
        }

    });

});

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

سپس هر متغیر را چک می کنیم و در صورت خالی بودن هر متغیر پیغام مربوطه را در در متغیر message قرار داده و در درون تگ div ای که در صفحه index.php قرار دادیم نمایش می دهیم و به آن css نیز داده ایم.

به همین ترتیب چک می کنیم که نام کاربری کمتر از 6 کاراکتر ، پسورد کمتر از 6 کاراکتر نباشد و همچنین پسورد و تکرار آن یکسان باشند.

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

صفحه register.php : کدهای این صفحه به صورت زیر می باشند.

<?php
include_once "db_connection.php";

//اطلاعات ارسالی را دریافت می کنیم
$username = $_POST['username1'];
$email = $_POST['email1'];
$password = $_POST['password1'];  // در اینجا می توانید پسورد را رمزنگاری کنید
$email = filter_var($email, FILTER_SANITIZE_EMAIL); // در اینجا ایمیل را از کراکترهای اضافی پاک می کنیم
$data = 0;
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "ایمیل وارد شد نامعتبر می باشد";
} else {
    $query = "SELECT * ";
    $query .= "FROM users ";
    $query .= "WHERE Username='{$username}' ";
    $result = mysqli_query($connection, $query);
    if ($result) {
        $data = mysqli_num_rows($result);
    }
    if ($data != 1) {
        $data = 0;
        $query = "SELECT * ";
        $query .= "FROM users ";
        $query .= "WHERE Email='{$email}' ";
        $result = mysqli_query($connection, $query);
        if ($result) {
            $data = mysqli_num_rows($result);
        }
        if ($data != 1) {
            $data = 0;
            //ثبت نام
            $query = "INSERT INTO users (";
            $query .= " Id,Username,Email,Password ";
            $query .= ") VALUES (";
            $query .= " NULL,'{$username}','{$email}','{$password}' ";
            $query .= ")";
            $result = mysqli_query($connection, $query);
            if ($result) {
                echo "ثبت نام شما با موفقیت انجام شد";
            } else {
                echo "مشکلی در سیستم به وجود آمده دوباره تلاش کنید";
            }
        } else {
            echo "این ایمیل قبلا ثبت شده است";
        }
    } else {
        echo "این نام کاربری قبلا در سیستم ثبت شده است";
    }
}
//بستن کانکشن
mysqli_close($connection);
?>

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

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

در صورتی که همه اینها درست بود با دستور Insert اطلاعات مورد نظر را در پایگاه داده ثبت می کنیم و به کاربر پیغام ثبت نام شما با موفقیت انجتم شد را نمایش می دهیم.

صفحه db_connection.php : کدهای این صفحه به صورت زیر می باشند.

<?php
define("DB_SERVER", "localhost");
define("DB_USER", "root");
define("DB_PASS", "");
define("DB_NAME", "register");
$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
mysqli_query($connection, "set names 'utf8'");
if (mysqli_connect_errno()) {
    die("database connection failed: " .
        mysqli_connect_error() .
        "(" . mysqli_connect_errno() . ")"
    );
}
?>

در این صفحه کدهای ارتباط با پایگاه داده را قرار داده ایم که نیاز به توضیح خاصی ندارد.

توجه : فایل sql پایگاه داده نیز ضمیمه برنامه می باشد.

دانلود

نویسنده حسین فتحی
گروه مطلب PHP
نوع مطلب سورس کد و آموزش
تاریخ انتشار ۲۴ بهمن ۱۳۹۴
منبع ایران گنج
تعداد نظرات ۴
قیمت کاربران VIP
توضیح توجه:
  • زمانی که روی لینک دانلود کلیک می کنید لینک دانلود به مدت 24 ساعت معتبر خواهد بود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.
خرید VIP
امکان خرید از درگاه های بانکی و حساب مجازی

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

نظر / سوال

Captcha
نظرات کاربران

  • زهرا

    سلام خسته نباشید چرا فایل ajax این همه ارور داره من فایل رو کامل دانلود کرد و فایل sql هم ضمیمه نشده

    پاسخ
    • حسین فتحی

      فایل Ajax هیچ خطایی نداشته همچنین در توضیحات برنامه گفته شده که جدول باید شامل فیلدهای Id,Usename,Email,Password باشد کافیه شما یه پایگاه داده به نام register درست کنید و همچنین جدول users با فیلدهای گفته شده را ایجاد نمایید. همچنین در توضیحات گفته شده که این فیلدها اختیاری می باشند شما می توانید بسته به برنامه خودتان فیلدهای جدول را تغییر دهید.

      پاسخ
  • فاطمه

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

    پاسخ
    • حسین فتحی

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

      پاسخ