ציטוט:
נכתב במקור על ידי ~The_Sultan~
אם אני לא טועה, הקוד הבא יציב עוגיה או יציג הודעת שגיאה:
PHP קוד:
setcookie("user", "content", time()+3600*24) or die("Can't set cookie");
|
setcookie תמיד יחזיר TRUE (אלא אם כן היה פלט לפני) ולכן מה שכתבת לא נכון.
כמו כן, השרת גם בבקשה אחת לא יכול לדעת. setcookie פשוט שולחת header.
ולנושא: כל דפדפן יכול להחליט שהוא לא שומר קוקיס. בכל דפדפן יש לך אפשרות כזאת. יש כמובן הרבה מאוד מקרים מיוחדים, ולפי דעתי - בכללי - אם אתה מתכווון לבנות אתר שמיועד לקהל יעד רב, עדיף לתמוך גם בכאלה בלי קוקיס.
והכיצד?
מהו סשן? סשן הוא טקסט יחודי הנשמר כעוגיה וגם בשרת. כל הנתונים על המשתמש שנשמרו בסשן - נשמרים בשרת. כך, כשהמשתמש נכנס, השרת מצליב את הטקסט היחודי שלו מול המאגר שיש לו בשרת ומתאים לו את הפרטים.
ולכן, סתם לשים סשן כמו שכמה אמרו כאן לא יפתור לך את הבעייה.
אך לבעייה הזאת יש פתרון. יש לך אפשרות להעביר את הסשן לא כעוגיה - אלא בכתובת. ז"א, כפי שמוצג בדוגמה האחרונה בדף הבא:
http://www.php.net/manual/en/session.idpassing.php
ואת זה הייתי ממליץ לך לעשות רק למשתמשים שלא מאפשרים קוקיס. אפשר לעשות ביטוי רגולרי פשוט לכל הפלט כדי להוסיף את ה-SID.
שוב פעם - רק אם יש לך אתר עם קהל יעד רב. אם אתה מתכנן על כמה אלפי אנשים - זה סתם בזבוז זמן לטעמי.