בעיה עם cookies

Xiao Xiao

New member
בעיה עם cookies

שלום, כשאני מנסה לשלוח מידע מform לדף PHP ולעשות cookie לפי המידע שיקבלתי אני מקבל שגיאה שהheader כבר נשלח, ניסיתי להשתמש ב-ob_start אבל אז קיבלתי שגיאה:
Fatal error: ob_start(): Cannot use output buffering in output buffering display handlers​
אשמח לדעת מה השגיאה אומרת והאם יש שיטה אחרת לעשות cookie לפי מידע מform. תודה רבה, אורן.
 

kensaggy

New member
מממ...

האם אתה שולח פלט כלשהו למסך לפני שאתה יוצר את העוגיות? כי אם כן אז אסור. חפש בדף שלח שליחת פלט כלשהי..אפילו רווח קטן ו"בלתי נראה" הוא פלט.. אל תשכח לחפש גם בדפים שאתה מכליל בעזרת include/require בהצלחה, חן.
 

Xiao Xiao

New member
תודה על התגובה

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

shanor

New member
תבדוק תבדוק ושוב תבדוק.

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

nirdagan

New member
נכון ועוד

תבדוק שאין לך רווח לפני או אחרי הקוד
אסור שיהיה פה רווח <?php code ?> שלא יהיה גם פה רווח​
 

orenphp

New member
רגע (לnirdagan)...

למיטב ידעתי - מותר שיהיה פלט שיזרק למסך אחרי(!) כתיבת הערך לcookie. יש משהו שאתה יודע ואני לא?(אני אשמח לשמוע, יותר נכון לקרוא, על זה אם כך). בקשר לשגיאה, מהניסיון שלי, הפלט לפני יכול להגיע מכמה כיוונים: 1. אתה קורא (Include,Require) לאיזה קובץ אחר לפני ובו מודפס פלט. 2. כשאתה קורא לשאילתא, היא מחזירה שגיאה ואתה מדפיס אותה בלי שאתה שם לב(?) 3. תנסה להפעיל את הפו' הבאה:
error_reporting(E_ALL);​
זה יתן לך את כל השגיאות הקיימות אצלך בעמוד (בין היתר - משתנים שלא הוגדרו ואולי גורמים לך לאיזה שגיאה שאתה לא רואה). תתקן את מה שצריך (שזה גם ככה רק יעזור לך לבאגים עתידיים) זה אמור לפתור את הבעיה, תעשה בדיקה מקיפה ואני בטוח שתמצא. שיהיה בהצלחה.
 

Xiao Xiao

New member
תודה לכולם על התשובות

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

nirdagan

New member
הסבר

כמובן שאחרי הכותרים כולל ה-cookie ניתן לכתוב פלט למסך. אלמלא כן, כל האינטרנט היה דפים ריקים. כוונתי היתה שאם יש קובץ include שבא לפני ה-cookie אסור שיהיה בו פלט למסך בשום מקום.
 

orenphp

New member
נכון ולכן ההודעה...

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