ارسال پاسخ 
 
امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
حل نشده اکسترنال لاگین به انجمن
نویسنده پیام
ramin آفلاین
کاربر سایت
*
کاربر سایت

ارسال‌ها: 12
تاریخ عضویت: فرو ۱۳۹۱
اعتبار: 0
سپاس ها : 35
 سپاس شده 5 بار در 5 ارسال
ارسال: #1
اکسترنال لاگین به انجمن
باسلام

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

این هم اسکریپت:



کد:
<?php
    
    $MySQL_Host = "localhost";
    $MySQL_User = "root";
    $MySQL_Pass = "pass";
    $MySQL_DB = "mybb";

    function ParsePost( )
    {
        $username = '';
        $password = '';
        
        $post = file_get_contents( "php://input" );
        
        $post = str_replace( "&", " ", $post );
        
        sscanf( $post, "%s  %s", $username, $password );
        
        return array( 'user' => $username,
                      'pass' => $password
                    );
    }
    
    function mysql_fetch_full_result_array( $result )
    {
        $table_result = array();
        $r = 0;
        
        if( $result === true )
        {
            return $result;
        }
        
        if( mysql_num_rows( $result ) == 0 )
        {
            return $result;
        }
        
        while( $row = mysql_fetch_assoc( $result ) )
        {
            $arr_row = array();
            $c = 0;
            
            while ( $c < mysql_num_fields( $result ) )
            {      
                $col = mysql_fetch_field( $result, $c );  
                $arr_row[ $col -> name ] = $row[ $col -> name ];          
                $c++;
            }  
            
            $table_result[ $r ] = $arr_row;
            $r++;
        }  
        
        return $table_result;
    }
    
    class DWAuth
    {
        var $keys;
    
        function AddDWValue( $val )
        {
            $this->keys[] = $val;
        }
        
        function GetAuthString( )
        {
            $result = "";
            
            foreach( $this->keys as $c )
            {
                $result .= $c."#";
            }
            
            return $result;
        }
    }
    
    class DB
    {
        var $connection;
        var $started;
        
        function start()
        {
            global $MySQL_Host, $MySQL_User, $MySQL_Pass, $MySQL_DB;
            
            $this->connection = mysql_connect( $MySQL_Host, $MySQL_User, $MySQL_Pass );
            mysql_select_db( $MySQL_DB, $this->connection );
        }
        
        function query( $query )
        {
            $result = mysql_query( $query, $this->connection );
            
            if( $result )
            {
                return mysql_fetch_full_result_array( $result );
            }
            else
            {
                return $result;
            }
        }
        
        function end()
        {
            mysql_close( $this->connection );
        }
        
        function isStarted()
        {
            return $started;
        }
    }
    
    class Login
    {
        
        function CheckLogin( $username, $password )
        {
            $db = new DB();
            $db->start();
            
            $query = "SELECT uid, password, email FROM mybb_users WHERE username='".$username."' AND password='".sha1( $password )."';";
            
            $result = $db->query( $query );
            
            $db->end();
            
            if( $result == false )
                return false;
//                fwrite($fh, $result);
//                fclose($fh);
                
                
            if( sha1( $password ) == $result[ 0 ][ 'password' ] )
            {
                return array( 'uid' => $result[ 0 ][ 'uid' ],
                              'mail' => $result[ 0 ][ 'email' ],
                              'user' => $username
                            );
            }
        }
    }
    
    $packet = new DWAuth();
    $result = ParsePost();
    
    if( ( empty( $result[ 'user' ] ) ) || ( empty( $result[ 'pass' ] ) ) )
    {
        $packet->AddDWValue( "fail" );
        $packet->AddDWValue( "Username and/or password is empty." );
        
        echo $packet->GetAuthString();
        
        die();
    }
    
    $login = new Login();
    $result = $login->CheckLogin( $result[ 'user' ], $result[ 'pass' ] );
    
    if( $result == false )
    {
        $packet->AddDWValue( "fail" );
        $packet->AddDWValue( "incorrect username and/or password noob!" );
    }
    else
    {
        $sessionID = md5( rand() );
        
        $packet->AddDWValue( "ok" );
        $packet->AddDWValue( $result[ 'uid' ] );
        $packet->AddDWValue( $result[ 'user' ] );
        $packet->AddDWValue( $result[ 'mail' ] );
        $packet->AddDWValue( $sessionID );
        
        $db = new DB();
        $db->start();
        
        $query = "UPDATE mybb_users SET sid='".$sessionID."' WHERE uid=".$result[ 'uid' ];
        
        $result = $db->query( $query );
        $db->end();
    }
    
    echo $packet->GetAuthString();
    
?>
۲۸-۲-۱۳۹۲ ۱۲:۵۰ عصر
مشاهده‌ی وب‌سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در یک پاسخ
ramin آفلاین
کاربر سایت
*
کاربر سایت

ارسال‌ها: 12
تاریخ عضویت: فرو ۱۳۹۱
اعتبار: 0
سپاس ها : 35
 سپاس شده 5 بار در 5 ارسال
ارسال: #2
RE: اکسترنال لاگین به انجمن
کسی نیست به این استفاده کننده مای بی بی کمک کنه این مشکل من حیاتیه من خودم عاشق مای بی بی هستم ولی اگه کمک نشه مجبور برد عوض کنم که کلی مصیبت داره لطفا به داد برسید.
۲۹-۲-۱۳۹۲ ۱۲:۱۳ عصر
مشاهده‌ی وب‌سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در یک پاسخ
ارسال پاسخ 


موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  تغییر آیکون وضعیت انجمن TAGHDIR 1 318 ۱-۲-۱۳۹۳ ۱۰:۴۵ عصر
آخرین ارسال: Shezen
  مشکل در انجمن AIR 8 508 ۱-۲-۱۳۹۳ ۱۲:۳۵ صبح
آخرین ارسال: Matis
  چطور زیر انجمن ها رو تنظیم کنم TAGHDIR 1 306 ۲۴-۱-۱۳۹۳ ۱۱:۰۰ صبح
آخرین ارسال: ! Omid StaR !
Information چطوری عکس لگو بالای انجمن تنظیم کنم؟! TAGHDIR 3 361 ۲۲-۱-۱۳۹۳ ۰۸:۴۱ عصر
آخرین ارسال: senator
  مشکل در آمار الکسا انجمن senator 1 416 ۱۹-۱-۱۳۹۳ ۰۶:۴۳ عصر
آخرین ارسال: Shezen
  قرار دادن کد پاپ آپ در انجمن barbod_cigari 1 317 ۱۷-۱-۱۳۹۳ ۰۹:۲۶ صبح
آخرین ارسال: senator
  مشکل در بزرگ کردن اواتار در انجمن پسر پاییزی 1 235 ۱۵-۱-۱۳۹۳ ۰۵:۳۰ صبح
آخرین ارسال: ! Omid StaR !
  انتقال انجمن به ساب دامین elnaz61 1 292 ۱۰-۱-۱۳۹۳ ۱۰:۰۴ صبح
آخرین ارسال: senator
  حل نشده تغيير رمز و عدم ورود به انجمن r8041 1 318 ۵-۱-۱۳۹۳ ۰۵:۱۵ عصر
آخرین ارسال: ! Omid StaR !
  انتقال انجمن AmIR StaR_PL 3 301 ۲۰-۱۲-۱۳۹۲ ۰۲:۴۲ عصر
آخرین ارسال: Che guevara

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

خانه | بازگشت به بالا | بازگشت به محتوا | نسخه موبایل | پیوند سایتی RSS
اخبار فناوری اطلاعات | نرم افزار املاک | نرم افزار دامپزشکی | هتل آپارتمان مشهد | ترجمه تخصصی | نرم افزار داروخانه | نرم افزار رستوران | نرم افزار تاکسی سرویس | نرم افزار رستوران | دانلود نرم افزار مطب | دانلود نرم افزار تاکسی سرویس | مجله پزشکی آسان طب | دکتر آسان طب | کنکور آسان است | نرم افزار دفترچه تلفن نرم افزار چاپ چک نرم افزار رستوران نرم افزار فست فود نرم افزار کافی شاپ نرم افزار تاکسی سرویس نرم افزار نمایشگاه خودرو نرم افزار املاک نرم افزار هتلداری نرم افزار مطب نرم افزار دندانپزشکی نرم افزار انبارداری نرم افزار حسابداری فروشگاه نرم افزار وکالت بهترین سایت تفریحی | مجله اینترنتی پارسی وان | مجله اینترنتی زیگیل | خرید بک لینک | خرید رپورتاژ | سینما تئاتر مای استیج | یک مهاجر | دنیای مهاجرت | مجله گردشگری کاروان | وردپرس دانلود | مجله تفریحی تندیس فان | نرم افزار | جوک جدید | اخبار هنر | اخبار کامپیوتر | سایت پزشکی | فروشگاه اینترنتی | سایت خبری | دانلود موزیک | اندروید سه | بانک شماره موبایل | پایگاه صالحین | مجله کامپیوتری | جاب لر | سهام نت | تکی کو | تم کد | مجله خانواده | مجله اینترنتی وبدون | پورتال خبری | سایت تفریحی تک لایو | مجله سرگرمی سیب رنک | سایت پزشکی دکتر طب | خرید گیفت کارت | مدرن بوک | شرکت تبلیغاتی | گیفت کارت | تولید کننده روغن زیتون ماشین آلات صنایع غذایی تولید کننده جعبه و کارتن تولید کننده ادویه
X بستن تبلیغات