בעיה עם עוגיות

בעיה עם עוגיות

ניסיתי ליצור עוגייה עם הפונקצייה setcookie. אני אני חושב שהעוגייה נוצרה, כי הפונקצייה החזירה TRUE, וכי לא היה פלט לפני יצירת העוגיה. עשיתי שזמן התפוגה הוא time()+3600, כלומר לעוד שעה, אבל כשאני בודק אם העוגייה קיימת תחת השם $_COOKIE['name'] או $_REQUEST['name'] (כאשר שם העוגייה הוא name) אני מקבל שהעוגיה לא קיימת (בדקתי עם הפונקצייה isset). תודה על העזרה. ולמה המאמרים לא עובדים?
 

shanor

New member
מממ...

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

GPhoenixX

New member
עוד נקודה קטנטנה ..

סביר להניח שזו לא הבעיה אבל - $_COOKIE יעבוד רק אם גירסת הphp היא 4.1.0 ומעלה, בגירסה קודמת משתמשים ב $HTTP_COOKIE_VARS. REQUEST אמור לעבוד, אבל כתבת אותו עם שגיאת כתיב ואולי זו הבעיה ...
 
לא עבד...

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

קראתי את המדריך של PHP בעברית ובאנגלית ולא מצאתי כלום. הלכתי להסבר על הפונקצייה setcookie(), והפתרון היה דווקא בתגובות, ועוד בתגובה הראשונה:
I just bought a shared webhosting account and I was testing my server. For some strange reason, setcookie() was returning TRUE but was not creating a cookie in my browser. I spent a good hour trying to figure out the problem. my script was cookiemaker.php -------------- <?php setcookie("SID", "abc", time()+10000, "/", ".foobar.com", 0); ?> -------------- The above would not properly set a cookie in my browser. When i changed the expiry from time()+10000 to time()+100000 it worked!! My only explanation for this is that I live on the east coast (Toronto) and the server is located in California. Setting an expiry of time()+10000 actually sets the expiry to a date in the past (relative to Toronto), while time()+100000 sets an expiry date in the future (relative to Toronto). This would explain why I had no problem with setcookie() with my local server in Toronto. So if your setcookie is returning true but not setting a cookie, check the expiry time (and, of course, the path and domain parameters). Hope this helps, Sandy.​
 
למעלה