קהילות פורומים, הורדות, יעוץ ותמיכה


  • מדריך | Cookies


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

    איך מתחילים לעבוד?
    מבנה של הגדרת עוגייה הולך כך:
    קוד PHP:
    setcookie(CookieNameCookieValueCookieExpireCookiePathCookieDomainCookieSecure); 
    שורת הקוד תגדיר עוגיה שתשלח אל מחשב המשתמש כאשר ייכנס לדף המכיל את קוד זה.
    פירוש הפרמטרים של הפונקציה:
    • CookieName - שם העוגייה, עם ערך זה ניגש לעוגייה, נשנה ערך וכ'ו.
    • CookieValue - ערך העוגייה, ערך זה מאוחסן במחשב הלקוח. בגלל שללקוח יש גישה לראות את העוגיות שהושתלו, עדיף לא לשים מידע חשוב בעוגייה.
    • CookieExpire - הזמן בו תפוג העוגייה. הזמן הולך לפי מספר השניות שחלף מאז ה-1 בינואר, 1970. בד"כ היא בעזרת הפונקציה time() שעליה נרחיב בהמשך.
    • CookiePath - הנתיב בשרת שבו העוגייה תיהיה זמינה.
    • CookieDomain - התחום שבו תיהיה העוגייה זמינה.
    • CookieSecure - עם ערך זה יוגדר כ-1 אז העוגייה תיווצר רק עם הפרוטוקול יהיה HTTPS. ברירת המחדל היא 0.
    שים לב, כאשר אנו משתלים עוגייה בצד הלקוח אנחנו צריכים לעשות את זה לפני כל התגים. כלומר לפני תג ה-<html>.


    דוגמה טובה להשתלת עוגייה, רק נשתיל עוגייה לא נעשה איתה כלום בינתיים:
    קוד PHP:
    <?php
    setcookie
    ("MyFirstCookie""There is my first cookie!");
    ?>
    <html>
        <head>
            .
            .
            .
        </head>
        <body>
            .
            .
            .
        </body>
    </html>
    זוכרים שאמרתי שצריך להגדיר את העוגייה לפני כל ה-HTML? אז בבקשה!

    לפי התבנית יצרנו עוגייה בשם "MyFirstCookie" ונתנו לה ערך שהוא "There is my first cookie!".
    כפי ששמתם לב לא הגדרנו את כל הפרמטרים, זה לא חובה. אך אם אתם רוצים אפשר להגדיר את זה לפי הפרטים שמילאנו למעלה.

    אם נצא מהדפדפן נראה שהעוגייה נמחקה. דבר היוצר אי נוחות.
    איך אפשר לעשות שזה יימחק רק אחרי X זמן ולא איך שיוצאים מהדפדפן?
    בשביל זה יש את השדה CookieExpire, שאם לא נגדיר אותו אז יגיד לעוגייה להמחק איך שאנו יוצאים מהדפדפן.
    אם אנחנו רוצים לעשות שהעוגייה תמחק 5000 שניות לאחר שסגרנו את הדפדפן.
    בשביל זה בשדה CookieExpire נרשום time() + 5000 שזה אומר שזה ימחק 5000 שניות מהזמן הנוכחי.

    נגדיר את זה כך:
    קוד PHP:
    <?php
        setcookie
    ("MyFirstCookie""There is my first cookie!"time() + 5000);
    ?>
    והשאר, רגיל.

    קבלת עוגיות
    עד עכשיו רק הגדרנו עוגיות, אך אם נרצה לקרוא להם? מה נעשה?
    בשביל זה יש את המשתנה הגלובאלי $_COOKIE[].
    הוא מוגדר כך:
    קוד PHP:
    $_COOKIE[cookieName]; 
    בתוך הסוגריים המרובעות ( [] ) אנחנו נותנים את שם העוגייה.
    לדוגמה, נבנה תוכנית אשר רושמת את העוגייה שלנו.
    קוד PHP:
    <?php
        setcookie
    ("MyFirstCookie""There is my first cookie!"time() + 5000);
    ?>
    <html>
        <head>
            .
            .
            .
        </head>
        <body>
            <h1>My first cookie in PHP!</h1>
            <?php echo($_COOKIE['MyFirstCookie']); ?>
        </body>
    </html>
    אם נשים לב בתגית ה-<body> הגדרנו קוד PHP:
    <?php echo($_COOKIE['MyFirstCookie']); ?>
    עשינו שזה ירשום (echo) את העוגייה שהגדרנו בראש העמוד.
    כלומר נקבל את העוגייה אם נכתוב את שמה בסוגריים המרובעים.

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

    קוד PHP:
    <?php 
                
    if(isset($_COOKIE['MyFirstCookie'])){
                    echo(
    $_COOKIE['MyFirstCookie']); 
                }
                else{
                    echo(
    "You dont have cookie!");
                }
            
    ?>
    בדקנו אם יש עוגייה בשם MyFirstCookie. אם כן אז יחזיר ערך TRUE ונוכל להתקדם בלולאה, אם לא זה יחזיר ערך FALSE.

    פשוט לא?

    מחיקת cookies
    אתה רוצה למחוק עוגייה, למשל המשתמש התנתק מהחשבון והוא צריך שלא יהיו עוגיות.
    בשביל זה צריך למחוק עוגיות לא?

    לזה יש מספר שיטות:
    1. הגדרת זמן שכבר עבר.
    2. להגדיר לזה ערך ריק.
    3. להשתמש בפונקציה unset().
    איך לעשות?
    1) פשוט מאוד, להגדיר עוד פעם את אותה עוגייה ובערך של פקיעת העוגייה לתת ערך עבר, לדוגמה:
    קוד PHP:
    setcookie("MyFirstCookie""There is my first cookie!"time() - 5000); 
    והעוגייה תמחק.

    2) דיי דומה ל-1, אך במקום זמן נשים ערך ריק:
    קוד PHP:
    setcookie("MyFirstCookie"""); 
    והעוגייה תמחק.

    3) פונקציה מותאמת, בלי יותר מידי התחכמויות:
    קוד PHP:
    unset($_COOKIE['MyFirstCookie']); 
    והעוגייה תמחק.

    וזהו!
    אם יש לכם שאלות, בקשות או כל דבר אחר אתם מוזמנים להכנס לפורום שפות צד שרת.
    המאמר פורסם במקור באשכול בפורום: מדריך | Cookies ופורסם ע"י -Smoxer- צפה בהודעה המקורית
    תגובות 4 תגובות
    1. האוואטר של Mr.YeLLoW
      Mr.YeLLoW -
      תודה רבה
      מדריך מושקע מאוד
    1. האוואטר של danielgury
      danielgury -
      בהחלט מושקע כל הכבוד!
    1. האוואטר של ido8780
      ido8780 -
      תודה
      על הפרסום
    1. האוואטר של kobistar
      kobistar -
      ווואווו מעולה!
      תודה
  • עוד באטרף



כל הזמנים הם לפי GMT +3. השעה כרגע היא 08:02.
מופעל על ידי vBulletin™ © גרסה 4.1, 2011 vBulletin Solutions, Inc. כל הזכויות שמורות.
פעילות הגולשים
אומנות וגרפיקה
מוזיקה
ספורט
סדרות טלוויזיה
סרטים וקולנוע
קנייה ומכירה
רשתות חברתיות
הבורר 3
פורומי פנאי ובידור
סרטים
סדרות
משחקים
דיבורים
אקטואליה
בעלי חיים
בדיחות והומור
משחקי ספורט
הבורר
מחשבים וטכנולוגיה
תמיכה טכנית
חומרה ומודינג
תוכנות להורדה
סלולארי וגאדג'טים
רקעים למחשב
ציוד הקפי למחשב
אבטחת מידע
תכנות ובניית אתרים
כסף ברשת
אייפון
בריאות ואורח חיים
כושר ופיתוח גוף
דיאטה
צבא וגיוס
יעוץ מיני
מה שבלב
אומנות הפיתוי
יהדות
מיסטיקה ורוחניות
אתאיזם ודתות

נושאים: 2,449,560 | הודעות: 8,150,142 | משתמשים: 315,603 | המשתמש החדש ביותר: upizijoj | עיצוב גרפי: סטודיו עודד בביוף | קידוד: rellect