بخش Vip سئو نود

بهترین فرصت برای یادگیری در قسمت Vip سئو نود هم اکنون برای دانشجوبان عزیز فراهم شده است

جزئیات بیشتر
آموزش یکبار برای همیشه
دوره جدید " شاهکار تولید محتوا " برای علاقمندان به سئو ، جزئیات دوره

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

مقالات برنامه نویسی

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

2 623 5
آموزش ساخت صفحه لاگین با php و Mysql

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

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

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

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

اولین قدم ساخت صفحه لاگین

برای شروع کار لازم است تا نرم افزار وب سرور خودتان ( زمپ یا ومپ سرور ) را برای سرویس های Apache و Mysql فعال کرده و سپس به بخش PhpMyadmin رفته و یک پایگاه داده با نام دلخواه برای خودتان ایجاد کنید .

پایگاه داده ما در این پروژه yari_db نام دارد که داخل آن تنها یک جدول به نام users ساختیم و این جدول شامل سه فیلد به نام های id و user_email و user_password دارد که به شکل دستی یک کاربر را با ایمیل مثلا seomind@info.ir با کلمه عبور 1122334455 داخل آن ایجاد کردیم . دقت داشته باشید که نوع فیلد id در پروژه از نوع AI (AUTO INCREMENT )  باشد تا هربار خودش اضافه شود . پس قبل از هرچیزی باید یک پایگاه داده دقیقا به این شکل برای خودتان ایجاد کنید . ما در این قسمت از نرم افزار Xampp استفاده می کنیم پس لازم است تا وارد پوشه htdocs داخل مسیر نصب پوشه زمپ شده و یک فولدر دلخواه برای پروژه خودتان ایجاد کنید تا بتوانید از طریق آدرس :

https://localhost/project

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

برای شروع کار یک پوشه خالی در داخل htdocs ایجاد کرده و داخل آن اولین صفحه پروژه به نام login.php را ایجاد می کنیم . در داخل این صفحه ، هم کدهای مربوط به ورود با زبان php و هم کدهای ساخت فرم با زبان html قرار داده شده است .

بخش اول کدها

<?php
    $page_error = false;
    $login_error = false;
    $page_alert = false;
        if(isset($_POST['login_submit'])){
            $login_email_value=$_POST['login_email'];
            $login_password_value=$_POST['login_password'];
                if(strlen($login_password_value) < 8){
                    $page_error = true;
                }
    $servername_value = "localhost";
    $db_username = "root";
    $db_password = "";
    $db_name = "yari_db";
?>
<?php
    $conn = mysqli_connect($servername_value, $db_username, $db_password, $db_name);
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }

    $db_query = mysqli_query($conn,"SELECT id, user_email, user_password FROM users");
    if (mysqli_num_rows($db_query) > 0) {
        $resault_data = mysqli_fetch_assoc($db_query); 
        $db_table_email = $resault_data['user_email'];
        $db_table_password = $resault_data['user_password'];
            if($db_table_email == $login_email_value && $db_table_password == $login_password_value){
                $page_alert = true;
                session_start();
                $_SESSION['useremail'] = $db_table_email;
                header("Location: index.php");
            }
            else {
                $login_error = true;
            }
        }
    }
?>
<!DOCTYPE html>
<html lang="fa" dir="rtl">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>ورود و ثبت نام</title>
        <link rel="stylesheet" href="style.css">
    </head>
<body>
<div class="container">
    <div class="form-container">
        <?php 
            if($page_error == true){ echo "<div class='error'>کلمه عبور باید حداقل 8 کاراکتر باشد</div>"; }
            if($page_alert == true){ echo "<div class='alert'>با موفقیت وارد شدید</div>"; }
            if($login_error == true){ echo "<div class='error'>نام کاربری یا کلمه عبور اشتباه است</div>"; }
        ?>
        <span class="span-title">ورود به پنل کاربری</span>
        <form action="" method="post">
            <label for="email_input">ایمیل</label>
            <input type="email" id="email_input" name="login_email" placeholder="ایمیل خود را وارد کنید" required>
            <label for="password_input">کلمه عبور</label>
            <input type="password" id="password_input" name="login_password" placeholder="کلمه عبور را صحیح بنویسید" required>
            <button type="submit" name="login_submit">ورود به پنل</button>
        </form>
    </div>
</div>
</body>
</html>

و اما توضیح این قطعه کد به شکل خط به خط : در ابتدای برنامه سه متغیر برای مدیریت بخش خطاها تعریف شده است که مقدار آنها در حالت اول برابر با false است و درصورتی که خطایی داشته باشیم باید مقادیر آنها را حین کدنویسی به true تغییر داده و به کمک آنها ،خطا ها را به کاربران نمایش دهیم . پس از تعریف متغیر ها ، بررسی شده است که آیا کاربر دکمه مربوط به ورود در داخل فرم ورود را کلیک کرده است یا نه ! ( خالی بودن یا خالی نبودن مقادیر ورودی را میتوانید با ویژگی required در html کنترل کنید ) اگر روی دکمه ورود کلیک شده باشد ، یک متغیر تعریف شده و مقداری که کاربر داخل فیلد کلمه عبور وارد نموده در داخل این متغیر قرار می گیرد .

سپس با یک شرط بررسی شده که اگر طول کلمه عبور وارد شده کمتر از 8 کاراکتر باشد متغیر page_error برابر با مقدار true قرار گیرد تا خطای مربوط به کم بودن تعداد کاراکتر های کلمه عبور را نمایش دهیم . در خطوط بعدی طبق دستورات استاندارد ، به پایگاه داده پروژه متصل می شویم . نام کاربری پایگاه داده در حالت پیشفرض root ، مقدار کلمه عبور خالی ، نام پایگاه داده yari_db و سرور ما نیز localhost است . شما می توانید هر نامی را بجای yari_db تنظیم کنید ( نام پایگاه داده شما ) .

سپس صحت اتصال را بررسی کردیم . اگر مشکلی در اتصال بود ، خطاهای اتصال را نمایش خواهد داد . در غیر اینصورت به سراغ خطوط بعدی خواهیم رفت . در خطوط بعدی با اتصال به پایگاه داده و جدول users که برای کاربران ساخته شده است ، مقادیر id و user_email و user_password را از کل جدول کاربران دریافت کردیم . در این بین ممکن است اطلاعات 10 کاربر را دریافت کرده باشیم و یا صرفا یک کاربر را ( بستگی به اطلاعات وارد شده به شکل دستی ، یا از طریق فرم ثبت نام در دیتابیس دارد ) . سپس توسط دستور (mysqli_num_rows($db_query) > 0) بررسی میکنیم که آیا اطلاعاتی داخل جدول وجود دارد یا نه ! که اگر حداقل یک سطر وجود داشته باشد ، به ادامه پروژه خواهیم رفت . ( چون قبلا یک کاربر داخل جدول ایجاد کردیم پس مشکلی نیست )

اطلاعات دریافت شده را داخل متغیر resault_data قرار داده و سپس مقادیر user_email و user_password که نام فیلدهای اطلاعات در جدول users هستند را به ترتیب در متغیر های db_table_email و db_table_password قرار میدهیم . پس از این مرحله باید مقادیر بدست آمده را با مقادیر وارد شده از طرف کاربر از داخل فرم ورود مقایسه کنیم . اگر مقادیر با هم برابر بودند ، page_alert = true قرار می گیرد تا در ادامه پیغام ” با موفقیت وارد شدید ” نمایش داده شود . پس از مقدار دهی این متغیر دستور زیر قرار دارد :

session_start();
$_SESSION['useremail'] = $db_table_email;
header("Location: index.php");

در این دستور توسط SESSION ها ، یک حق دسترسی برای کاربر تعریف شده است که بعنوان یک علامت برای ورود کاربر استفاد می شود و اگر این علامت وجود نداشته باشد ، کاربر قادر نباشد تا بدون تکمیل کردن پروسه موجود در صفحه لاگین ، وارد بخش مدیریت وب سات شود . این SESSION یک متغیر است که مقدار آن را برابر یا ایمیل وارد شده از طرف کاربر قرار میدهیم و یک اسم نیز برای آن تعریف می شود . سپس با توجه به اینکه ورود موفقیت آمیز بوده است ، کاربر توسط دستور header به صفحه index.php منتقل خواهد شد که صفحه اصلی سایت شما است . در داخل صفحه اصلی خود ، میتوانید یک دکمه جهت ورود به صفحه لاگین با آدرس login.php قرار دهید تا زمانی که کاربر روی آن کلیک کرد وارد بخش فرم ورود شود . در ادامه کدها ، درصورت برابر نبودن ایمیل و کلمه عبور از طرف کاربر ، login_error = true تنظیم شده و بر همین اساس در ادامه پیغام ” نام کاربری یا کلمه عبور اشتباه است ” نمایش داده می شود . ساختار فرم نیز در ادامه کدها توسط html کاملا نمایش داده شده است . دقت داشته باشد که مقادیر مربوط به name در المان های input و button دقیقا درست تنظیم شود . خب تا این قسمت کاربر لاگین کرده و وارد صفحه اصلی سایت شده است . صفحه اصلی سایت index.php نام دارد که ساختار آن به شکل زیر است و در ادامه تمامی کدهای آن را تشریح خواهیم کرد .

<?php 
    session_start();
    if(isset($_GET['exit'])){
        header("Location: index.php");
        session_destroy();
    }
?>
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>صفحه فروشگاه</title>
</head>
<body>
    <div>  
        <?php 
            if(!isset($_SESSION['useremail'])){ ?>
                <a href="login.php" class="login-btn">ورود به سایت</a>
        <?php }  
            if(isset($_SESSION['useremail'])){ ?>
                <a href="index.php?exit=true" class="login-btn">خروج</a>
        <?php }
            if(isset($_SESSION['useremail'])){ ?>
                <a href="panel.php" class="login-btn">پنل مدیریت</a>
        <?php } ?>
    </div>  
</body>
</html>

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

در تگ a بعدی ، که مقدار آن ” خروج ” است ، مجددا طبق بررسی یک شرط بر اساس  SESSION ، اگر این SESSION ایجاد شده بود و اصطلاحا کاربر داخل سایت لاگین کرده بود ، می بایست دکمه خروج نمایش داده شود . البته این تگ a در مقدار href به شکل زیر است :

href="index.php?exit=true"

این به این معنی است که اگر کاربر روی خروج کلید کرد یک متغیر به نام exit با مقدار true به روش GET ( با توجه به علامت ? ) تنظیم می شود تا به کمک این متغیر برخی کارها را انجام دهیم که در ادامه توضیح خواهیم داد . نهایتا تگ a انتهایی مربوط به قسمت ” پنل مدیریت ” است که برای ورود به پنل در صفحه اصلی آن را ایجاد کردیم . خب پس از این قسمت ها به ابتدای کدها بازمیگردیم . زمانی که کاربر روی دکمه خروج کلیک کند ، اشاره کردیم که یک متغیر به نام exit با مقدار true به روش GET ایجاد می شود . این نشان میدهد که کاربر روی خروج کلیک کرده است . در خط اول کدها ، به این دلیل که تصمیم داریم در این صفحه از SESSION ها استفاده کنیم باید اول دستور session_start را قرار دهیم . سپس بررسی میکنم که اگر کاربر دکمه خروج را زده باشد ، یا به عبارتی متغیر به نام exit با مقدار true به روش GET ایجاد شده باشد ، توسط دستور header کاربر مجدد به صفحه index.php بازگشت داده شده و سپس توسط دستور session_destroy ، مجوز SESSION کاربر ازبین خواهد رفت . این کار به این دلیل است که کاربر با وارد کردن مستقیم آدرس panel.php در نوار آدرس مرورگر ، دیگر نتواند به صفحه پنل دسترسی داشته باشد و مجدد الزام به ورود وجود داشته باشد .

صفحه panel.php

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

<?php
    $page_error = false;
    $pass_error = false;
    $pass_success = false;
    session_start();
        if(!isset($_SESSION['useremail'])){
            header("Location: index.php");
        } 
    $servername_value = "localhost";
    $db_username = "root";
    $db_password = "";
    $db_name = "yari_db";
?>
<?php
    $conn = mysqli_connect($servername_value, $db_username, $db_password, $db_name);
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }

    $db_query = mysqli_query($conn,"SELECT id, user_email, user_password FROM users");
    if (mysqli_num_rows($db_query) > 0) {
        $resault_data = mysqli_fetch_assoc($db_query); 
        $db_table_email = $resault_data['user_email'];
    }

    if(isset($_POST['change_password_submit'])){
        $pass_one = $_POST['panel_password'];
        $pass_two = $_POST['re_panel_password'];
            if(strlen($pass_one) < 8 || strlen($pass_two) < 8 ){ $page_error = true; };
                if($pass_one != $pass_two){
                    $pass_error = true;
                }
        if(strlen($pass_one) >= 8 && strlen($pass_two) >= 8 && $pass_one == $pass_two && !empty($pass_one) && !empty($pass_two)){        
            $db_query_a = mysqli_query($conn,"UPDATE users SET user_password=$pass_two WHERE id=1");
            $pass_success = true;
        }
    }

    if(isset($_POST['exit_submit'])){
        header("Location: index.php");
        session_destroy();
    }
?>
<!DOCTYPE html>
<html lang="fa" dir="rtl">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>حساب کاربری</title>
        <link rel="stylesheet" href="style.css">
    </head>
<body>
    <div class="container">
        <div class="form-container" style="width: 500px;">
            <?php 
                if($page_error == true){ echo "<div class='error'>کلمه عبور باید حداقل 8 کاراکتر باشد</div>"; } 
                if($pass_error == true){ echo "<div class='error'>کلمه عبور و تکرا آن برابر نیست</div>"; } 
                if($pass_success == true){ echo "<div class='alert'>تغییر رمز انجام شد</div>"; } 
            ?>
        <span class="span-title">خوش آمدید</span>
            <form action="" method="post">
                <label for="email_input">ایمیل شما</label>
                <input type="email" id="email_input" value="<?php echo $db_table_email; ?>" disabled>
                <label for="password_input">کلمه عبور</label>
                <input type="password" id="password_input" name="panel_password" placeholder="کلمه عبور جدید" required>
                <input type="password" name="re_panel_password" placeholder="تکرار کلمه عبور جدید" required>
                <button type="submit" name="change_password_submit">تغییر کلمه عبور</button>
                <div class="divider"></div>
            </form>
            <form action="" method="post">
            <button type="submit" name="exit_submit" class="exit_page">خروج</button>
            </form>
        </div>
    </div>
</body>
</html>

در این صفحه نیز دو بخش داریم ، یکی مربوط به کدهای php که در ابتدای صفحه است و سپس کدهای html در داخل body که در اینجا یک فرم جهت تغییر کلمه عبور کاربر قرار داده‌ایم تا مخاطب بتواند کلمه عبور خود را از داخل پنل کاربری خود تغییر دهد . در بخش ابتدایی کدها ، بازهم 3 متغیر تغریف شده است که برای مدیریت خطاها به کار خواهیم برد . در ادامه ، اول از هرچیزی داخل صفحه panel.php باید بررسی شود که آیا کاربر مجوز دسترسی به این صفحه را دارد و اصطلاحا آیا عمل ورود که نتیجه آن تعریف یک SESSION است ، انجام شده است ا خیر !

پس بررسی میکنیم که اگر مجوز تنظیم نشده بود ، کاربر توسط دستور header به صفحه index منتقل شود و نتواند وارد پنل شود .  دستورات ادامه همان دستورات اتصال به پایگاه داده است که البته در اینجا چون یک کاربر داخل جدول وجود دارد ، تمامی سطرها را دریافت کردیم چراکه کلا یک کاربر وجود دارد ، در غیر اینصورت می‌بایست اطلاعات کابر وارد شده را توسط روش GET به این صفحه ارسال کنیم ( برای مثال فیلد id ) تا هنگام استخراج اطلاعات ار پایگاه داده ، تنها اطلاعات همین کاربر را دریافت کنیم .

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

<?php
    if(isset($_POST['change_password_submit'])){
        $pass_one = $_POST['panel_password'];
        $pass_two = $_POST['re_panel_password'];
            if(strlen($pass_one) < 8 || strlen($pass_two) < 8 ){  $page_error = true; };
            if($pass_one != $pass_two){
                $pass_error = true;
            }
        if(strlen($pass_one) >= 8 && strlen($pass_two) >= 8 && $pass_one == $pass_two && !empty($pass_one) && !empty($pass_two)){        
            $db_query_a = mysqli_query($conn,"UPDATE users SET user_password=$pass_two WHERE id=1");
            $pass_success = true;
        }
    }
?>

دراین بخش اگر روی تغییر پسورد کلیک شده بود ، مقادیر وارد شده در فیلد های پسورد از طرف کاربر را دریافت نموده و داخل متغیر های pass_one و pass_two قرار خواهیم داد . سپس طول هردو فیلد وارد شده را برسی میکنیم که اگر کمتر از 8 کاراکتر بود ، خطای مربوطه توسط متغیر page_error نمایش داده شود . سپس بررسی میکنیم که اگر مقدار دو فیلد وارد شده باهم برابر نباشد یا به عبارتی پسورد جدید با تکرار آن برابر نباشد متغیر pass_error برابر true می شود تا پیغام مرتبط نمایش داده شود ( ” کلمه عبور و تکرار آن برابر نیست ” ) . سپس مجدد بررسی شده است که اگر دو مقدار وارد شده برای پسور جدید ، بزرگتر از 8 کاراکتر بودند و همچنین هردو با یکدیگر برابر بودند و همچنین خالی نیز نبودند ، دستور UPDATE اجرا شده و کلمه عبور جدید ، جایگزین قبلی شود و سپس متغیر pass_success برای نمایش پیغام ” تغییر رمز انجام شد ” مقدار true بگیرد . دقت داشته باشید همانطور که گفته شد این سیستم یک کد پایه است که مهم ترین قسمت آن ، بحث مربوط به SESSION ها هستند که مجوز های دسترسی کاربر کنترل شود . موارد پیشرفته تر مربوط به پایگاه داده هایی با اطلاعات بیشتر و فیلد های بیشتر است که میتوانید بر اساس همین کد نیز آنها را توسعه دهید .

امید قدیمی

امید قدیمی هستم ، 8 سال است که در زمینه طراحی و برنامه نویسی وب سایت فعالیت می کنم . توسعه دهنده فرانت اند ، طراح و برنامه نویس انواع وب سایت های وردپرسی ، فعال در زمینه تولید محتوا و سئو وب سایت

نقشه راه فرانت

اگر قصد دارید تا یک طراح ماهر باشید ، ما درست ترین مسیر را برای شما فراهم کردیم و فقط کافیست همراه ما باشید

شاید این مطالب نیز برای شما جالب باشد

mwh-af4c6 کد تخفیف همیشگی و بدون انقضای میهن وب هاست جهت خرید انواع سرویس های میزبانی ، کداختصاصی مجموعه سئو نود

1 152

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

0 92
دیدگاه ها و نظرات
توجه کامنت های انگلیسی تایید نخواهند شد در صورت داشتن مشکل ، قبل از ارسال دیدگاه نظرات سایر دوستان را نیز مطالعه فرمائید برای مشاهده پاسخ دیدگاه ها بر روی علامت " " کلیک کنید
اشتراک دیدگاه
captcha
تکمیل تمامی فیلد ها الزامی است
دیدگاه های شما
sajjad ۰۱ / ۱۴۰۲
5

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

امید قدیمی ۰۱ / ۱۴۰۲

سلام وقتتون بخیر باشه ، خب اسکریپت شما حتما در بخش اعتبار سنجی دچار مشکل هست ، میتونید یه نام کاربری و پسورد ساده رو تست کنید برای امتحان

آموزش های رایگان بیشتر در آپارات و یوتیوب سئو نود
کانال آپارات سئو نود چنل یوتیوب سئو نود