מדריך PHP

מדריך PHP: SESSIONS ועוגיות

‏ • Internet Israel

המטרה של SESSION ועוגיות הן לשמור מידע על המשתמש ולשייך משתמש או גולש מסוים לפעולות מסוימות.

כך למשל, אם אתה יוצר מערכת משתמשים, אתה יכול לשמור את העובדה שהמשתמש הוא logged in באמצעות SESSION או COOKIE וכך בעצם למנוע ממנו את הצורך להזדהות שוב ושוב בכל דף.

עוגיות – Cookies

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

יצירת עוגיה

יצירת עוגיה היא פשוטה מאד באמצעות הפקודה setcookie. Setcookie מקבלת כמה ארגומנטים, אבל שני הארגומנטים הבסיסיים שלה הם המפתח (שם העוגיה) והערך, בדיוק כמו מערך! גם קבלת המידע מהעוגיה הוא באמצעות משתנה PHP מיוחד בשם COOKIE_$ שמכיל, בדיוק כמו מערך אסוציאטיבי, את כל שמות העוגיות שקשורות לדומיין שלנו (אנחנו לא יכולים לגשת לכל עוגיה שהיא כמובן).

הנה דוגמא ליצירת עוגיה ואז להדפסה שלה – נסו ותהנו!

<?php
setcookie('myCookie', 'myValue');

print $_COOKIE['myCookie'];

ה- COOKIE_$  הוא מערך אסוציאטיבי לכל דבר, אפשר לרוץ עליו עם foreach או לעשות לו print_r.

SESSION

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

איך משתמשים ב-SESSION? ראשית עלינו לפתוח SESSION באמצעות הפקודה session_start וחשוב לעשות את זה בראש העמוד, לפני שמתחילים עם ה-HTML. מהרגע שפתחנו את ה-SESSION, יש לנו גישה למערך ה-SESSION, לו אנו יכולים להוסיף איברים או לשנות אותם כרצוננו.

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

<?php
session_start();

$_SESSION['mySession'] = 'myValue';

print $_SESSION['mySession'];

מה שיודפס הוא כמובן myValue. כמו COOKIE_$, כך גם SESSION_$ הוא מערך אסוציאטיבי.

אם מסיבה מסוימת חשקה נפשכם להשמיד את ה-SESSION, אפשר פשוט להשתמש בפקודה session_destroy, זה יכול לשמש אותנו אם המשתמש לוחץ על כפתור log out או משהו בסגנון.

תגיות: , , ,

רן בר-זיק

מתכנת PHP מנוסה ובעל ידע רב בפיתוח לאינטרנט על בסיס LAMP. מומחה במערכות דרופל, ג'ומלה ו-וורדפרס. שולט היטב בכל מה שקשור לפרונט אנד: JavaScript: jQuery ו-MooTools,ActionScript 2/3 וכמובן HTML 5 + CSS 3.אינטרנט ישראל: www.internet-israel.com

תגובות בפייסבוק