![]() |
[שאלה] הפונקציה ob_start
תהרגו אותי... לא הבנתי כלום מההסבר של php.net
מה הפונקציה הזאת בדיוק עושה?? מסוכנת לקוד באיזה שהוא מובן? (יוצרת פרצות אבטחה לדוגמא) מכבידה על השרת? והכי חשוב, איך היא משפיעה על הקוד מה היא עושה? תודה לעונים |
זה כדי לבטל שגיאות של הדרים ששולחים אחרי פלט (כמו למשל ליצור עוגייה אחרי שהדפסת משהו)
|
מה יוצר את השגיאה....
עבודה חכמה אמורה לאפשר כתיבת תוכנה בלי הפונקציה הזאת לא? |
כשאתה עושה echo בדף PHP הטקסט נשלח לדפדפן מיד.
ואם עברו נגיד 5 שניות ואז כתבת שוב echo בעצם הם הגיעו לדפדפן בהפרש של 5 שניות. כשאתה עושה OB_START זה במקום לשלוח מייד, זה מכניס את כל ה פלט שאתה תוציא לתוך אוגר(משנה כל שהוא) וכשנגמר הדף אז זה שולח הכל לדפדפן. בכל קובץ שמגיע בHTTP השרת שולח קודם (header שזה בתרגום חופשי אומר הדברים שבקדימה/ראשונים) מידע על הקובץ, זה יכול להיות תאריך שינוי, קידוד הדף ועוד. דוגמא לכזו פיסת מידע: קוד:
HTTP/1.1 200 OK אז אם כבר שלחת משהו מדף שלך לדפדפן אז הheaders כבר נשלחו ואם פתאום באמצע הדף החלטת שאתה רוצה לשלוח עוגיה אתה לא יכול. ציטוט:
הוא שולח את כל ההדרים והפלט. |
בקיצור הוא לא מסוכן ולא מכביד ולא כלום זאת פונקצייה מצויינת לשימוש בדברים שקשורים לאדרים באמצע הדף...
|
אולי לוקח קצת יותר זיכרון.
אבל כן, זה טוב למקרים כאלה. |
שאם ילמדו לתכנת נכון, לא יצטרכו להשתמש בה בכלל.
המקרה היחידי האמיתי אולי שאני רואה שמצריך שימוש בפונקציה הזאת זה כשרוצים לכווץ את משקל העמוד בעזרת HANDLER מסויים ומשתמשים בה. שזאת אפשרות מצויינת מעבר לזה, סדר אף פעם לא הזיק לאף אחד. |
בניה תודה רבה על ההסבר המפורט
RS324 (איך קוראים לך ד"א? :P) איך אתה יוצר עוגיה למשל בראש העמוד לפני כל פלט כל שהוא אם אתה צריך לעשות בדיקה למשל?... אשמח לשמוע על דרכים להמנע מהפונקציה הזאת למרות שלי מה שהבנתי היא לא מזיקה כל כך |
ציטוט:
עוד סיבה למה לא להדפיס HTML בתוך הקובץ ולא שום הודעה, משתמשים במערכת Templates והיא מדפיסה את התוכן בסוף ולכן השגיאה לא נוצרת. |
כל הזמנים הם GMT +2. הזמן כעת הוא 03:34. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ