نمایش نتایج 1 تا 3 از 3

نام تاپیک: کوکی /cookie

  1. #1

    کوکی /cookie

    سلام و خسته نباشید.
    این تابع برای ساخت کوکی است که متوجه میشم کارش چیه.
    function setCookie( cookie_name, cookie_value , exdays) {
    var mydate ,expires , get_userinput;
    get_userinput = document.getElementById("User_Input").value;
    mydate = new Date();
    mydate.setTime(mydate.getTime() + (exdays*24*60*60*1000));
    expires = "expires="+ mydate.toUTCString();
    document.cookie = cookie_name + "=" + cookie_value + ";" + expires + ";path=/";
    if( get_userinput == "" ){
    alert("مقدار وارد کنید");
    }else{
    setCookie("UserName", get_userinput , 365);
    }
    }

    اما تابعی که برای خواندن کوکی ایجاد میشود را متوجه نمیشم که چطور داره کار میکنه. یه توضیحی در این رابطه می خواستم. مخصوصا کدهایی که قرمز رنگ هست رو اصلا متوجه نمیشم.
    function getCookie(cookie_name) {
    var name = cookie_name + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.split(';');
    for(var i = 0; i <ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') {
    c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
    return c.substring(name.length, c.length);
    }
    }
    return "";
    }

  2. #2
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: کوکی /cookie

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


    مثلا رشته کوکیتون اینه یک سری مقدار (value) که هرکدوم یک کلید(key) .و با سیمی کالون از هم جدا شدن

    key=value; key=value; key=value;


    وقتی بشکونیش بر اساس سیمی کالون ; میشه یک آرایه که تو هر خونش یک key=value هستش و به جز اولین خونه بقیشون یه اسپیس یا فضای خهالی هم اولشون دارن


    تو حلقه میزاره تا قتی که اولین کاراکتر فضای خالی یا اسپیس بود حذفش میکنه

    while (c.charAt(0) == ' ') {
    c = c.substring(1);
    }






    این چک میکنه که که چیزی که دنبالش هستیم در نقطه 0 رشته وجود داشته باشه

    if (c.indexOf(name) == 0)



    مثلا شما یک رشته داری

    c = 'key=value';


    اگه بنویسی

    c.indexOf('value')


    بهت 4 برمیگردونه از سمت چپ جمله بشماری کاراکتر ها رو از 0 به 4 که برسی کلمه value رو میبینی ... در واقع میگرده تو جمله ببینه کلمه value از چه کاراکتری شروع شده

    اگه بنویسی

    c.indexOf('key=')


    بهت 0 برمیگردونه چون کلمه k= در شروع جمله (نقطه 0 ) وجود داره
    به طور خلاصه این
    if (c.indexOf(name) == 0)


    چک میکنه که مقدار name در نقطه 0 یا شروع جمله c قرار داشته باشه

    در نهایت این


    return c.substring(name.length, c.length);


    value رو برمیگردونه تو این مثال شما

    اگه مقدار c , name به این شکل باشه


    c = 'key=value';
    name = 'key=' ;


    و شما value رو بخای از c بدست بیاری

    باید از متن c کاراکتر های 4 تا 9 رو بدست بیاری که با تابع substring اینکارو میتونی بکنی


    .length طول یک رشته رو بهت میده طبق این مقادیر

    c = 'key=value';
    name = 'key=' ;

    اگه بزنی
    c.length 
    name.length

    به ترتیب بهت 9 و 4 میدن


    c.substring(name.length, c.length)


    طبق مثال من میشه


    c.substring(4, 9)


    یعنی این قسمتی که قرمز کردم


    key=value

  3. #3

    نقل قول: کوکی /cookie

    ممنون از شما.

تاپیک های مشابه

  1. سوال: cookie
    نوشته شده توسط ali004 در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: سه شنبه 02 آذر 1389, 19:40 عصر
  2. سوال: مشکل با cookie
    نوشته شده توسط armin20 در بخش Java SE : نگارش استاندارد جاوا
    پاسخ: 1
    آخرین پست: سه شنبه 01 تیر 1389, 09:31 صبح
  3. مشکل در cookie
    نوشته شده توسط mojdeh,k در بخش PHP
    پاسخ: 13
    آخرین پست: سه شنبه 12 شهریور 1387, 18:18 عصر
  4. مشکل با مقدار cookie
    نوشته شده توسط mk88km در بخش ASP.NET Web Forms
    پاسخ: 10
    آخرین پست: یک شنبه 26 اسفند 1386, 10:33 صبح

قوانین ایجاد تاپیک در تالار

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