תכנית לוח שנה של פעילויות אישיות - נתוני טפסים חסרים בתוכנית PHP
עד כה בתוכנית לוח השנה של פעילויות אישיות כתבנו את הקוד לאפשרות שטופס האינטרנט של הזנת הפעילות טרם הוגש ($ _POST ['שלח'] ריק). אם זה המקרה, התוכנית תאתחל את המשתנים ל- null רגע לפני שיחת הפונקציה שתציג את הטופס בדפדפן האינטרנט בפעם הראשונה. כעת נקודד לאפשרות שהטופס הוגש ($ _POST ['שלח'] אינו ריק). אם זה המקרה, ישנן שתי אפשרויות לשלב הבא.
  1. אם הטופס הוגש והמשתמש לא סיפק את כל הנתונים הדרושים, התוכנית תציג שוב את הטופס בדפדפן האינטרנט יחד עם הודעת שגיאה.

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

act_title
act_month_1
act_day_1
act_year_1
act_hour_1
אופציונאלי

act_desc
act_month_2
act_day_2
act_year_2
act_hour_2
act_status

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

$ error_message = "לא";

אם (ריק ($ _ POST ['act_title']))
{
$ error_message = "כן";
$ pass_act_title = "";
}
else {$ pass_act_title = $ _POST ['act_title']; }


if (ריק ($ _ POST ['act_desc'])) {$ pass_act_desc = ""; }
else {$ pass_act_desc = $ _POST ['act_desc']; }
. . .
. . .

מה עושה קוד זה? התוכנית תגדיר תחילה את המשתנה $ error_message ל- לא. בשלב הבא הוא יבחן כל אחד מאחד עשר שדות קלט הנתונים שהועברו מהטופס. בקוד שלמעלה אנו בודקים את שני המשתנים הראשונים act_title ו- act_desc. עם זאת, הקוד כולו יבדוק גם עבור 9 המשתנים האחרים. יש שלוש תוצאות אפשריות.

  1. אם התוכנית נתקלת בנתונים חסרים מ- a נדרש שדה קלט (act_title), הוא יגדיר את משתנה הפרמטר המתאים לאפס ואת משתנה $ error_message ל כן.

  2. אם התוכנית נתקלת בנתונים חסרים מ- אופציונאלי שדה נתונים (act_desc), הוא יגדיר את משתנה הפרמטר ל- null אך לא הגדר את $ error_message ל כן.

  3. אם נתונים עבור שדה קלט לא חסרים, הם יבצעו את ההצהרה אחרת. זה יגדיר את משתנה הפרמטר לערך של המשתנה $ _POST [''] המתאים ומשתנה $ error_message יהיה לא להיות מושפע.
אם התוכנית עוברת את הבדיקה עבור כל אחד עשר המשתנים $ _POST ומשתנה $ error_message מוגדר עדיין ל- לא, זה אומר לתוכנית שלא חסרים נתונים דרושים. במקרה זה, הנתונים יעובדו בהמשך ויועברו למסד הנתונים. עם זאת, אם המשתנה $ error_message הוגדר כ כן, פירוש הדבר שלפחות בשדה חובה אחד יש נתונים חסרים. התוכנית תתקשר שוב לפונקציה Activity_Entry_Form. מכיוון שכבר הגדרנו את ערך משתני הפרמטרים ל null (עבור נתונים חסרים) או לערך של המשתנה $ _POST המתאים, אנו מוכנים להעביר אותם באמצעות שיחת הפונקציה.

אם ($ error_message == "כן")
{
Activity_Entry_Form ($ pass_act_title, $ pass_act_desc,
$ pass_act_month_1, $ pass_act_day_1, $ pass_act_year_1,
$ pass_act_hour_1, $ pass_act_month_2, $ pass_act_day_2,
$ pass_act_year_2, $ pass_act_hour_2, $ pass_act_status);
}
אחרת {מעבד נתונים נוסף}
הערה--החץ מציין שהקוד עטוף בשורה שנייה והוא אמור להיות הכל בשורה אחת.

השלב הבא יהיה לבצע התאמות לפונקציה Activity_Entry_Form לטיפול בהודעת השגיאה החדשה.

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