וורדפרס ואתרי אינטרנט

owl-158414_960_720
דורג 5 מתוך 5

באתר תמצאו מדריכים ומאמרים ייחודים בעברית, המדריכים לרוב מנסיון מעשי ומיוחסים לפרוייקטים שאני עובד עליהם באותו הזמן. האתר הוא יותר לשימוש פרטי ולתיעוד דברים, בכדי להשתמש מאוחר יותר, אבל החלטתי לפרסם ניתן לשאול כל שאלה וגם לתרום מדריכים באתר דרך תגובה או דרך צור קשר

קוקיס javascript cookie

קוקיס אלה פיסות מידע שנשמרות בדפדפן של היוזר,  >> במידה ומאופשר << ומאפשרות לנו ללא הרשמה של המשתמש לדעת אם הוא שוב ביקר באתר ולדעת על איזה לינקים הוא לחץ לדעת מה מעניין אותו ולפי זה להציג את המידע באתר פר משתמש, קוקיס נוצרות ב javascript ואי אפשר לגשת אליהם עם שפת שרת ישירות ( אפשר להעביר את הפרמטרים בכתובת למשל עם אגקס וכך לעבוד עם הקוקיס גם בשפת שרת ), נראה פה גם גישה מאוד נוחה לקוקיס עם הפריימורק של וורדפרס.

נתחיל……

יצירת עוגיה נעשית בעזרת הפקודה הזאת:

document.cookie = "cookiename=bla; expires=Thu, 15 Dec 2019 10:00:00 UTC";

 

כאשר לא מכניסים זמן תפוגה העוגיה נמחקת בסגירת הדפדפן.

כדי לקרא את כל העוגיות רושמים:

document.cookie

זה מחזיר לנו את כל העוגיות מופרדות בנקודה פסיק ;

ככה:

"favoriteIds=375:454; wp-settings-time-3=1473832286; wp-settings-3=libraryContent%3Dbrowse; wordpress_test_cookie=WP+Cookie+check"

 

אם רוצים למחוק עוגיה פשוט רושמים לה תאריך שעבר והיא תמחק.

path

גם ל path תפקיד חשוב בברירת המחדל הוא לוקח את הכתובת של הדף שבו נוצרה העוגיה

לא נוכל לקרא עוגיה שנוצרה ב path מסויים תחת דף אחר.

למשל אם ניצור עוגיה תחת path הזה

http://support.netjos.com/bla1

לא נוכל לקרא את העוגיה ב path הזה

http://support.netjos.com/bla2

לכן אם נרצה שנוכל לקרא את העוגיה תחת כל הדפים באתר שלנו נכניס ל path

;path=/

ואפשר להחליף את שורת הקוד בזה למטה:

document.cookie = cname + "=" + cvalue + "; " + expires + "; path=/";

 

פונקציה שהכנתי ( שיניתי) להוספת עוגיה למחרוזת מופרד בנקודותיים במידה וקיים ערך דומה לעוגיה אז הוא לא מוסיף ( שינויי מ w3school):

 function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+ d.toUTCString();
  var oldCookie = getCookie(cname);
  var isCookieExists = oldCookie.indexOf(':'+cvalue+':');
  if(oldCookie == "") {
    //the first cookie
    oldCookie=':';
    }
  if (isCookieExists == -1) {
    cvalue = oldCookie+cvalue+':';
    document.cookie = cname + "=" + cvalue + "; " + expires;
  }
} 

מקבלת שם העוגיה ערך וזמן תפוגה

יש להשתמש גם בפונקציה הזאת  כדי שיעבוד כי היא קוראת לה.

function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.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 "";
}

 

כאשר עובדים עם וורדפרס ניתן לקבל את העוגיות גם דרך פקודות של וורדפרס דבר שמאוד עוזר במידה ורוצים להשתמש גם בפקודות PHP

בדרך רגילה היינו צריכים לעבוד עם ajax אבל בגלל שוורדפרס תומך בעוגיות ניתן לשלב פה גם PHP בלי שום מאמץ

 

פקודה לקבלת כל העוגיות:

$_COOKIE['cookiename']

כמובן ש cookiename זה שם העוגיה שאתם בחרתם.

קישור להסבר נוסף על קוקיס בוורדפרס

אגב אתן עוד טיפ עם עבדתם עם הפונקציה שלי של העוגיות שנוספו לכם : ( נקודותיים בהתחלה ובסוף) אז ככה יש המון דרכים להסיר אותם אני אתן דרך אחת.

במקרה שלי הייתי צריך להפוך לפסיקים

$favotiteIds = str_replace(':', ',',$_COOKIE['favotiteIds']);
$favotiteIds = substr($favotiteIds, 1, -1);  // remove the last and the first ,

פקודה ראשונה הופכת לפסיקים כל נקודותיים

פקודה שניה מחזירה את הסטרינג החל מהתו הראשון ולא ה – 0 עד התו אחד לפני האחרון -1

ואפשר למחוק את כל התווים המיותרים ע" substr

למשל אנחנו רוצים את התווים שבמחרוזת מהשני עד אחד לפני האחרון

כך נראית המחרוזת :

,3,4,5,6,7,8,

ואנחנו רוצים לקבל:

3,4,5,6,7,8

אז :

substr(",3,4,5,6,7,8",1,-1)

יש לזכור ש 0 זה הראשון ו 1 זה השני – ו -1 זה אחד לפני האחרון.

 

 

תפריט נגישות