PracticU

קורס PHP - הרצאה 3

בלי כתוביותעם כתוביות
PracticU › קורס PHP - פרויקט מעשי › קורס PHP - הרצאה 3
מילון מושגים:
PHP - שפת תכנות לצד השרת, נפוצה בבניית אתרים דינמיים ומערכות ניהול תוכן כמו WordPress.
טופס - אזור בממשק שבו המשתמש מזין נתונים בשדות ושולח אותם, למשל טופס הרשמה או התחברות.
סיסמה - מחרוזת תווים סודית שמשמשת לאימות זהות המשתמש בעת כניסה למערכת. ככל שהיא ארוכה ומורכבת יותר, כך קשה יותר לנחש אותה.
כפתור - רכיב בממשק המשתמש שהמשתמש לוחץ עליו כדי להפעיל פעולה, כמו שליחת טופס או מעבר לדף אחר.
POST - שיטת HTTP לשליחת נתונים לשרת כדי ליצור או לעדכן משאב, למשל שליחת טופס.
GET - שיטת HTTP לבקשת מידע מהשרת בלי לשנות אותו. הפרמטרים מועברים בדרך כלל בכתובת.
בקשה - פנייה שלקוח שולח לשרת כדי לקבל מידע או לבצע פעולה. השרת מחזיר עליה תגובה.
מערך - מבנה נתונים שמאחסן אוסף ערכים מאותו סוג ברצף, שאפשר לגשת אליהם לפי מספר מיקום (אינדקס).

קורס PHP - הרצאה 3
ההרצאה עוסקת בטפסים, הדרך לקבל קלט מהמשתמש ולשלוח אותו לשרת לעיבוד. המרצה מדגיש שכל טופס זמין לעבודה עם PHP באופן אוטומטי, ולכן הנתונים שנשלחים מהטופס מגיעים למשתנים שהשרת מכיר.
בניית הטופס
1. מבנה: form עוטף fieldset עם legend ככותרת. בתוך ה-fieldset יש טבלה, ובכל שורה תווית ושדה קלט.
2. חיבור תווית לשדה: התכונה for של התווית חייבת להיות זהה לתכונה name של שדה הקלט, כדי שהשניים יתחברו.
3. סוגי שדות: text לטקסט רגיל, ו-password לסיסמה שמוצגת כנקודות במסך.
4. כפתור שליחה: submit שמפעיל את הטופס. לכפתור יש שם משלו, כדי שאפשר יהיה לזהות אם הוא נלחץ.
5. action ו-method: action קובע לאן הנתונים נשלחים, ו-method הוא POST או GET.
6. עיצוב: המרצה מדגים את העיצוב בעזרת תכונת style על הפילדסט, ומראה שיש להעביר את הכותרת למקום המתאים כדי שהטופס ייראה נכון.
POST מול GET
1. GET: הנתונים מופיעים בשורת הכתובת ומוגבלים באורך.
2. POST: הנתונים לא מופיעים בשורת הכתובת, ולכן המרצה ממליץ עליו לשדות כמו סיסמה.
3. קבלת הערכים: $_POST['name'] ו-$_GET['name'], או $_REQUEST שמקבל את שניהם.
4. בדיקה שהטופס נשלח: isset($_POST['submit']) בודק אם הכפתור נלחץ. כשהדף נטען בפעם הראשונה הבדיקה מחזירה שקר.
5. הצגת הערכים: בדוגמה כתובת השדות נראית בשורת הכתובת כשהשליחה היא GET, ואינה נראית כשהיא POST.
סינון הקלט
1. filter_var: פונקציה שמאמתת ערך יחיד, למשל filter_var($_POST['children'], FILTER_VALIDATE_INT).
2. אפשרויות: מערך שמשויך למפתח options, ובתוכו min_range ו-max_range לטווח מספרים.
3. דוא"ל: FILTER_VALIDATE_EMAIL בודק שכתובת המייל תקינה.
4. הגדרת השרת: המרצה שינה את ההגדרה register_long_arrays ב-php.ini, כדי שהמערכים הישנים של הקלט יירשמו.
שימו לב
אם לא מוגדר action, הטופס נשלח לעמוד הנוכחי עצמו, ולכן אפשר לבדוק בו את הקלט ולהציג שגיאות בלי לעבור לדף אחר. המרצה מציג את הדרך הזו כפשוטה יותר מאשר לשלוח לקובץ נפרד בכל בדיקה.
השיעור הבא בקורס: קורס PHP - הרצאה 4

פרקי ההרצאה: קורס PHP - הרצאה 3

  1. 00:00

    טפסים ב-PHP: קבלת קלט מהמשתמש

  2. 00:43

    יצירת הטופס הראשון בפרויקט

  3. 04:09

    סידור שדות הטופס בטבלה

  4. 05:28

    תוויות label וחיבור לשדה הקלט

  5. 07:02

    שדות אימייל, כתובת וטלפון

  6. 08:17

    שליחת הטופס לקובץ PHP

  7. 10:10

    זיהוי לחיצה על כפתור השליחה

  8. 12:33

    ההבדל בין GET ל-POST

תמלול ההרצאה: קורס PHP - הרצאה 3

הטקסט המלא של הדקות הראשונות בהרצאה «קורס PHP - הרצאה 3» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:06

    אוקיי, בוקר טוב, היום אנחנו נעסוק בטפסים, PHP. טפסים נועדו על מנת לקבל קלט מהמשתמש בדרך כלל ואת הקלט הזה אנחנו מעבירים לשרת להמשך פעילות לפי הנתונים שאוזנו, אפשר להעביר נתוני קלט על ידי שני סוגים של טרנזקציה, פוסט וגט שעליהם נדבר ונרחיב את הדיבור בהמשך ודבר חשוב שיש לשים אליו לב הוא שכל טופס הוא זמין לעבודה עם PHP באופן אוטומטי

  2. 00:43

    אז בואו ניצור את הטופס הראשון שלנו בפרויקט אז כמו שהזכרנו בהרצאה הקודמת, המשתמש שלנו יוכל להזין נתונים, מחירים לתוך מסד הנתונים בואו נתחיל ליצור את הטופס ונסביר שלב שלב מה קורה אוקיי, אז הנה כאן יש לי את הפרויקט שלי, virtual shop ובואו נשתול מכל דיו כאן מעל ה-PHP בלוק הזה נשתול פה סליחה דיו מסוים

  3. 01:16

    בואו נסגור אותו בואו ניתן לו תעודת זהות ID שווה נגיד לוגין פורם לוגין, אוקיי, בסדר בואו נתחיל לכתוב את הטופס בהתחלה בצפת html ולאט לאט נראה איך ניתן לעבוד עם הטופס הזה בphp אוקיי קודם כל תגיד הפתיחה form וכמובן ישר סוגרים אותה אוקיי אחר כך תביא את הפתיחה

  4. 01:51

    לקראת fieldset וכמובן גם היא דורשת תביא את רע ודבר נוסף זה לג'נד, נקרא אם אני לא מתבלבל, תביא סגירה, כמו טייטל אוקיי, בדרך כלל אלה המרכיבים העיקריים של הפורום פורום, תגיד פורום, פילדסט, שזה מערך של שדות ולג'נד, שזה המקרה, בואו נתחיל כרגע למלוץ כל דבר

  5. 02:20

    בואו בינתיים, בואו ככה, בפורום נעשה את הפקודה הבאה אקשן שווה, אוקיי, בואו נדבר על אקשן אקשן בעצם זה אומר שיש לי כפתור הפעלה בתוך הפורום הוא submit, בתת, שאנחנו נראה אותו בהמשך אז כאן, לפי הלחיצה של ה-submit, הוא יפעיל איזשהו קובץ מסוים של html או של php לדוגמה

  6. 02:43

    במקרה הזה, אני רוצה לתת משהו שנקרא דבר כזה php, print, dollar, php, sell אוקיי, זה יוסבר מה זה בהמשך עד לפה זה ה-h אתם זוכרים שדיברנו שיש שתי סוגים של טרנזקציות על מנת לעבוד עם טפסים?

  7. 03:05

    יש לנו את הפוסט ואת הגט, הכל יוסבר מה ההבדל ביניהם, בינתיים בואו נשתמש עם המתודה פוסט, מתוד שווה פוסט, בואו ניתן שם לטופס שלנו, אם נרצה להתייחס אל הטופס, ניים שווה לוגין, לבינתיים זה מסוגל, בואו נעצב את הפילדסט שלנו עם אינליין סטייל, בואו נעצב, סטייל שווה, אוקיי, ככה, בורדר או לא זה קו המתאר

  8. 03:39

    צבע של קו המתאר נקודותיים עולמית 0.0.99 לא משנה כרגע מה זה הערך הזה זה צבע זה ייתן כרגע לבינתיים נזין את הערך הזה ו-with 2.18 בואו רק נראה את זה בחנות הווירטואלית שלנו אם יש משהו מסוים הנה זה כאן שימו לב זה מופיע לפני הטקסט וזה לא מה שאני רוצה אז בואו את הדיב הזה אני רוצה לזה ctrl x, כאן בעצם מגיעים כותרת, אני רוצה שהתופס יהיה לי זה הכותרת, לא כאן,

  9. 04:18

    אלא בצורה הזאת, אוקיי, בואו ניגש, אז הנה כאן הצבתי את הפילדסט, הנה פה בתוך המלבן, החלחל הזה, יופיעו כל השדות של התופס, אוקיי, לג'נד, נקרא, בואו נאמר שהלג'נד זה תופס, סליחה, תופס הרשמה אחור, הנה אתם רואים, טופס הרשמה, זה הלב, אוקיי, בתוך הפילד סט אנחנו עכשיו מתחילים להזין את הסדות, בואו נעשה את

  10. 04:53

    זה בעזרת טבלה, אוקיי, טבלה ב-HTML, טייבל, המאפיינים של טייבל הם כמובן תווית פתיחה וסגירה טייבל, גרים, עוד עזרה קטנה, אוקיי, בעיקרון טבלה מורכבת משורות וטייבל, אז בואו נעשה דבר כזה, CR וכמובן ישר נסגור את הטייבל רואו של טייבל

  11. 05:14

    רואו, TD, טייבל דאטה, אני מאמין שזה הצורך של טייבל, של TD, ובואו נעבוד עם דבר כזה. Label, תווית Label, for שווה, נרשום name, נרשום כאן שם רש, ונסגור את תווית הלבל.

  12. 05:33

    לאחר מכן נרשום put side שווה, וכמובן עם גרר רש, ו-name שווה, שימו לב, שימו לב, ה-Name פה זה בעצם השם של תיבת הקלט הזה, ל-User Name.

  13. 05:50

    המאפיין הזה, Name, הוא צריך להיות זהה למאפיין הזה שרשום פה ב-Fore, ב-Label. כי אז בעצם אנחנו מחברים בין התווית לתיבת הקלט.

  14. 06:00

    זה השימוש של ה-Fore, כדי ליצור חיבור, כן? Label, למי אתה עושה Label, תווית? אני עושה את זה ל-User Name. מי זה User Name? הנה, זה ה-Into Text הזה, זה השם ה-Into Text הזה.

  15. 06:11

    ה-Name שלו הוא אוקיי. בואו נסגור את ההשגה הזאת, בואו רק נראה את שם, בואו ניצור שני תאים אפשר להעתיק את כל תורת הקוד הזה, פשוט להבין קטניסי כאן זה יהיה input type word, ולא לשכוח, רשמנו בפור את הפספורט, גם כאן הוא רק נראה אוקיי, שימו לב, שדה סיסמה הוא בעצם גורם

  16. 06:48

    לנו שלא נראה את התווים שאנחנו מקלידים אבל, אבל, לעניות דעתי בתופס זה שפעם ראשונה אנחנו בעצם, אוקיי, בואו בואו נשאיר את זה ככה, בואו בינתיים נשאיר את זה ככה, אוקיי, בואו ניקח, נעתיק שוב פעם את השורות האלה ונמשיך הלאה עם ה...

  17. 07:06

    בואו נעשה דואר אלקטרופי מייל, איי, כאן דואר מייל, וכאן באי מייל, בפור, גם פה אי מייל השדה הבא שאנחנו נרשום הוא יהיה כתובת, אדרנט, תיק את זה ישר, גנין, ופייפ, וכאן, כתובת, צי, וי, קיי, טלפון, טלפון, פיין, פון, ואחרון חביב, טיים בשביל שדות הקלט, זה צ'ילדרנט, מספר ילדים, מספר ילדים, מספר, בואו נראה

  18. 07:47

    את התוצאה, בבקשה, שם משתמש, מאפ, תואר אלקטרוני, כתובת, פער ילדים, טלפון, אוקיי, שימו לב, כשאני עובר עם הטאב הוא עובר בסדר מסוים, תשמעו אני פה, הנה יש לי פה טאב שאני יכול לעבור איתו לצדד צדד.

  19. 08:06

    אוקיי, הסבר מה זה הדולר PHP סטייל. שימו לב, כאשר אנחנו בעצם נפעיל פה באקשן קובץ PHP, בוא נאמר סתם, רציתי להפעיל את הקובץ database.php אז הייתי רושם פה action שווה, בלי כמובן ה-php, הייתי רושם את שם הקובץ, התיקייה קודם כל כשהוא נמצא, בעד שם הכובד

  20. 08:31

    ואז לאחר שהייתי לוחץ על כפתור ה-Submit שעכשיו ניצור אותו הוא היה פונה לטופס הזה והטופס הזה היה יכול לזהות את כל הנתונים הללו של המשתמש עזים אבל ברגע שאני אומר לו את השורה הזאת Print PHP Cell מי בעצם יכיר את כל המשתנים הללו?

  21. 08:52

    הטופס שלנו, הטופס הזה, טופס האבא virtual shop.php איך אני מטפל? למה זה טוב? לדוגמה, כשאני רוצה לעשות ולידציה. אם אני עכשיו אפעיל קובץ PHP, יצא שוב על השרת, אז עוד פעם אני ניגש לשרת, מושך את הדף, נעשית שם ולידציה, רואה שמשהו לא טוב, זה חוזר אליי, עוד פעם צריך,

  22. 09:14

    לוקח זמן. למה? בואו נעשה ולידציה אצלנו פה, בקובץ של האבא. לא צריך שוב פעם לשלוח וכיוצא בזה. בואו נעשה ולידציה פה אצלנו. איך עושים? אוקיי, איך עושים?

  23. 09:26

    כך בואו כאן לאחרי html ניצור קובץ קוד סליחה לא קוד של psh תוסף אוקיי רק בואו ניגש לפה וניצור את כפתור הסבמט כן זה דבר כך ניצור עוד תשובה אחת תא אחד ניצור אותו כן ואינפול פאי ואינפול פאי אוקיי ניתן לו לשם של הכפתור value f ושם name שווה מהי סבמט בוא נקרא לזה

  24. 09:59

    לוגים אוקיי לוגים איזה בסדר אוקיי הדבר היחיד שעד עכשיו נתקלנו בו ב-PHP זה ה-PHP סלפס והסברנו ברגע שאנחנו נלחץ על להיכנס, הטופס הזה עצמו, סלפס זה עצמי, הוא עצמו, הטופס הזה יקבל את הנתונים כביכול אליו, מה שהמשתמש, איך אני רואה את הנתונים.

  25. 10:24

    קודם כל, דבר ראשון, כאשר אני לוחץ על להיכנס, אז כביכול הדף הזה שוב פעם מתרפא ואז בעצם יש לו את הנתונים הללו.

  26. 10:33

    עכשיו, איך אני שואל לדוגמה פה בדף הזה אם לחצתי על הכפתור סבנוי? איך אני יודע את זה? אז אני הולך ל-PHP, פה לקוד הזה בסוף, לאחר ה-HTL, ואני שואל פשוט דבר פשוט איף ככה, איז, כן, ומי, עכשיו נסתכל, דולר, פוסט, גריים, אה, גירש, גירש, גירים את השם שנתנו מי סדמית, לוגין סדמית לך, קח אותו, בואו רק ליד, אקו, אוקיי, אוקיי, מה זה המשתנה

  27. 11:07

    הזה, דולר פה? אז ככה, הערכים שהמשתמש הזין בתיבות הקלט נמצאים בתוך משתנה של הטרנזקציה ואמרנו שיש שני סוגים של טרנזקציה פוסט וגט לדוגמה כאן השתמשנו בטרנזקציה פוסט אין איך אני יודע כי אם אני אעלה פה לטופס אז אתם רואים פה את המתוד פוסט אז זה הטרנזקציה שאני משתמש בפוסט איך אני ניגש אל משתנה שנשמר בטרנזקציה של פופ אשור דולר מקף

  28. 11:38

    תחתון פותח גרשיים סוגריים מרובעות גרשיים וכאן לפנים אני שם את השם של חייבת קלט או של הכפתור עכשיו כאן מה אני אומר?

  29. 11:51

    is set, האם הוא עודכן, כן? הכפתור שלי, הוא ידפיס, אוקיי, אז כאן אני בודק אם הופעל כפתור השליחה בואו נראה שזה אכן עובר, בואו רק לפה, בינתיים בואו נרשום else, נרשום echo not ok ובעיקרון הדבר הראשון שיופיע לי זה not ok, למה? כי כשאני בעצם טוען את הטופס אז הוא כן מגיע בפעם הראשונה שאני קורא לשרת, לתופס, אז

  30. 12:16

    הוא כן יגיע לקוד הזה רק פה זה לא יהיה נכון, זה עדיין לא נלחץ, שהוא יבצע את זה אז את זה אנחנו נראה כרגע בהסתכלות רואים? שלח לי, אה?

  31. 12:27

    בואו רושם אוקיי, כי בעיקרון פה, בואו נעשה ככה העתק כי כבר לחצתי, בואו נסגור רגע את הדפדפן משום מה הוא אומר את זה בזיכרון שלו, בואו רק בשביל הדוגמה הראשונה והנה, רואים?

  32. 12:40

    ואם אני אעשה, ייכנס, אוקיי, בסדר? אז ככה בעצם אנחנו מזהים אם הייתה לחיצה על הסבמיט, איך? האם הופעל איזסט מהלוגינס סבמיט, הכפתור שלי?

  33. 12:55

    אוקיי, עכשיו שימו לב פה בשורת הכתובות, בואו לדוגמה נזין שם משתמש, אוקיי? נעשה איקנר, אוקיי? אנחנו רואים פה איזשהו פינוי בשורת הכתובת?

  34. 13:11

    בואו נעבור למתודה אחרת, אמרנו את זה, זה לא פוסט וזה גט, עכשיו שימו לב להבדל ש... שימו לב, במתודה של גט אני בעצם רואה את כל המשתנים שהמשתמש שלח עם הערכים שלהם.

  35. 13:28

    הנה, user name שווה משה, כמו שהזנתי, end, password שווה, אין לי שום ערך, end, אימייל וכאלה. אז זה בעצם נקראת מחוזת שאילתא. רואים, זה מציל לי סימן שאלה, מחוזת שאילתא.

  36. 13:40

    כאן יש לי את הערכים ואת המשתנים ואת המשתנה וצמוד לו ערך לפי מה שהמשתמש הביא. הנה, כאן יש לי עוד end, שוב פעם, משתנה נוסף עם ערך, כרגע אין פה ערך. אז ההבדל בעצם, כן, בין המתודה גט לפוסט, שבגט אני כן יכול לראות את הנתונים בשורת הכתובת, כן, אבל בפוסט אני לא רואה את הנתונים בשורת

לקורס המלא: קורס PHP אונליין בעברית

ההרצאה הקודמת: קורס PHP - הרצאה 2

ההרצאה הבאה: קורס PHP - הרצאה 4

הרצאות קשורות מקורסים אחרים

  • סוס טרויאני בהעלאת קבצים לאתר - PHP - אבטחה ברמה נמוכה - DVWA Low

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס פייתון - Python