1.8 עוגיות תרגיל
להלן תרגילים מעשיים לעבודה עם Cookies ו-Sessions ב-PHP:
תרגיל 1: עבודה בסיסית עם Cookies¶
הוראות:
1. צור דף PHP שמגדיר cookie בשם "visits" שעוקב אחר מספר הביקורים
2. עם כל ביקור, הגדל את ערך ה-cookie ב-1
3. הצג הודעה מתאימה לפי מספר הביקורים:
- ביקור ראשון: "ברוך הבא למקום הראשון שלנו!"
- ביקורים 2-5: "טוב לראות אותך שוב!"
- מעל 5 ביקורים: "אתה מבקר ותיק אצלנו!"
תרגיל 2: מערכת העדפות עיצוב¶
הוראות:
1. צור טופס עם אפשרות בחירת עיצוב (light/dark)
2. שמור את הבחירה ב-cookie לתקופה של 30 יום
3. יישם את עיצוב הדף לפי העדפת המשתמש
4. הוסף אפשרות איפוס להגדרות ברירת המחדל
תרגיל 3: מערכת התחברות עם Sessions¶
הוראות:
1. צור טופס התחברות עם שם משתמש וסיסמה
2. לאחר התחברות מוצלחת, שמור את פרטי המשתמש ב-session
3. צור דף אישי שמגיב רק למשתמשים מחוברים
4. הוסף אפשרות התנתקות שמוחקת את ה-session
תרגיל 4: עגלת קניות¶
הוראות:
1. צור מערך של מוצרים שניתן להוסיף לעגלה
2. שמור את עגלת הקניות ב-session
3. אפשר למשתמש:
- להוסיף מוצרים לעגלה
- להסיר מוצרים מהעגלה
- לראות סיכום הזמנה
4. הוסף התראות כאשר מוסיפים/מוציאים פריטים
תרגיל 5: מערכת הודעות בין דפים¶
הוראות:
1. צור מנגנון שמאפשר להציג הודעות flash (הודעות חד-פעמיות)
2. שמור הודעות ב-session והצג אותן בדף היעד
3. מחק את ההודעות לאחר הצגתן
4. הוסף סוגים שונים של הודעות (הצלחה, שגיאה, אזהרה)
תרגיל 6: הגבלת גישה לפי תפקיד¶
הוראות:
1. צור מערכת עם 3 סוגי משתמשים: אורח, משתמש רגיל, מנהל
2. שמור את תפקיד המשתמש ב-session לאחר התחברות
3. הגבל גישה לדפים לפי תפקיד:
- דף מנהל - גישה רק למנהלים
- דף משתמש - גישה למשתמשים ומנהלים
- דף אורח - גישה לכולם
תרגיל 7: מערכת הצבעה¶
הוראות:
1. צור טופס הצבעה עם מספר אפשרויות
2. השתמש ב-cookie כדי למנוע הצבעה כפולה
3. הצג את תוצאות ההצבעה
4. הוסף תאריך תפוגה להצבעה (לאחר שבוע אפשר להצביע שוב)
תרגיל 8: מעקב אחר נתיב גלישה¶
הוראות:
1. שמור ב-session את הדפים שהמשתמש ביקר בהם
2. הצג למשתמש את "היסטוריית הגלישה" שלו
3. הוסף אפשרות לאיפוס ההיסטוריה
4. הצע למשתמש דפים דומים לפי היסטוריית הגלישה
תרגיל 9: מערכת מועדפים¶
הוראות:
1. אפשר למשתמשים לשמור פריטים כמועדפים
2. שמור את רשימת המועדפים ב-cookie לתקופה ארוכה
3. הצג למשתמש את המועדפים שלו בביקורים חוזרים
4. הוסף אפשרות להסרת פריטים מהמועדפים
תרגיל 10: פרויקט מסכם - מערכת בלוג¶
הוראות:
צור מערכת בלוג עם:
1. התחברות משתמשים עם sessions
2. אפשרות לזכור אותי (remember me) עם cookies
3. הרשאות עריכה לפי תפקיד (כותב, עורך, מנהל)
4. מערכת תגובות עם זיהוי משתמשים
5. הודעות flash לפעולות מוצלחות/שגיאות
תרגיל אתגרי: מערכת אימות דו-שלבי¶
הוראות:
1. לאחר התחברות רגילה, שמור ב-session שהמשתמש בשלב האימות הראשון
2. שלח קוד אימות ל-email או SMS
3. אפשר גישה מלאה רק לאחר הזנת הקוד הנכון
4. שמור את מצב האימות המלא ב-session
5. הוסף אפשרות "הישאר מחובר" עם cookie מאובטח
טיפים לבטיחות ואבטחה:
1. השתמש ב-session_regenerate_id() לאחר התחברות למניעת session fixation
2. הגדר cookie parameters בצורה מאובטחת (httponly, secure)
3. אל תשמור מידע רגיש ב-cookies
4. הגבל את זמן החיים של sessions
5. נקה קלט משתמש לפני שמירה ב-sessions או cookies
בהצלחה! זכור שמנגנוני Cookies ו-Sessions הם כלים חזקים אך דורשים אחריות בשימוש - הקפד על פרטיות ואבטחת משתמשים.