דאג LLOYD: אז בנו וידאו על תחביר PHP, דיברנו הרבה על איך PHP ניתן להשתמש בשורת הפקודה כדי להפעיל תוכניות באופן ש אנחנו די מכירים מג אבל כמו שציינתי גם שבוידאו, PHP בתחילה פותח ל ליישם תכנות אינטרנט, אתרי אינטרנט. וכך בסרט הזה שאנחנו הולך לדבר על איך אנחנו להשתמש PHP בהקשר התפתחות האינטרנט. אנחנו, כבר יודעים, מ הווידאו שלנו ב- HTML, שאתרים בנויים מתוך סט של תגי HTML המגדירים סמנטי המבנה של דף אינטרנט. אבל אתרים ש נבנה ב- HTML הטהור סובל ממאוד, מגבלה רצינית מאוד. וכדי להמחיש מגבלה זו, הבה נבחן את הדברים הבאים. אז עכשיו אני רוצה לבנות דף אינטרנט כי, בכל פעם שביקוריו משתמש, זה נותן לי הנוכחי זמן בקיימברידג ', מסצ'וסטס., הצגתו לדקות האחרונות. אם אני עושה את זה עכשיו, אני יכול להגיד משהו כזה. זמן מקומי בCambridge-- כך שיש לי תגי HTML, תגי ראש, תגי כותרת, גוף tags-- הנוכחי זמן בקיימברידג 'הוא 14:08, להדפיס את זמן צבאי. מה קורה אם זה עכשיו 02:09, 14:09? ובכן עד כה, עם HTML, יש לי ללכת ובלשנות אותו ל14:09. ואז ברגע אחד מאוחר יותר, אני צריך לשנות את זה שוב. ואז ברגע אחד מאוחר יותר, אני צריך לשנות את זה שוב. וכמו שאתה יכול לדמיין, זה כנראה העבודה הגרועה ביותר אי פעם. אתה מנהל האתר עבור דף אינטרנט, וכל דקה, 24 שעות ביממה, אתה צריך לעדכן את השעה הנוכחית על ידי ידני פתיחת time.html ושינוי רק קטע זה של קוד לומר שעה נוכחית בשעות ודקות. זה כנראה לא מאוד שימוש טוב של המשאבים שלנו, שני בני אדם וחישובית. אתרי אינטרנט שהם כולם HTML הם סטטי לגמרי. הדרך היחידה שאתה יכול לעדכן תוכן, כפי שרק ראו, הוא לפתוח מקור אלה באופן ידני קבצים, לערוך אותם, ולשמור אותם. ואז כאשר המשתמש מרענן את הדף, או מבקר בדף לראשון זמן, הם יקבלו את התוכן העדכני ביותר. אבל רק בגלל שיש לנו ערך אותה באופן ידני. אם נתחיל לערבב קצת PHP שם, הקוד שלנו יכול לקבל גמיש הרבה יותר. ואנחנו יכולים להיות דרך לדפים שלנו להיות דינמי, או לעדכן את עצמם, ללא צורך בעניינו מנהל אתר בדוגמא הקודמת להיות ידני עדכון דברים. הם יכולים לעשות את זה באופן אוטומטי. אנחנו לא צריכים להתערב. אנחנו יכולים לישון קצת. וזה כנראה דבר טוב אם אתה עושה הרבה תכנות אינטרנט. אז בCS50 IDE, אנחנו רצים שרת אינטרנט שנקרא Apache. זה מאוד נפוץ, מערכת שרת האינטרנט בקוד פתוח. במערכת זו יש יכולת לפרש PHP, שהולך להיות שימושי אם אתה רוצה לעשות כל תכנות PHP. ובIDE CS50, יש לנו פקודה כדי להפוך את זה מאוד קל לעשות, apache50 להתחיל. ולאחר מכן שנטוי נתיב, לחתוך ל, לקצץ dir, זה רק דרך נפוצה מאוד של המציין מה שציינת כאן היא דרך לבפרט ספרייה ש רוצה להיות השורש אתר, או דף השורש, או את התיקייה שבשרת האינטרנט שלך יתחיל לבחון את הקבצים ומשרתים אותם ללקוחות שמבקשים אותם. אז בואו נקפוץ לCS50 IDE, רק כדי להראות לך, באמת מהיר, איך זה עובד. אז הנה בIDE CS50, אני ב ספרייה בשם שבוע אפס תשע. ויש לי יש לי two-- להורג פקודת LS רק מעל להראות לך שיש לי שתי ספריות בכאן, PHP, אשר היא הקבוצה של קבצים שהייתי ב וידאו PHP תחביר, ולאחר מכן PHP-האינטרנט, אשר היא הקבוצה של קבצים שאני הייתי רוצה להשתמש בסרטון זה. ואני רוצה להתחיל מופע שרת האינטרנט עם תוכן תיקיית PHP-האינטרנט כקבצים עוברים שימשו עד. אז מה אני הולך לעשות? אני הולך להקליד apache50 חלל להתחיל, PHP החלל, אינטרנט מקף. זה הנתיב לספרייה מאיפה שאני היום. אז על Enter. זה הולך לעשות קצת חומר כאן. ואז זה הולך לומר, האפצ'י התחיל בהצלחה. האתר שלך זמין כעת at-- ו אז יש את כתובת האתר לאתר. אז מה אני הולך לעשות? אני הולך להעתיק במהירות זו. ואני הולך לפתוח up-- ו אני להקטין את התצוגה קצת כאן-- אני הולך לפתוח כרטיסייה חדשה בכרום. ואני הולך לבקר את כתובת האתר ש. אני הולך על Enter. זה הולך לטעון. ואני התרחקתי שוב. ואנחנו יכולים לראות כאן תוכן של מדריך אתרי PHP שלי. אז עכשיו מה בעצם קורה כאן הוא, המופע של CS50 IDE שלי משרת את הקבצים הללו ל כל מי שמבקש אותם. ובמשך הסרטון הזה, אנחנו נטפל ב תסתכל על חבורה של אלה קבצים שונים בהקשר. כדי לבדוק שהאפצ'י שלך השרת עובד, אשר בדרך כלל הולך להיות המקרה בCS50 IDE, אבל אם אתה עושה את זה באופן כללי יותר, ואתה מתחיל לבנות אינטרנט משלך שרתים, יש באמת סוג נפוץ של אנלוגי ל, "שלום עולם", שהיא בדרך כלל המשמש לפיתוח אינטרנט PHP. שבו הוא שיש לי קובץ בהיקף של רק code-- זה מפריד PHP משובץ מידע PHP, סוגריים, פסיק ביניהם. שהוא בעצם מיוחד פונקצית PHP שאומרת לך איזו גרסה של PHP אתה מפעיל. אז בCS50 IDE, יש לי קובץ שזמין רק כדי להראות לך מה זה היה נראה כמו. אז אני מסתכל על המדד שלי מלמשל PHP שלי. למשל האפצ'י שלי פועל התוכן של PHP-אינטרנט. ויש לי קובץ שנקרא כאן info.php. אני הולך ללחוץ עליו, להקטין את התצוגה. זה מה שאתה הולך לראות, פחות או יותר. זה רק אומר לי ש שרת האפצ'י שלי עובד. וזה, כנראה, גרסה של PHP שאני מפעיל. זה אנלוגי שלי ל" שלום עולם ". אז אני יודע שהדברים הם מבצעיים. אז אנחנו טובים ללכת. אנחנו יכולים להמשיך מכאן. אז בואו לבקר ש דוגמא זמן שהיינו מדבר על עם מנהל אתר עניינו שהיה לו כדי לעדכן את הדף כל הזמן. זה עשוי להיות פתרון לאיך הייתי ליישם דברים כך שמנהל האתר לא צריך לשמור על עדכון הזמן. זה היית רק סוג של יקרה באופן אוטומטי. למטה, HTML, זה די דומה, עם חריג אחד. אבל כאן יש לי כמה PHP בחלק העליון. יש לי, כנראה, בשם זה date_default_timezone_set פונקציה. ואנחנו לא מדברים על כל פונקציות אלה בCS50, כי PHP יש כנראה עשרות אלפים. זה יכול להיות קצת הגזמה, אבל זה לא יכול להיות. יש לו הרבה פונקציות מובנות ב. ואז זה כנראה פונקציה מגדיר אזור הזמן שלי כארה"ב / מזרח, אשר הוא אזור הזמן שאני כרגע מה שהופך את הסרטון הזה. אז אני עושה את שיחה ל פונקציה שנקראת, תאריך. וזה, כנראה, אני אחסון שלו משהו שנקרא, זמן. אז מה קורה כאן? ובכן, בעצם מה קורה הוא, אני עושה את שיחה לחלק השרת שבו הולך תגיד לי מה הזמן הוא ברגע זה. ואני ממיר אותו לפורמט שעות, דקות, שניות. והסיבה שזה H ההון הוא זה הוא הולך לתת לי זמן 24 שעות ביממה, לא 12 זמן שעה, אשר יהיה באותיות קטנות h. ואני רק אחסון ש במשתנה בשם, זמן. כך שהשורה השנייה של PHP שם, הקריאה לפונקציה, תאריך, הוא פשוט מקבל כמה מחרוזת, שהוא הולך לתת לי את התאריך, ו זמן, וחבורה של מידע אחר. והטיעון הראשון שם, ש, רק לחילוץ החלק החשוב כי אכפת לי למשל זה, אשר היא השעה, דקה, שני ו. אז זה כל מה שקורה. אז אני לאחסן כי בזמן $ משתנה. ולמטה באז מאוד תחתון שם, אני יש לי קצרנות של להדפיס את השעה הנוכחית. אז רק אני הולך להדפיס מה הוא הזמן הנוכחי. אז בואו נסתכל על זה ב IDE CS50 ולראות איך אנחנו עכשיו חיסכון מנהל אתר שהרבה צרות. בסדר, אז הנה אני שוב חזרה בספריית השורש בערכאה האפצ'י שלי. ויש לי קובץ שנקרא כאן time.php. אני רק הולך ללחוץ על זה. ואני לגלול מעלה, כי אנחנו המוגדל בדי רחוקים. הזמן הנוכחי הוא 14:20:34. אז אני עושה את זה שעות, דקות ושניות. ואני יכול לרענן את דף ולקבל זמן חדש. --41. אני הולך לרענן את הדף ומקבל זמן חדש, 44, 46, 47. אז, אני באופן ברור לא לשנות שום דבר בעצמי. אני כאן אני לרענן את הדף. אז אני לא יכול לחזור לשם עריכתו. ואני מבטיח לך, אני לא יש כל בעלי ברית שעורכים את הקובץ בשם שלי בצד. אני רק משתמש שפונקציה PHP, זמן, על מנת ליצור את הזמן בשבילי באופן אוטומטי. כך שגם אם אני ישן, ושרת האינטרנט שלי פועל, הגולש שמבקר בדף זה הוא עדיין הולך לקבל בדיוק את השעה הנוכחית. אז זה די טוב. אני כבר עשיתי את האתר שלי דינמי יותר עם קוד PHP לא יותר מדי. זה היה רק ​​שתי שורות של קוד ולאחר מכן קצת הצהרת הדפסה. ויש לי כבר אתר הרבה יותר דינמי מזה דוגמא הראשונה שראינו בתחילת הסרטון. אז, זוכר מהווידאו בתחביר PHP כי כאשר מתורגמן PHP פועל התכנית שלנו, שהוא מתעלם הכל זה לא בתוך מפרידי PHP, יורק אותו החוצה. בדוגמא ש, מה הדבר כי זה היה לירוק היה HTML. וזה אומר שאני יכול עכשיו לפזר HTML ו- PHP יחד. בגלל המתורגמן רק יהיה להתעלם HTML וממש פלט אותו. וזה טוב, נכון? מפני שלכאורה, בסופו של היום, אני רוצה את האתר שלי ל יוקם ב- HTML. כך שכל דפדפן אינטרנט יכול לפרש זה, או להבין את ה- HTML בדף ולהבהיר את זה כדבר שאנחנו באמת יכול להבין כבני אדם. ואני רק יכול להשתמש PHP לחלקים של האתר שלי דורש דינמי, שמחייב אותי יש דברים שכל הזמן לעדכן. המידע סטטי יכול להישאר אותו הדבר. אוקיי, אז זה בסדר. אבל למה שאעשה זאת? למה אני מערבב HTML ו- PHP? אני יכול פשוט להדפיס את כל HTML, באמצעות פונקצית הדפסת PHP. למה אני לא עושה את זה? תחשוב על זה לרגע. למה, כשאני יכול פשוט להדפיס out-- אני יכול להיות קווים של PHP שפשוט אומרים, תג הדפסה HTML, ראש ההדפסה. למה אני לא עושה את זה? למה אני ערבוב PHP ו- HTML? ובכן, אם אתה חושב על זה לרגע. PHP, יש המתורגמן לפרש את מה שהוא רואה. וכך זה הולך לי לבצע שורת קוד. להדפיס את ה- HTML. להדפיס את התג פתוח ראש. להדפיס את תג כותרת פתוחה. זה הולך להיות ל לבצע ולפרש שכל שלב של הדרך. למה לא פשוט לתת ל מתורגמן רק לחפות על דבריו לא מבינים ולעשות את זה באופן אוטומטי? זה הולך לחסוך לי הרבה זמן לערבב HTML שלי ושלי ביחד PHP. ואז זה למה שאנחנו עושים לא רק צריך מפריד PHP פתוח ואז פשוט להדפיס את כל תוכן של הדף שלנו כמו PHP אחד ענק קורא לפונקציה, ההדפסה, ולאחר מכן מפריד קרוב PHP ואנחנו נעשו. אז בגלל זה אנחנו מערבבים אותם יחד. עד כה, לא ראינו יותר מדי הבדל מתחביר PHP כללי. זה היה די פשוט. כבר ראינו סימן שאלה, שווה. ראינו כמה שיחות פונקציה חדשות, אבל שום דבר לא באמת מפואר קורה. בואו אולי לעשות דברים קצת להשתכלל. מה אם אנחנו רוצים להעביר את המידע בין קבצי PHP השונים, כך יכול שאולי המשתמש שלח את הפרטים אליי. ואז אני יכול לעשות משהו עם זה בדף אחר. אז PHP יש תמיכה ב משהו שנקרא Super גלובלי משתנים, שנשמעים די מדהים. הם באמת רק מערכים אסוציאטיביים ענק שתעזרו ליישם את זה הפונקציונליות של הפטירה מידע בין קבצי PHP ש הם קיימים בשרת האינטרנט שלנו. הראשון של אלה סופר globals נקרא _GET $. וזה כנראה פשוט ביותר להבנה. מה קורה עם _GET $? ובכן, בעצם, המשתמש הוא הולך להקליד מידע נוסף בסוף של כתובות האתרים שלנו. וכל מה שהם מקלידים, בהנחה זה מעוצב בצורה מסוימת נקרא מחרוזת שאילתא, שהוא רק קבוצה של זוגות ערך מפתח מופרד בסימן חיבור. אלה זוגות ערך מפתח יהיו מאוחסן במערך אסוציאטיבי _GET $. ומהווידאו שלנו ב תחביר PHP, אנחנו יודעים איך לעבוד עם מערכים אסוציאטיביים כבר. אז הנה דוגמא ל כמה PHP, שבו אולי אני חילוץ כל זוגות ערך המפתח שהמשתמש סיפק את כתובת האתר. אז יש לי מפריד PHP הפתוח שלי. יש לי לולאת foreach. אני iterating פני הסופר מערך גלובלי נקרא _GET $. ואני רוצה להיות מסוגל להפנות לשניהם את המפתח והערך. ואני רק מדפיס אותם את, כל אחד בככל הנראה התג שלו פסק כאן. אני מדפיס כמה HTML וביון הערכים של מפתח וערך לאמירה ש. אז בואו נסתכל על איך זה היה באמת עובד על IDE שלנו. ואולי זה יעזור לי להמחיש קצת ממה שמקבל הוא בעצם עושה. אז אני שוב כאן בשורש האינטרנט שלי. ואני להתמקד ב קצת כדי להראות לך שיש לי קובץ שנקרא, get1.php. אז בואו לחצו על get1.php. ואני לא רואה שום תוכן. זה מוזר, נכון? ובכן, לא ממש ממש. כי אני לא לספק כל דבר ב- URL. אני הולך get1.php, אבל אני לא לספק כל זוגות ערך מפתח כחלק ממחרוזת השאילתה שלי. אז בואו להוסיף מחרוזת שאילתא ולראות מה קובץ זה יכול לעשות. כדי להתחיל מחרוזת שאילתאך פשוט להקליד סימן שאלה. אז אולי אני אגיד שם = דאג & שנה = 2015. ואז אני על Enter. עכשיו שם לב מה קורה. אני עדיין בget1.php. אבל עכשיו אני כבר סיפקנו זוגות ערך מפתח, ואני להדפיס אותם בכוחות עצמם שם paragraph--, השנה Doug--, 2015. זה בדיוק הקוד שרק ראיתי בשקופית לפני רגע. ואם אני רוצה אולי להוסיף עוד זוג מפתחות ערך, וclass = CS50. עכשיו יש לי עוד ערך מפתח זוג שהוא הדפיס כאשר אני מחדש את כתובת האתר שוב. עכשיו אולי זה לא מעוצב מאוד גם. אז יש לי גרסה אחרת של get.php. זה get2.php. ההבדל בזה אחד הוא שיש לי קובץ CSS, וזה פורמטי דברים קצת יותר יפה לי. זה אולי לא הכי CSS היפה בעולם. אבל זה רק עוד דרך לעשות את זה. אז עדיין אני יכול לקבל גישה למשתנים שלי באמצעות _GET $. ובמקרה הזה, אני פשוט סוג של מה שהופך את CSS קצת יותר מפואר. ואם אנחנו לקפוץ ל IDE שלי לשנייה, אני אראה לך באינטרנט PHP שלי הספרייה כאן, get2.php. אנחנו תפתחו אותו, כמה HTML כאן. כנראה שאני מקשר שב קובץ CSS אני מדבר. אני פותח תג שולחן. ואז הנה foreach הלולאה שלי. הנה כי, מה ש הראה בשקופית לפני. ההבדל היחיד הוא ש יש מפתח זה וCSS הערך סטיילינג שאני פונה אליו. אבל זה כל מה שאני עושה, הוא אני iterating פני _GET $ כדי לקבל את כל של זוגות ערך המפתח. ואני מדפיס אותם כשולחן. וזה, כנראה, אני עיצוב המקשים בדרך זו, עם = "מפתח" בכיתה TD <. אז כנראה שחל על חלק בורר מעמד בGET.CSS קובץ CSS שלי. וזה, כנראה, אני מדפיס את הערכים שלי בדרך שונה לחלוטין. וזה די הרבה מה שראינו כאן, שבו הערכים שלנו הודפסו עם רקע כחול, והמפתחות שלנו הודפסו עם רקע צהוב. אז ככה אני מקבל אלה סגנונות שונים. כי אני משתמש מחלקות CSS שונות. אבל זה פחות או יותר אותו לGET. כמו שאני פשוט להוציא מידע. ובמקרה הזה, אני פשוט הדפסתו על גבי המסך. אני מקבל את זה מאת כתובת האתר, וזה מה שעושה לנו GET. האם אתה רואה אפשרי בעיה כאן אף? למה שאנחנו אולי לא רוצה להשתמש _GET $? מה אם, אולי, אני עושה שאילתא זו? get3.php --יש, שבו אני אין לי על IDE. זה פשוט קובץ היפותטי. אבל שם לב שככל הנראה כאן עובר את הסיסמה שלי ב. ואולי את הסיסמה שלי היא מביכה. או שאולי אני לא רוצה שאנשים יודע מה היא הסיסמה שלי, נכון. אם אני מעביר את זה though-- אם אני משתמש ב שיטת _GET $, מה שקורה הוא, זה הולך להיות בכתובת האתר. אז אולי כמה משתמשים זדוניים תוכל לראות מה אני עושה. אני יכול להיות עובר אותם מידע רגיש. או אולי זה אפילו לא משתמש זדוני. אולי זה רק חבר שלך ש עומד על כתף שלך. ועכשיו הם יודעים את הסיסמה לחשבון שלכם בפייסבוק. ואולי הם לא הייתם לעשות משהו עם זה. אבל אם הסיסמה שלך היו הוגש באמצעות _GET $ לפייסבוק, עכשיו הם יודעים את הסיסמה שלכם בפייסבוק. כי זה ממש שם ב- URL מתי שעשיתם את הגשת מידע. וכך אולי זה לא הכי טוב דרך להעביר מידע רגיש. זוהי דרך טובה להעביר מידע כי אנחנו לא במיוחד אכפת לי כרגיש מדי. בגלל מקבל הוא די מהר, ביחס לGLOBALS הסופר האחר אנחנו הולכים לדבר עליו. אבל אולי לא הכלי הטוב ביותר למידע רגיש. בשביל זה אנחנו אולי נרצה להשתמש במשהו שנקרא _POST $, וזה עוד משתנה סופר גלובלי. זה עוד מערך אסוציאטיבי. כך זה עובד פחות או יותר בדיוק כמו GET. מלבד, במקום לחילוץ מידע מאת כתובת האתר, היא עושה משהו דרך כותרות HTTP. אז זוכר משלנו וידאו על HTTP, דיברנו על איך דפדפנים, שרתים, ולקוחות מתקשרים. ומידע מועבר בחזרה ושוב בכותרות HTTP. עם _POST $, מידע הוא בדרך כלל נשלח דרך כותרות HTTP אלה. ואנחנו בדרך כלל רואים _POST $ ב בהקשר של הגשת טפסים ב- HTML. אתה עדיין יכול להשתמש בטפסי HTML להגיש דברים כדי לקבל. אבל הם משמשים בדרך כלל בהקשר של POST. אז הנה דוגמא של טופס HTML. עכשיו שראינו אלה לפני, אבל יש לנו לא ראה את החלק, פעולה = "post.php" זו. לכן, כאשר אנו מדברים על צורות ב הקשר של HTML, היה לי כפתור Submit. ואם אתה זוכר, הייתי לחץ על Submit ולאחר מכן את הדף רק רענון, לא עשיתי שום דבר. במקרה זה, אני הגשה כל מה שאני מקליד בטופס זה, לקובץ PHP בשם post.php. וזה, כנראה, כמו שאני עושה את זה בצורה זו היא באמצעות שיטת POST. אז כל פיסת המידע שאני מקליד לתוך טופס זה יוגש דרך כותרות HTTP. זה יהיה נגיש בpost.php, כי זה הפעולה של טופסי. זה יהיה נגיש על ידי הולך _POST $. וככל הנראה, שאני יכול בדרך לקבל בכל רכיב בודד עם שמערך אסוציאטיבי הוא עם תכונה זו, התכונה שם תגי הקלט שלנו. אז כנראה שאני יכול לומר _POST $ מרובעים סוגריים שם כדי לקבל מה שהמשתמש הקליד בשדה הראשון. ו_POST $ סיסמא, של PW ולא, כדי לקבל בכל מה שמשתמש הקליד בתחום השני. אז בואו נסתכל על זה בIDE CS50. אז הנה אנחנו, ואני יהיה להתקרב לשנייה. ויש לנו קובץ בשם post.html. אני לוחץ על post.html. בחלקו העליון כאן יש לי אינטרנט צורה פשוטה מאוד. זה הטופס פשוט שראינו בשקופית לפני שנייה. אני יכול להקליד, דאג, ושאני יכול הקלד את הסיסמה שלי, שכולנו יודע הוא squadgoals. ואני פגע 'שולח'. וככל הנראה, ש מגיש לpost.php. ואני כנראה אני מדפיס את זה. אז אני נפטר מכל הביטחון שPOST נותן לי רק על ידי הדפסה החוצה שם המשתמש וסיסמא. שמו של המשתמש הוא דאג. הסיסמה של המשתמש היא squadgoals. איך אני עושה את זה? ובכן, לקפוץ לIDE שוב לרגע. אנו לגלול למטה כדי לקחת תסתכל על post.php, שהיה הפעולה שנהגתי להגיש כאן. זה היה הפעולה של טופס HTML שלי. וזה כל מה שאני עושה. שמו של המשתמש הוא, ואני הדפסה את התוכן של _POST $ "שם". ולאחר מכן את הסיסמה של המשתמש הוא _POST $ "סיסמא". אז נתן לי מידע ש על ידי הגשת טופס HTML. ועכשיו אני יכול לחלץ אותו באמצעות _POST $ בגלל השיטה שמשמש להעברה נתוני טופס שהיה בשיטת POST. עכשיו זה כנראה לא כך great-- אני הולך לחזור לשנייה לכאן-- הסט שלנו זה כנראה לא כל כך גדול אם אני הגשת מידע עם POST, אשר הוא לכאורה בטוח יותר. זה כנראה לא כל כך גדול אם אני עושה את זה ולאחר מכן להדפיס את הסיסמה של המשתמש. זה אמור להיות מאובטח יותר. בסדר, אבל זה לא בטוח לגמרי. וכך, בזה קצת snippet כאן אני רוצה רק כדי למשוך את תשומת הלב שלך לכמה חששות אבטחת מידע, רק משהו לחשוב על כפי שאתה עובד או באמצעות האינטרנט. זה פשוט משהו לשקול. אמרתי לך שמידע הוא הוגש באמצעות כותרות HTTP כאשר אתה משתמש בשיטת POST. מה שאומר שהם לא מאובטחים לחלוטין. הם קשים יותר למצוא מאשר תוך שימוש בשיטת GET, שבו זה בדיוק את כתובת האתר. אבל יש עדיין דרך למצוא אותו. ואני רק רוצה להראות שלך את זה, כך שאתה אולי להתחיל לחשוב על זה כפי שאתה עובד, או באמצעות אתרים והגשה סיסמאות, ואולי באמצעות באותה הסיסמה ב הרבה מקומות שונים. יודע שזה עדיין בעצם די קל לגלות את הסיסמה של מישהו. ואז הנה, אני הולך ללכת לpost2.html. וההבדל עם post2.html וpost2.php הוא די עדין. ההבדל הוא רק שאני לא להדפיס את הסיסמה כשאני לשלוח את הטופס. אז אני הולך להקליד, דאג. ואני הולך להקליד ב, squadgoals, אפילו למרות שאנחנו יודעים שזה הסיסמה. לפני שאגיש את טופס אם כי, אני הולך כדי לפתוח את כלי פיתוח, רק כדי אראה לך מה הולך לקרות כאן. אז בכרום, אני רק הולך להכות F12. וזה הולך להיפתח כלי פיתוח בצד ימין. אני לא הגשתי את הטופס עדיין. עכשיו אני הולך להכות שלח טופסי. וככל הנראה, אני עשיתי קורא ל, או שעשיתי בקשה לpost2.php, מה שהופך את התחושה. אני הולך ללחוץ על זה. אז כאן, אני הולך ללחוץ על כותרות. יש הרבה דברים קורה כאן. אבל אם אני לגלול למטה כדי מאוד תחתון, הודעה תקין יניהם-- לוח השנה שלי חסם אותו לימין הדבר-- שם בפינה תחתונה מאוד, name-- דאג, squadgoals pw--. אז למרות שאני משתמש POST שיטה, שהוא בטוח יותר, רק להיות מודע לכך שכאשר אתה עושה זאת, אתה עדיין העברת מידע דרך HTTP. והוא עדיין יכול להיות נמצא על ידי יריב. זה פשוט משהו שאנחנו הולכים כדי להתמודד עם באמת. אולי יש כמה דרכים להצפנה שלנו סיסמאות לפני שאנחנו שולחים אותם, שיהיה טוב יותר, שאני לא עושה כאן. אבל רק להיות מודע לכך שPOST יש שיטה מגבלות מדי. זה שיפור לעומת GET ב מונחים של להיות גלוי באופן מיידי. אבל זה לא תיקון מלא. אז הנה דוגמא ל מהיר בתרגיל הבית שאתה יכול להשתמש בו כדי לקבל קצת לתרגל עבודה עם PHP. צור הזוג של דפי האינטרנט הבאים. הראשון פשוט צריך להיות מאוד פשוט טופס עם שדה אחד ושלח לַחְצָן. אז מאוד דומה למה ש רק עשיתי עם post.html. ואז השני קובץ שאתה צריך ליצור מקורו של קובץ, קובץ PHP, ש מצפה קלט, באמצעות POST, ועל סמך מה משתמש הקליד, ש אתה יכול להניח יהיה מספר שלם. אתה לא צריך לעשות שום בדיקת שגיאות או משהו דומה. אתה יכול להניח את המשתמש יהיה להקליד ערך שלם, או משהו כזה מתפרש על ידי PHP כמספר שלם, לצורה ש. אתה פשוט רוצה ליצור n על ידי לוח כפל n. אז אם המשתמש שולח 10, אנחנו רוצים יש שולחן 10 על ידי 10 כפל. אם המשתמש שולח 12, אנחנו רוצים שולחן 12 על ידי 12 כפל. רק כדי שתוכל לראות מה אנחנו נוסעים בכאן, אנחנו נסתכל קובץ זה בIDE שלי. אז הנה בIDE, יש לי mult_form.html. אני לוחץ עליו. כל מה שאני רוצה לעשות הוא להגיש ערך. סוג ב -10, פגע 'שלח'. וככל הנראה, mult_table.php, ש אנו יכולים לראות בחלק העליון יש את כתובת האתר, אני יוצר 10 על ידי 10 לוח כפל. אם אני מקליד 15 ופגעתי שלח, עכשיו אני יש שולחן 15 על ידי 15 כפל. אני, כמובן, לא הולך להראות אתה התוכן של mult_table.php, בגלל שייקח את הכיף מתוך זה בתרגיל הבית. אבל זה דרך מצוינת לקבל קצת לתרגל עבודה עם לולאות PHP וPOST, פשוט מאוד, אני מקווה ש דוגמא מתח בחינם, רק לעשות קצת תרגול. ויש לי קצת CSS קורה כאן כדי להפוך את השולחן הבודד שלי תאים להסתלק פשוט סוג של קצת ונראים קצת יותר כמו לוח כפל, בניגוד רק לטקסט פשוט סוג של יושב שם. סופר הגלובלי האחרון נדבר על בוידאו זה נקרא משהו _SESSION $. ואולי זה בעצם הדוגמא הטובה ביותר למשהו היינו רואים גלובלי. זה מערך אחר. זה עוד מערך אסוציאטיבי. אבל זה נגיש דרך כל קובץ PHP שקיים במערכת שלנו. אנחנו לא צריכים להגיש מידע בדף אחד בכל פעם כמו שאנחנו עושים עם GET ועם POST. זה תמיד שם. ואז זה נהדר עבור דף שבו אתה מחובר, למשל, ואתה רוצה את פרטי ההתחברות שלך להתמיד מדף לדף לדף. אתה יכול פשוט להתחיל פגישה ולאחר מכן להשתמש _SESSION $ כדי להציל את הדברים כמו שמו של המשתמש, או למשתמש של מידע מזהה, וכן הלאה. והמידע שיישאר ב _SESSION $ עד שאתה להרוס את הפגישה קצת מאוחר יותר. כתיבת אתרי אינטרנט דינמי עם PHP עושה אותם הרבה יותר טוב. האתרים שלך להיות מאוד דינמי, ואתה לא צריך לעשות גם הרבה יותר ממה ש שלך אחרת היה עושה רק עושה את זה עם HTML. אבל זה דורש תרגול, הרבה תרגול. אתה כבר יודע איך לעבוד עם C, וכך לקפוץ ל- PHP הוא לא מסובך מדי. מה הוא אולי קצת קצת מסובך עובד עם הרעיון החדש הזה של לקבל ולפרסם, ואולי ערבוב HTML שלך ו- PHP שלך יַחַד. אבל גם להיות מודע לכך שהאינטרנט הוא מאגר עצום של מידע. והתיעוד של PHP הוא זמין במקומות רבים, אבל אולי ביותר canonically בphp.net. ואתה יכול למצוא שם, המון פונקציות שונות, ולהשתמש במקרים, ודוגמאות על דוגמאות, על דוגמאות. איפה אם אתה רוצה לנסות ודמות איך לעשות משהו, רוב הסיכויים הם, מישהו כנראה עשה את זה לפניך. ואתה יכול להשתמש בם כ השראה ליישם כל מה ש זה שאתה מנסה ליישם מדי. אני דאג לויד. זה CS50.