نمایش نتایج: از شماره 1 تا 10 , از مجموع 22

موضوع: کش کردن متغییر آی پی در Yii

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #15
    عضو انجمن starting آواتار ها
    تاریخ عضویت
    Jul 2015
    محل سکونت
    6346cc631627632
    نوشته ها
    255
    تشکر تشکر کرده 
    612
    تشکر تشکر شده 
    372
    تشکر شده در
    245 پست

    پیش فرض پاسخ : کش کردن متغییر آی پی در Yii

    نقل قول نوشته اصلی توسط Marshall نمایش پست ها
    ببخشید اگه بخواهیم برای هر ip یک آدرس ارجاع ثبت بشه اون موقع باید تابع رو چطوری تعییر بدیم؟!


    یعنی هر ip اولین صفحه ارجایی که باهاش اومده تا یک ساعت ثبت بشه!

    و به نا به دلایلی که دیدم اگه کاربران از سایت دیگه اومده باشند آدرس ارجاع اونها رو اون سایتی که ازش اومدن ثبت می کنه در حالیکه من می خواستم آدرس ارجاع فقط متعلق به سایت خودم باشه برای همین به جای استفاده از $_SERVER['HTTP_REFERER'] از $_SERVER['QUERY_STRING']; استفاده کردم و دیدم اون چیزی که من انتظارش رو داشتم برآورده می کنه فقط در انتها می خوام برای هر ip یک $_SERVER['QUERY_STRING']; ثبت بشه یعنی هر ip صفحه $_SERVER['QUERY_STRING']; خودش رو داشته باشه و تا یک ساعت ثبت بشه!
    ببین اینکاری که من دارم برای شما میکنم اصولی نیست
    1.چون نیاز هست در چند فایل تغییر داده بشه
    2.باید بدونم اصلا هدف چیه
    3.باید دیباگ بشه کد

    اگر مورد اول و دوم هم باشه این رفع اشکال برای شما نیست و بنوعی یک کار غیر اصولی هست

    اما با اینحال من طوری کد رو نوشتم که نیاز نباشه در فایل کانفیگ شما تغییری بدید و همه حالات رو در نظر گرفتم (دیباگش با خودتون)
    کد PHP:
    <?php

    if (!Yii::$app->cache->get$_server['remote_addr'])){
        
    Yii::$app->cache->set$_server['remote_addr'], array('ip'=>$_server['remote_addr'] ,'ref'=>$_SERVER['HPPT_REFERER']), 60 60);
        if (
    Yii::$app->cache->get'info')){
            
    $info0=json_decode(Yii::$app->cache->get'info'));
        }else{
            
    $info0[]=null;
        }

        
    $info0[]=array('ip'=>$_server['remote_addr'] ,'ref'=>$_SERVER['HPPT_REFERER']);
        
    $info_json=json_encode($info0);
        
    Yii::$app->cache->set'info'$info_json 60 60*3);
    }else{
        if (
    Yii::$app->cache->get'info')){
           
    $infojson_decode(Yii::$app->cache->get'info'));
        }else{
            
    $info0[]=null;
        }
    }

    if (
    count($info[0])){
        foreach (
    $info as $key=>$value){
            echo 
    'ip: '$key .' refer: '.$value .'<br>';
        }
    }
    ?>
    -----

  2. تعداد تشکر ها از starting به دلیل پست مفید


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

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

  1. پاسخ ها: 16
    آخرين نوشته: October 14th, 2016, 16:33
  2. پاسخ ها: 10
    آخرين نوشته: May 7th, 2016, 14:41
  3. کسی راه تغییر مشخصات یک کلاس از ای پی از مجموعه ای پی رایپ رو بلده ؟
    توسط sodahost در انجمن اتصالات به اینترنت و ارایه دهندگان پهنای باند
    پاسخ ها: 3
    آخرين نوشته: January 10th, 2016, 18:13
  4. پاسخ ها: 3
    آخرين نوشته: July 11th, 2013, 15:42
  5. پاسخ ها: 5
    آخرين نوشته: November 14th, 2011, 19:16

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

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