05-04-2013, 14:58
|
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
|
|
חבר מתאריך: 25.10.01
הודעות: 42,775
|
|
אני כלל לא בטוח שנכון לעשות בדרך שאתה עשית - אם אין output buffering, אתה עלול לגרום להעפת הסקריפט לפני שליחת המייל (שלעתים לוקחת זמן) - בגלל שכבר זרקת לקליינט כותר שאומר לו לעוף לדף אחר (מה שגורם ל user abort, ולא עשית ignore user abort...)
הפתרון הנכון, לדעתי, הוא פשוט לשים את המילה else אחרי ה header הראשון, לפתוח סוגריים מסולסלים, ולסגור אותם לפני סגירת קוד ה PHP.
מה שכן, במקרים נדירים mail עלולה לפלוט אזהרה למסך (בהתאם להגדרות error_reporting), ועל כן, אם היא תהיה קודמת לקריאה ל header, היא עלולה לגרום לפונקצית ה header לא לעבוד (שוב, במקרה שאין output buffering) - כיוון שכותרים יכולים להשלח רק לפני התחלת שליחת התוכן ללקוח - אז כדי להשלים את תשובתי - ראוי לעשות output suppression לפקודה זו, אם יש הצגה של הודעות debugging בהגדרות השרת...
כמובן שכל הבעייה הזו הייתה נמנעת אם לא היה ה redirect המיותר מלכתחילה. בשביל מה צריך redirect? פשוט פולטים ללקוח את ה HTML הרלוונטי, ללא הפנייה. פועל יותר מהר, מעמיס פחות על השרת... בחירת פלט דינאמי זו לא המטרה, בד"כ, של redirect...
|