נגישות       נגישות
שינוי גודל טקסט:
א א א
שינוי צבעי האתר:
? מקשי קיצור:

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

הפעלת מקשי הקיצור תלויה בדפדפן שבו אתם משתמשים.

Internet Explorer, Chrome ובגרסאות ישנות של Firefox: לחצו על מקש Alt ועל מקש המספר או האות על-פי הרשימה. ב Firefox 3 ומעלה: לחצו על המקשים Alt + Shift + המספר או האות.

S - עבור לתוכן הדף
L - חיפוש
1- עמוד הבית
2 - פרוייקטים
3 - מדריכים
4 - אודות
5 - צרו קשר
6 - הצהרת נגישות
 

PHP ועוגיות רשת COOKIE_$

מחבר:
בתאריך:

 

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

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

ה-cookie מתפקד ב-PHP כסופר גלובל בדומה ל-$_GET ול-$_POST, וכמותם הוא בנוי ממערך אסוציאטיבי הכולל מפתחות וערכים.

מחזור חייה של עוגיית רשת כולל שלושה שלבים: הגדרה – שימוש – הריסה.

 

1. הגדרת העוגייה באמצעות setcookie

את העוגייה מגדירים תמיד לפני תג ה-html מפני שהיא חלק של המידע ששולח השרת ב-header, אותו חלק שנשלח לדפדפן בתחילת ההתקשרות בין האתר ובין הדפדפן, לפני כל מידע אחר.

את העוגייה נגדיר באמצעות setcookie(). לדוגמה:

$name = "CookieName";
$value = "כאן נמצא כל המידע שהעוגייה צריכה להכיל";
$time = time()+60*60*24*7;
setcookie($name, $value, $time);

הפרמטרים:

•  $name מגדיר את שם העוגייה. בדוגמה נתנו את השם CookieName .

•  $value הוא המידע שאנחנו רוצים שהעוגייה תכיל. בדרך כלל זה מידע על המשתמש.

•  $time הוא זמן הפקיעה בשניות. ובמקרה זה 7 ימים ממועד הגדרת העוגייה.

 

2. קריאת המידע מעוגייה אינו מסובך יותר משימוש במערך.

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

echo "<pre>";
print_r($_COOKIE);
echo "</pre>";

וכדי להדפיס את ערכה של עוגייה אחת ששמה "CookieName", נשתמש במבנה הבא:

if(isset($_COOKIE["CookieName"])) echo $_COOKIE["CookieName"];

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

$name = $_COOKIE["name"];
htmlentities($name, ENT_QUOTES, "UTF-8");

השימוש ב- mysqli_real_escape_string נועד להתמודד עם סכנות ה-sql injection.

 

3. השמדת העוגייה.

יתכנו מצבים שבהם נרצה להשמיד עוגייה, לדוגמה, כשמשתמש עשה logout מהאתר. כדי להשמיד עוגייה נגדיר את ערכה ל-NULL, ונגדיר את מועד פקיעתה למועד בעבר . לשם כך, נגדיר את התאריך בערכים שליליים במקום חיוביים. גם במקרה זה נשתמש ב-setcookie.

$name = "CookieName";
$value = NULL;
$time = time()- 60*60*24*7;
setcookie($name, $value, $time);

כמפתחים שמשתמשים בעוגיות עלינו לזכור שהעוגייה חשופה לגולש, ולכן לא נאחסן בעוגייה מידע מסווג אלא אם הצפנו אותו לפני כן. העובדה שהמידע חשוף לגולש גם עלולה לסכן את האתר שלנו באמצעות sql injection, ולכן נקפיד על שימוש ב-mysqli_real_escape_string, בקריאת המידע המוחזר מהגולשים.

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

לכל מדריכי ה-PHP

 

 

הוסף תגובה חדשה

 

= 9 + 6

תמונת המגיב

סטודנט ל php בג'ון ברייס בתאריך: 28.05.2014

אני סטודנט לphp בג'ון ברייס. המדריכים שלכם מדהימים.