سلام ، آیا این بازدید اول شماست ؟ یا
نمایش نتایج: از شماره 1 تا 6 , از مجموع 6

موضوع: استفاده از session بین جوملا و اسکریپت php

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    تاریخ عضویت
    Dec 2011
    نوشته ها
    59
    تشکر
    9
    تشکر شده 7 بار در 7 ارسال

    استفاده از session بین جوملا و اسکریپت php

    درود
    در حال حاضر من یک سایت دارم که قسمتی از اون جوملایی و قسمتی php هست. مشکلی که الان وجود داره به این صورت هست که session ایجاد شده در قسمت php سایت ، در قسمت

    جوملایی قابل دسترسی نیست .

    بعد ازجستجوی که انجام دادم به نظر میاد که اون session ایجاد شده توی جوملا restart میشه .

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

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


  2. # ADS
    تبلیغات در جوملا فارسی
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2

    تاریخ عضویت
    Nov 2010
    نوشته ها
    5,091
    تشکر
    0
    تشکر شده 2,056 بار در 1,618 ارسال
    سلام

    شماميخواييد از نشست جوملا براي اسكريپتتون استفاده كنيد يا از نشست اسكريپتتون براي جوملا؟

    توجه داشته باشيد كه نشستي كه اون اسكريپتتون توليد مي كنه بايد طبق استاندارد جوملا باشه و از توابع جوملا پيروي كنه. اسكريپتتون چنين خاصيتي داره؟

    دركل مي خواييد از نشست چه استفاده اي بكنيد؟ شايد راه بهتري بود

    موفق باشيد

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


  4. #3

    تاریخ عضویت
    Dec 2011
    نوشته ها
    59
    تشکر
    9
    تشکر شده 7 بار در 7 ارسال
    من میخوام از نشست اسکریپتم توی جوملا استفاده کنم.
    اگه منظور شما اینه که مثل چیزی که [مهمان/کاربر گرامی برای دیدن لینک ها ابتدا باید عضو سایت شوید و لاگین کنید برای ثبت نام اینجا کلیک کنید]" گفته عمل کنم، امتحان کردم و جواب نداده.
    بذارید بیشتر توضیح بدم:
    توی صفحه ی اصلی سایتم یه if ... else دارم که یه متغیر رو توی نشست اسکریپت خودم بررسی می کنه.
    اگه اون متغیر مقداردهی نشده باشه کدهای جوملا اجرا می شه و صفحه ی جوملایی نمایش داده می شه. در غیر این صورت اسکریپتی که خودم نوشتم اجرا میشه.
    بررسی کردم و دیدم تا قبل از اینکه کدهای جوملا پردازش بشن مقادیر موجود توی نشست اسکریپت خودم قابل دسترس هستن؛ اما با اجرا شدن جوملا ظاهراً نشست اسکریپت من هم ریستارت میشه و مقادیرش از بین میره.
    من حتی این راه رو امتحان کردم که قبل از هر کد دیگه ای یه متغیر گذاشتم که مقدار مورد نظزمو از نشست خودم می خونه و نگه می داره و توی نشست جوملا ذخیره کنه، ولی باز هم توی جوملا که بررسی می کنم مقدار نگرفته.

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


  5. #4
    Team
    تاریخ عضویت
    Jun 2011
    محل سکونت
    تهران
    نوشته ها
    3,035
    تشکر
    351
    تشکر شده 1,221 بار در 1,047 ارسال
    این درسته که جوملا session ها ریست میکنه ولی مکانیزمی داره که شما نیازی به value نشست نخواهید داشت
    با استفاده از
    کد:
    if ($user->guest)
    میتونید مشخص کنید که کاربر login کرده یا خیر.
    (اگر نیاز به value داشته باشید به این صورت
    کد:
    $session =& JFactory::getSession();
    $session->set('name', "value");
    میتونید به اون دسترسی داشته باشید)

    اما راه حل مشکل شما :
    کد:
    $user =& JFactory::getUser();
    if (!$user->guest) {
            // YOU'r Bussiness logic
     }else{
        header("Location: YOUR LOGIN PAGE.php");
     }

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


  6. #5

    تاریخ عضویت
    Dec 2011
    نوشته ها
    59
    تشکر
    9
    تشکر شده 7 بار در 7 ارسال
    راه حل پیشنهادی شما توی لینکی که گذاشتم اومده ولی برای من جواب نداد.

    کد من همچین چیزیه:
    کد:
    <?php
    //اینجا متغیر خودمو بررسی می کنم که ست شده یا خیر
    //اگه ست نشده باشه میره سراغ جوملا و اگه ست شده باشه اسکریپتی که خودم نوشتم اجرا می شه
    if (!isset($_SESSION['started']))
    {
        $started = $_SESSION['started'];
        // Set flag that this is a parent file.
        define('_JEXEC', 1);
        define('DS', DIRECTORY_SEPARATOR);
    
        if (file_exists(dirname(__FILE__) . '/defines.php')) {
            include_once dirname(__FILE__) . '/defines.php';
        }
        
        if (!defined('_JDEFINES')) {
            define('JPATH_BASE', dirname(__FILE__));
            require_once JPATH_BASE.'/includes/defines.php';
        }
        
        require_once JPATH_BASE.'/includes/framework.php';
        
        
        // Mark afterLoad in the profiler.
        JDEBUG ? $_PROFILER->mark('afterLoad') : null;
        
        //    (۱)
        //    ست کردن مقدار در نشست جوملایی
        if(isset($started))
        {
            $session =& JFactory::getSession();
            $session->set( 'started', $started );
        }
    
        
        // Instantiate the application.
        $app = JFactory::getApplication('site');
        
        // Initialise the application.
        $app->initialise();
        
        // Mark afterIntialise in the profiler.
        JDEBUG ? $_PROFILER->mark('afterInitialise') : null;
        
        // Route the application.
        $app->route();
        
        // Mark afterRoute in the profiler.
        JDEBUG ? $_PROFILER->mark('afterRoute') : null;
        
        // Dispatch the application.
        $app->dispatch();
        
        // Mark afterDispatch in the profiler.
        JDEBUG ? $_PROFILER->mark('afterDispatch') : null;
        
        // Render the application.
        $app->render();
        
        // Mark afterRender in the profiler.
        JDEBUG ? $_PROFILER->mark('afterRender') : null;
        
        // Return the response.
        echo $app;
        
    }
    else    // اگه مقدار گرفته باشه این کار رو انجام بده
    {
    //    (۲)
        $_SESSION['started'] = 1;
        echo "started!";
    }
    ?>
    بعد توی یکی از ماژولهای جوملا همچین اسکریپتی دارم که مقدار msg رو از توی نشست جوملایی می خونه و اگه مقدار داشت ازش استفاده می کنه:
    کد:
    <?php
    defined('_JEXEC') or die;
    JHtml::_('behavior.keepalive');
    define('_JEXEC', 1);
    define('DS', DIRECTORY_SEPARATOR);
    $session =& JFactory::getSession();
    $started = $session->get( 'started' );
        if(isset($started))
        {
            switch ($started)
            {
                case 1:
                    // some code
                    break;
    
                case 2:
                    // some code else
                    break;
    
                case 3:
                    // another some code
                    break;
    
                default:
                    // Do nothing
            }
            }
    // و ادامه اسکریپت ...
    ?>
    اما مشکل اینه که توی ماژول (یعنی همین کد آخری) همواره "ست نشده" باقی می مونه!
    ویرایش توسط farajian86 : 02-21-2012 در ساعت 03:37 PM

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


  7. #6
    Team
    تاریخ عضویت
    Apr 2009
    محل سکونت
    قائم شهر
    نوشته ها
    3,869
    تشکر
    906
    تشکر شده 1,090 بار در 812 ارسال
    با سلام

    لطفا نمونه کد های خود را برای من بفرستید

    info [at] msm.ir

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


    یا حق.

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


موضوعات مشابه

  1. آموزش نحوه استفاده از اسکریپت ها
    توسط mehrdad22 در انجمن سوالهای عمومی مامبو فارسی
    پاسخ ها: 5
    آخرين نوشته: 02-04-2012, 03:46 AM
  2. مشکل در استفاده از اسکریپت انقال فایل
    توسط hapoogoon در انجمن سوالهای عمومی جوملا 1.5 فارسی
    پاسخ ها: 1
    آخرين نوشته: 02-28-2011, 03:53 PM
  3. استفاده از اسکریپت های آماده MooTools
    توسط yaser1 در انجمن قالب های مامبو فارسی
    پاسخ ها: 4
    آخرين نوشته: 04-07-2008, 11:36 PM
  4. استفاده از جاوا اسکریپت در مامبو
    توسط boglado در انجمن سوالهای عمومی مامبو فارسی
    پاسخ ها: 1
    آخرين نوشته: 12-31-2007, 09:36 AM

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •