21-08-06, 00:17
|
# 2
|
Whatever
|
שגיאות כתיב
אז ככה, כגולש וותיק בפורום תיכנות, ישנן הרבה שגיאות, שלרוב נובעות משגיאות כתיב,
כל עוד כתוב לכם "Call to undefined function " כל מה שעליכם לעשות, הוא ללכת לשורה הנתונה בשגיאה, ולבדוק, לדוגמא:
PHP קוד:
<?Php mysql_qurey(); ?>
השגיאה אשר אקבל תהיה:
Fatal error: Call to undefined function mysql_qurey() in E:\WWW\index.php on line 2
ברגע שקיבלתם שגיאה זאת, יש לכם את כל הפרטים שאתם צריכים, השורה, והשגיאה.
במקרים אלו.. אל תרוצו ותשאלו מה הבעיה, כל מה שעליכם לדעת היא אנגלית פשוטה, "קורא לפונקציה לא מוגדרת" משמע היא לא קיימת.
סגירת פונקציות ומשתנים
זו היא בעיה נפוצה גם היא, לרוב משתמשים ממהרים מדי בזמן כתיבת תסריט PHP, ושוכחים מספר דברים, כמו סגירת סוגריים מסולסלים במבני בקרה(תנאים, switch, לולאות ועוד).
איך לזהות את השגיאה?
לרוב השגיאה ניתנת לכם ע"י שני צורות: - unexpected T_function
- unexpected $end
ישנה עוד בעיה, שהיא סגירה מיותרת של סוגריים מסולסלים, שלרוב נובעת בשגיאה הבאה:
unexpected '{'
כל השגיאות הללו, הינן שגיאות תחביר קטנות, שכל אחד שיקרא את המדריך הזה, יוכל לסדר, ללא שום צורך בפתיחת אשכולות מיותרים.
שגיאות בשמירת sessions, cookies ובשליחת headers
ישנם הרבה פעמים, כאשר אתם עובדים על אתר כלשהו, ומקבל את השגיאה:
"Cannot modify header information - headers already sent by"
רובכם אינכם שואלים את עצמכם מדוע היא נובעת, לכן פה אסביר:
כאשר אתם פולטים פלט HTML כלשהו, ולאחר מכן, מנסים לבצע פעולה הכרוכה בשימוש ב headers תקבלו שגיאה, מכיוון שheaders חייבים להתבצע אך ורק לפני שליחת פלט כלשהו.
מה ניתן לעשות?
כל מה שעליכם לעשות הוא להשתמש בפונקציה ob_start(); ובסוף הדף ב ob_end_flush();
לדוגמא:
PHP קוד:
<?Php ob_start();
header("location: index.php"); // won't give us fucking errs =]
ob_end_flush(); // flushing the toilet :P
?>
מה הפונקציה עושה?
מטרתה של הפונקציה, היא קודם לקחת את הheaders לבצע את הפעולות הנדרשות לפני שליחת קוד הHTML ואך ורק לאחר שליחת קוד הPHP, ישלח פלט הHTML, מה שחוסך לנו שגיאות מיותרות ומריטת עצבים.
נכתב ע"י WebProject
__________________
תומר
|
|
|