نحوه احراز هویت authentication توسط php از بانک اطلاعاتی

saeed95

تازه وارد
سلام

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

1 یوزر برای مدریت هست که باید دسترسی کامل داشته باشه که بتونه کاربر ایجاد، حذف و ویرایش بکنه

بقیه یوزر ها بتونن وارد پنل کاربری شون بشن و از امکانات اونجا استفاده کنند و نتونن وارد admin.php بشن

لطفا بنده رو راهنمایی بفرمایید

پ.ن سایت تقریبا آماده است فقط باید سطوح دسترسی و احراز هویت رو پیاده سازی کنم

 

MahdiY

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

همین

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

بعد تو admin.php شرط بذارید اگه سیشن adminmode نبود چاپ کنه دسترسی ندارید!

حس کد نوشتن نیست :D

اما این راهکار

بسم الله

 

saeed95

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

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

بعد تو admin.php شرط بذارید اگه سیشن adminmode نبود چاپ کنه دسترسی ندارید!

حس کد نوشتن نیست :D

اما این راهکار

بسم الله
اینو که میدونم :D همین کد رو میخواستم که بالای صفحات بذارم برای سطح دسترسی و "کد" فرم ورود :)

 

MahdiY

راهبر انجمن
یه فرم از پروژه های اماده ام میدم

این فرم لاگین


کد:
<?php
// Mahdi Yousefi
// Yahoo id : ymd1376
// کپی برداری از این اسکریپت شرعا و عرفا حرام بوده و پیگرد قانونی دارد
session_start();
include('inc/config.php');
if(isset($_GET['logout'])){
$_SESSION['logged'] = FALSE;
$_SESSION['adminmode'] = FALSE;
unset($_SESSION['logged']);
unset($_SESSION['adminmode']);
}     
if (isset($_SESSION['logged']) && $_SESSION['logged'] == TRUE)
{
     header("Location: admin.php");
}
if(isset($_POST['myusername']) && isset($_POST['mypassword'])){
    $username = clean($_POST['myusername']);
    $password = md5(clean($_POST['mypassword']));
    $code = intval($_POST['sec']);
    if(getvalue('LOGIN_ALLOW') == 0 && $username !== 'admin'){
        echo "0";
        die();
    }
    $sql = mysql_query("SELECT * FROM `user` WHERE `username` = '$username' AND `password` = '$password'") or die(mysql_error());   
    $num = mysql_num_rows($sql);
    if(!empty($username) && !empty($password) && $code == $_SESSION['secnum'] && $num == 1){    
            $_SESSION['logged'] = TRUE;
            if($username == 'admin'){
                $_SESSION['adminmode'] = TRUE;
            }
            echo "1";
            die();
    }
    else {
        echo "2";
        die();
    }
}


echo <<<HTML
<!DOCTYPE html><html dir="rtl"><head><meta charset="UTF-8"><link rel="stylesheet" href="css/style.css" type="text/css" /><script type="text/javascript" src="js/jquery.js"></script><script type="text/javascript" src="js/ajax.js"></script><title>ورود</title></head><body><center><table width="300" border="0" cellpadding="3" cellspacing="1" style="margin-top: 100px;"><tr><form id="loginform" method="post" action="javascript:login();"><td colspan="3" id="resultajax" style="text-align:center;">فرم ورود</td></tr><tr title="نام کاربری خود را وارد کنید"><td width="90">نام کاربري</td><td width="6">:</td><td width="294"><input type="text" name="myusername" required=""></td></tr><tr title="کلمه عبور را وارد کنید"><td>کلمه عبور</td><td>:</td><td><input type="password" name="mypassword" required=""></td></tr><tr><td><img src="inc/img.php" id="code" onclick="new_captcha();" title="برای تغییر تصویر کلیک کنید"/></td><td></td><td><input name="sec" type="text" title="کد امنیتی را وارد کنید" required/><input type="submit" id="login" class="button blue" value="ورود" title="ورود به مدیریت"/></td></form></tr></table></body></html>
HTML;

?>
بعد چون این فرم آجکس هست اینم فایل آجکس


کد:
// By MahdiY - Web Site : MahdiY.ir - Yahoo Id : Ymd1376
function IsValidForm() {

    $.post( "inc/send.php", $("#docContainer").serialize() )
         .done(function( data ) {

                var obj = jQuery.parseJSON( data );
                if(obj.type == 'OK'){
                $('#cmtbody').css({"background-color":"green","color":"#fff","text-align":"center","font-family":"Yekan"});
                document.getElementById("docContainer").reset();                
                }
                else {
                $('#cmtbody').css({"background-color":"red","color":"#fff","text-align":"center","font-family":"Yekan"}); 
                }
                $('#cmtbody').html(obj.text);
                new_captcha();

        }) 
        .fail(function() {
        alert( "خطا در ارتباط با سرور، لطفا دوباره تلاش کنید" );
        });

    return false;

} 

function new_captcha()
{   
        document.getElementById('code').src = 'inc/img.php?'+Math.random();
}
دیگه بنا بر دیتابیس و سلیقه خودتون تغییرش بدید

و اینم کد برای تشخیص اینکه این مدیره یا نه


کد:
session_start();
if (!isset($_SESSION['logged']) || !$_SESSION['logged'] == TRUE)
{
     header("Location: ../login.php");
}
else if (!isset($_SESSION['adminmode']) || $_SESSION['adminmode'] !== TRUE){
    header("Location: ../admin.php");
    die('شما دسترسی ندارید');
}
حالشو ببرید

 
بالا