php / שיעור 3 / מקום לכל דבר
שיעור 3
מקום לכל דבר
ברוכים הבאים לחלק השלישי והאחרון בערכת הלימוד הזאת. אם עברתם את שיעור 1
ושיעור 2, אתם כבר מכירים את הדברים החיוניים להתקנת וכתיבת סקריפטים
יעילים עם PHP ו-MySQL. אנחנו הולכים לראות כמה פונקציות PHP נוחות
שאמורות להקל עליכם את החיים בהרבה. דבר ראשון, בואו נביט על קבצי include
(מוספים).
כולנו מכירים את עיקרון המוספים, נכון? תוכן של קובץ חיצוני מיוחסים ומיובאים
לקובץ הראשי. זה די פשוט: אתם קוראים לקובץ והוא נוסף. כאשר אנחנו עושים
את הדברים עם PHP, יש שתי פונקציות שעלינו להכיר: ()include ו- ()require.
ההבדל בין שתי הפונקציות הוא עדין אך חשוב. אז בואו נביט בו מקרוב יותר.
הפונקציה ()require עובדת בצורת דומת-,XSSI קבצים נוספים כחלק מהמסמך
המקורי ברגע שהקובץ מפורק, ללא התחשבות במיקום שלו בסקריפט. כך שאם
תחליטו להציב פונקצית ()require בתוך לולאת תנאי, הקובץ החיצוני יתווסף גם אם
אותו חלק של לולאת התנאי הוא שגוי.
הפונקציה ()include מייבאת את הקובץ המדובר בכל פעם שנתקלים בו. במקרה
שלא נתקלים בו, PHP לא תטרח אתו. משמעות הדבר היא שאתם יכולים להשתמש
ב-include בלולאות ובביטויי תנאי, והם יעבדו כראוי.
בסופו של דבר, אם תשתמשו ב- ()require והקובץ אותו אתם רוצים להוסיף לא
קיים, הסקריפט שלכם יעצור ויודיע על שגיאה. אם תשתמשו ב- ()include ,
הסקריפט שלכם יפיק אזהרה, אך ימשיך לפעול. אתם יכולים לבדוק את העניין
בעצמכן ע"י ניסוי הסקריפט הבא. הריצו אותו, אז החליפו בין ()include לבין
()require והשוו בין התוצאות.
<html>
<body>
<?php
include("emptyfile.inc");
echo "Hello World";
?>
</body>
</html>
אני אוהב להשתמש בסיומת .inc עם הקבצים המוספים שלי כדי שאוכל להפריד
אותם מסקריפטי ה-PHP הרגילים. אם אתם עושים את זה, וודאו שכוונתם את
קובץ הקונפיגורציה של שרת הרשת שלכם כך שיפרק קבצי inc. בתור קבצי PHP.
אחרת, האקרים עלולים לנחש את שם הקבצים המוספים שלכם ולהציג אותם ברחבי
הרשת בתור קבצי טקסט. זה יכול להיות רע אם יש לכם מידע מסווג – כגון
סיסמאות – שמורות בקבצים אלה.
אז מה אתם הולכים לעשות עם הקבצים הנוספים? פשוט מאוד! שימו בהם מידע
המשותף לכל העמודים. דברים כמו כותרות HTML (עליונות ותחתונות), קודי
התחברות למאגרי מידע ופונקציות מוגדרות ע"י המשתמשים הם כולם מועמדים
ראויים. הדביקו את הטקסט הבא לתוך קובץ בשם header.inc.
<?php
$db = mysql_connect("localhost", "root");
mysql_select_db("mydb",$db);
?>
<html>
<head>
<title>
<?php echo $title ?>
</title>
</head>
<body>
<center><h2><?php echo $title ?></h2></center>
ואז צרו קובץ נוסף בשם footer.txt שמכיל קצת טקסט לסיום ותוויות.
עכשיו בואו ניצור קובץ שלישי המכיל את סקריפט ה-PHP עצמו. נסו את הקוד
הבא, תוך שאתם מוודאים ששרת ה-MySQL פועל.
<
$title = "Hello World";
include("header.inc");
$result = mysql_query("SELECT * FROM employees",$db);
echo "<table border=1>\n";
echo "<tr><td>Name</td><td>Position</tr>\n";
while ($myrow = mysql_fetch_row($result)) {
printf("<tr><td>%s %s</td><td>%s</tr>\n", $myrow[1],
$myrow[2], $myrow[3]);
}
echo "</table>\n";
include("footer.inc");
?>
רואים מה קרה? קבצי ה-include נזרקים אל תוך הקובץ הראשי והכל מבוצע ע"י
PHP. שימו לב איך המשתנה title$ הוגדר לפני הכותרת header.inc. הערך שלו
הפך לנגיש עבור הקוד ב- header.inc. דייהנו, כותרת העמוד משתנה. כעת תוכלו
להשתמש ב- header.inc בכל עמודי ה-PHP שלכם, וכל שתצטרכו לעשות הוא
לשנות את הערך של title$ מעמוד אחד לשני.
תוך שימוש בשילוב של מוספים, HTML, ביטויי תנאי ולולאות, אתם יכולים ליצור
וריאציות מורכבות מעמוד לעמוד במינימום קוד. מוספים נעשים יעילים במיוחד
כאשר משתמשים אתם בשילוב עם פונקציות, כפי שנראה עוד מעט.
הלאה לעולם המרתק של אימות מידע.
עמוד הבא: אימות פשוט >>
|