יום חמישי, 27 באפריל 2023

27.4.23 יום ה' (חוף, אשכול ב', שעה 3) - שיעור שני ב- JS

      בכיתה

1. קובץ JS חיצוני
    * היתרון בקובץ JS חיצוני, שניתן יהיה לגשת לפעולות שבו מכל דף באפליקציה (האתר שלנו).
    * השלבים ביצירת דף חיצוני עבור קוד JS:
      קליק ימני על שם הפרויקט (האתר) -->
      Add new Item... -->
      בוחרים ב- JavaScript File -->
      נותנים שם לקובץ הג'אווה סקריפט החיצוני שאתם יוצרים --> (נניח JS1)
      לוחצים על הכפתור Add.

2. כתיבת פעולות בדף החיצוני שיצרנו
    * כתבו בדף החיצוני פעולות JS אליהן תרצו יכולת גישה מדפים אחרים באתר.

3. קישור מדף מסוים לקובץ ה- JS החיצוני שלכם
    * נוסיף באזור ה- Head של הדף את התגית הבאה:        









4
.
 זימון פעולה הנמצאת בקובץ JS חיצוני
    * מעתה תוכלו לזמן פעולות הנמצאות בדף החיצוני מתוך הדף הנוכחי.
    * לדוגמה, נניח שאנו נמצאים בדף Default.aspx בו קיים הטופס שהמשתמש ממלא.
    
* מתוך כותרת הטופס שבדף Default.aspx, נפנה את האירוע onsubmit כך שיזמן את פעולת התקינות
      שלנו ששמה 
()validUsername2. פעולה זו נמצאת בקובץ החיצוני JS1.js. בזכות הקישור לקובץ
      החיצוני, דף זה ימצא את הפעולה ויריץ אותה.

















5
.
 זימון פעולה הכתובה בדף הנוכחי באזור ה- Head
    אם באזור ה- Head שלנו יצרנו פעולה או פעולות JS הנמצאות רק בדף הנוכחי ולא בקובץ החיצוני,
      אזי ניתן יהיה לזמנן מתוך הדף הנוכחי.
   
 * במידה ויצרנו פעולה הנמצאת בדף זה, למשל הפעולה ()validUsername2, והיא קיימת בשם זה
          באותה החתימה גם בדף החיצוני, הרי במידה ונזמן פעולה זו מתוך הדף (למשל באמצעות onsubmit
          הנמצאת בכותרת הטופס), הרי שהתוכנית תעדיף להריץ את הפעולה הקרובה יותר, כלומר
          הפעולה בעלת החתימה הזהה, זו שכתובה בדף הנוכחי.
       
 * במידה והפעולה ()validUsername2 נמצאת אך ורק בדף הנוכחי, היא תורץ באופן תקין.
       
 * במידה והפעולה ()validUsername2 נמצאת אך ורק בקובץ החיצוני JS1, היא תורץ באופן תקין.




6. הפעולות אותן ראינו בשיעור
       * ראינו פעולה אחת בלבד: הפעולה ()validUsername2.
       * הפעולה מכילה 3 תנאים "שליליים", כל תנאי שמתקיים גורם להחזרת הערך false.
       * רק אם 3 התנאים לא מתקיימים, הפעולה מחזירה true.
       * יצרנו פעולת עזר עצמאית בשם isSpecialLetter וזימננו אותה מתוך התנאי השלישי.
       * סיכום: אם הפעולה ()validUsername2 מחזירה false, סימן הטופס לא מולא באופן תקין, ולכן
         לא יישלח לשרת. על המשתמש לתקן את הערכים שמילא בטופס בהתאם להודעות השגיאה שקיבל.

7. מה עליכם לעשות בפרויקט שלכם?
    * עליכם לכתוב פעולת תקינות בשם ()RegisterValidation עבור טופס ההרשמה לאתרכם.
    * על הפעולה להחזיר true אם מתקיימים התנאים בלפחות 2 מהמקבצים 1-4 שלפניכם:
       (אין צורך לתכנת מעבר לשני תנאים מהמבחר שלפניכם)
       1) שם המשתמש מתחיל באות גדולה, שאר האותיות חייבות להיות קטנות, אסור סימנים מיוחדים כלל.
       2) סיסמת המשתמש מכילה 5 תווים לפחות, האות הראשונה גדולה, חובה לפחות סימן מיוחד אחד.
       3) מספר הטלפון שמילא המשתמש חייב להכיל את התו '-' (מקף). משמאל למקף מספר בן שתיים או
           שלוש ספרות בלבד, כאשר הספרה הראשונה היא 0. מימין למקף חייבות להופיע 7 ספרות.
       4) שנת הלידה מכילה מספר בן 4 ספרות בדיוק. שנת הלידה המינימלית המותרת היא 1900
           והמקסימלית היא 2100. המשתמש בהכרח בחר את מינו (זכר או נקבה). במידה והמשתמש לא בחר
           באחת משתי האפשרויות הללו, יוחזר false.

8. מענה על השאלות של עדן כאן ודפי DB שחולקו בכיתה:
    הדפים FirstDB -  Default, Login, LoginCheck כאן
   
הדפים Register/RegisterCheck  כאן
   
הדפים להצגת טבלת המשתמשים כאן
   
הדפים Update/Delete כאן

לבית (למפגש הבא שלנומבדק ש.ב ב- Javascript
      לסיכום שני השיעורים בהם למדנו נושא זה

1. קראו את סעיף 650 בדף 'קישורים' - פעולות על משתנים המכילים טקסט.

בשיעור הבא 
1. מענה על שאלות בנושא כתיבת פעולות ב- JS.


                     בהצלחה!

יום חמישי, 20 באפריל 2023

17.4.23 יום ב', (חוף, אשכול ב', שעות 3-4) - שיעור ראשון ב- JS

     בכיתה

1. מדוע Javascript?
    * שפה המיועדת לריצה על דפדפנים בלבד.
    * נועדה לביצוע בדיקות תקינות בעת מילוי טופס ובטרם שליחתו בפועל לשרת.
    * קוד תכנותי לצורך שינויים עיצוביים ואפקטים נוספים.
    * היררכיית עצמים בשפה: חלון, תחתיו אזור ה- Body ותחתיו כל אלמנט אחר, כמו התגית p.
2. שילוב קוד JS בדף HTML
    * השילוב ייעשה באמצעות תגית הפתיחה <"script type="text/javascript> ותגית הסגירה <script/>.
    * ניתן לשלב קוד JS באיזור ה- Head או באיזור ה- Body.
      בהמשך נראה כי ניתן ליצור קובץ JS נפרד, כמו שיצרנו קובץ CSS נפרד,
      וזאת לשם יצירת קוד אותו ניתן יהיה לזמן מכל דפי האתר.
3. תכנות ראשוני בשפה
    * ()window.alert        - הקפצת חלון הודעה.
    * ()document.write   - כתיבה לתוך הדף.
    * document.bgColor  - קביעת צבע הרקע של הדף.
    * var                          - הטיפוס הכללי של כל המשתנים.
    * ()window.prompt   - לצורך קלט מהמשתמש.
    * parseInt                  - המרת קלט מספרי לערך מספרי.
    * ()getElementById - גישה לתגית בדף על-פי שמה.
    * יצירת עצם מטיפוס Date.
    * הדפסת גרסאות ToString של עצם מטיפוס Date.
    * חילוץ רכיבים מעצם מטיפוס Date.
    * מתן התכונה id לאלמנט הנמצא בדף, למשל <"p id="demo>.
    * הוספה או החלפה של תוכן הנמצא בתגית לה ניתן שם.
    * שימוש בהתניה באמצעות הפקודה if.

ראו קוד סיכום השיעור כאן.

לבית (ליום ב' הבא, ה- 20.3.2023 מבדק ש.ב ב- Javascript בשיעור הבא בו ניפגש
1. העתיקו את קוד הדוגמה לאתר תרגול שתצרו בנושא JS וודאו שאתם מבינים את פלט הריצה.
2.
 וודאו כי אתם יודעים להשתמש בכל הפקודות שלמדנו היום.

בשיעור הבא 
1. כתיבת פעולות לצורך בדיקת תקינות שדות הטופס לפני שליחתו לשרת.


                     בהצלחה!

יום שבת, 18 במרץ 2023

2.2.23 יום ה' (חוף, אשכול ב', שעה 3) - הדפים DB, DBUsers, DBUsersTable

תערוכת ציורים שצוירו במהלך השיעור על-ידי הצייר א.סרור     


בכיתה







1. הנושאים שלמדנו לאחרונה
    * בדיקה האם המשתמש מילא את הטופס.
    * העצם Application.
    * בניית טבלה לתוך מסד-נתונים.
    * עבודה עם עצמים הקשורים בקשר שבין האפליקציה למסד-הנתונים.
    * מבנה בסיסי של שאילתת שליפה בשפת SQL.
    * הדפים Defaule, Login, LoginCheck, Home, Logout

2. היום בשיעור
    * פרויקט הדגמה לכניסה לאתר עם אזור למשתמשים רשומים.
    * הדפים DB, DBUsers, DBUsersTable.   

        ------ DB.aspx (דף לרשומים) - תפריט כניסה לנתונים מתוך ה- DB ------
        * כניסה לטבלת משתמשים לא מעוצבת.
        * כניסה לטבלת משתמשים מעוצבת.       

        ------ DBUsers.aspx (דף לרשומים) - תצוגת טבלת משתמשים שאינה מעוצבת ------
        * כיצד שומרים את נתוני הטבלה בקובץ טקסט (לא מעוצב).       

        ------ DBUsersTable.aspx (דף לרשומים) - תצוגת טבלת משתמשים מעוצבת ------
        * כיצד שומרים את נתוני הטבלה בקובץ טקסט (מעוצב).

לבית (ליום ב' הבא, ה- 20.3.2023
1. חזרו על הדפים שקיבלתם בשיעור והכינו שאלותיכם במידה ויש.
 
בשיעור הבא 
1. מסד נתונים - DataBase.

===
                     בהצלחה!

יום שלישי, 14 במרץ 2023

13.3.23 יום ב', (חוף, אשכול ב', שעות 3-4) - מסד-נתונים: הדפים Default, Login, LoginCheck, Home, Logout

    בכיתה

1. הנושאים שלמדנו לאחרונה
    * בדיקה האם המשתמש מילא את הטופס.
    * העצם Application.
    * בניית טבלה לתוך מסד-נתונים.
    * עבודה עם עצמים הקשורים בקשר שבין האפליקציה למסד-הנתונים.
    * מבנה בסיסי של שאילתת שליפה בשפת SQL.
2. היום בשיעור
    * פרויקט הדגמה לכניסה לאתר עם אזור למשתמשים רשומים.
    * הדפים Default, Login, LoginCheck, Home, Logout.
    ------ Default.aspx (דף ציבורי) - דף הבית הציבורי ------
    * הצגת הדף הציבורי.
    * הצגת קישורים לדפים ציבוריים נוספים.
    * קישור לדף Login.
    ------ Login.aspx (דף ציבורי) - טופס כניסה עבור משתמשים רשומים ------
    * הצגת טופס כניסת משתמשים רשומים (שם, סיסמה, שלח).
    * במידה ובוצעה הטענה חוזרת של הדף:
      אם התבצעה כניסה לדף זה מתוך הדף LoginCheck, כלומר הוקלדו שם+סיסמה שגויים
      (שלא נמצאים בבסיס הנתונים), שמירת הודעת השגיאה המגיעה מ- LoginCheck במשתנה #C
      והצגתה בתחתית הטופס.
    * קישור לדף Default (חזרה לדף הבית הציבורי).    
    ------ LoginCheck.aspx (דף ציבורי) - דף מעבר, לא מוצג בפני הגולש ------
    * בדיקה והגנה: האם התבצעה כניסה כשרה לדף (דרך הטופס) או
      כניסה על-ידי האקר (באמצעות הקלדה של שם הדף בשורת הכתובת של הדפדפן).
    * שאיבה ושמירה של נתוני שדות הטופס לתוך משתני #C.
    * התחברות למסד-הנתונים.
    * שאילתה: שליפת ערך ה- userID של המשתמש, על סמך שמו וסיסמתו כפי שהוקלדו בטופס.
    * הרצת השאילתה המחזירה ערך אחד בלבד מתוך שתי אפשרויות:
       - במידה וקיים משתמש כזה בבסיס הנתונים: יוחזר ערך ה- userID של המשתמש הרשום.
          - שמירת ערך ה- userID של המשתמש בסשן ["Session["id.
          - הפניה לדף Home (דף הבית של המשתמשים הרשומים).
       במידה ולא-קיים משתמש כזה במסד-הנתונים: יוחזר הערך null.
          - הפניה הגולש בחזרה לדף Login, עם הודעת שגיאה.
            (העברת שדה וערכו באופן תכנותי מדף לדף לצורף העברת הודעת שגיאה).      
    ------ Home.aspx (דף לרשומים) - דף הבית לרשומים ------
    * בדיקת אבטחה: האם התבצעה כניסה ע"י האקר או ע"י משתמש רשום.
    * הצגת תפריט מורחב - עבור משתמשים רשומים, כולל קישור לדף Logout.
    ------ Logout.aspx (דף לרשומים) - דף מעבר, לא מוצג בפני הגולש ------
    * מחיקת כל זוגות הנתונים של הסשן.
    * הפניה בחזרה לדף הכניסה הציבורי Default.

לבית (ליום ב' הבא, ה- 20.3.2023
1. 

בשיעור הבא 
1. מסד נתונים - DataBase.


                     בהצלחה!

יום ראשון, 5 בפברואר 2023

2.2.23 יום ה' (חוף, אשכול ב', שעה 3) - יצירת מסד נתונים עם טבלה אחת

    בכיתה

1. הנושאים שלמדנו לאחרונה בנושא בסיס נתונים
    א. מושגים 
        מסד נתונים טבלאי: המודל בו אנו משתמשים במסד הנתונים שלנו.
                                    במודל זה מסד הנתונים בנוי מטבלאות.
        טבלה:   מכילה מידע על ישות מסוימת. נדגים הישויות שלהלן על אתר הקניות אמזון:
                    * טבלת משתמשים הרשומים לאתר.
                    * טבלת ספקים שמהם האתר רוכש את המוצרים.
                    * טבלת מוצרים אותם האתר מציע למכירה. 
        רשומה:  יחידה בסיסית (שורה בטבלה), המורכבת ממספר שדות בעלי קשר הדוק ביניהם.
                     מכלול השדות המרכיבים פריט מידע מסוים.
        שדה:     יחידת הנתונים הקטנה ביותר בבסיס הנתונים (ת.ז, שם, טלפון, עיר...).
    ב. מצגת מבוא 
        מצגת ראשונה, שקפים 1-13 כאן.
    ג. תוספות לאזור ה- using
        הוספת מתחמי שמות נוספים המשמשים לעבודה מול בסיס נתונים.
    ד. העצם SqlConnection
        לצורך חיבור האתר שלנו למסד הנתונים שלנו) כאן.
    ה. התכונה ConnectionString
        מכילה מחרוזת ההתחברות לבסיס הנתונים. מחרוזת זו כוללת נתונים כמו כתובת בסיס הנתונים בשרת.

2. חדש: יצירת מסד נתונים הכולל טבלה אחת    
    ראו הנחיות ליצירת מסד נתונים חדש עם טבלה אחת בדף 'קישורים' סעיף 510.

לבית (ליום ה' הבא, ה- 9.2.2023
1. קראו את ההנחיות ליצירת מסד נתונים חדש עם טבלה אחת בסעיף 510.
2. בנו מסד נתונים חדש בשם MyDB הכולל 3 טבלאות:
    א. טבלת משתמשים בשם UsersTbl המכילה את השדות הבאים:

         ID - ת.ז. שדה מפתח. מקבל ערך באופן אוטומטי בעת הוספת רשומה חדשה לטבלה.
                הערך הראשון יהיה 1, כל ערך נוסף יהיה גדול ב- 1 מן הערך הקודם.
         FirstName - שם פרטי.                     מסוג nvarchar(25).
         LastName - שם משפחה.                 
מסוג nvarchar(25).
         Username - שם המשתמש.              מסוג varchar(25).
         Password - סיסמה.                         מסוג 
varchar(35).
         City - עיר מגורים.                             מסוג int (מספר בטבלה אחרת).
         PrePhone - קידומת מספר הטלפון.    מסוג int (מספר מטבלה אחרת).
         Phone - מספר הטלפון.                     מסוג int.
         Email - כתובת מייל.                          מסוג (varchar(50.
         Gender - מין (ז' / נ').                        מסוג bit.    
         BirthDate - תאריך לידה                    מסוג Date.

    ב
טבלת ערים בשם CityTbl המכילה את השדות הבאים:
         ID -שדה מפתח. מקבל ערך באופן אוטומטי בעת הוספת רשומה חדשה לטבלה.       
         CityName - שם העיר.                      מסוג (nvarchar(25.

    גטבלת קידומות של מספרי טלפון בשם PrePhoneTbl המכילה את השדות הבאים:
         ID -שדה מפתח. מקבל ערך באופן אוטומטי בעת הוספת רשומה חדשה לטבלה.       
         PrePhone - הקידומת עצמה כמחרוזת. מסוג (varchar(4.
3. הקלידו לפחות 3 רשומות בכל טבלה (לפחות 2 אנשים, לפחות 2 ערים, לפחות 2 קידומות).

בשיעור הבא 
הדגמה
1
.   פתיחת החיבור למסד הנתונים באמצעות ()con.Open.
2.   בדיקת תוקף מצב החיבור למסד הנתונים con.State = ConnectionState.Open.
3.   יצירת עצם SqlCommand בשם cmd כך: ()SqlCommand cmd = new SqlCommand.
4.   קישור של עצם הפקודה לעצם החיבור cmd.Connection = con.
5.   קביעת סוג הפקודה CommandType = CommandType.Text.
6.   קביעת טקסט הפקודה ;"...cmd.CommandText = "SELECT id FROM UsersTBL WHERE.
7.   שמירת תוצאת הפקודה: ;()object obj = cmd.ExecuteScalar.
8.   שסגירת החיבור למסד הנתונים באמצעות ()con.Close.
9.   הצגת הודעת שגיאה לגולש במקרה של תקלה בהתחברות למסד הנתונים.
10דוגמאות:

      טבלאות לדוגמה
      נבנתה טבלת חברים. שם הטבלה: Member. שמות השדות: בראש העמודות, כל רשומה: שורה.

שאילתות שליפה / SELECT

         הצגת כל עמודות הטבלה
         בחר את כל שדות הטבלה Instructor והצג את כל הרשומות שבה: 
         
         הצגת עמודות ספציפיות
         בחר את השדות (העמודות) Model & Colour בלבד מטבלת Vehicle
         והצג את כל הרשומות שבה:

         קריטריון
         1. בחר את השדות FirstName, LastName & Phone בלבד מטבלת Member
             והצג אך ורק את הרשומות העומדות בקריטריון הבא: שם משפחה = Jones: 

 
2. בחר את השדות Description & Fee בלבד מטבלת Course 
    והצג אך ורק את הרשומות העומדות בקריטריון הבא: עלות נמוכה מ- 25:  
         3. בחר את כל השדות מטבלת Member והצג אך ורק את הרשומות העומדות בקריטריון הבא:
             שם משפחה שונה מ- Marr:
  
         4. בחר את כל השדות מטבלת Member והצג אך ורק את הרשומות העומדות בקריטריון הבא:
             שם פרטי שווה ל- Emily וגם שם המשפחה שווה ל- Marr:
  


         




סוגי נתונים



שאילתות הוספה / INSERT





שאילתות עדכון / UPDATE






 

שאילתות מחיקה / DELETE




                     


בהצלחה!

יום שלישי, 31 בינואר 2023

23.1.23 יום ב', (חוף, אשכול ב', שעות 3-4) - DB מבוא למסד נתונים

   בכיתה

1. הנושאים שלמדנו לאחרונה
    
* שיבוץ ביטוי ASP בדף התצוגה
.
    * העיקרון של IsPostBack.
    * הפרדת משימות שונות באמצעות כתיבת פעולות ייעודיות    .
    * "שאיבת ערכים" משדות הטופס למשתני #C.
    * האירוע Page_Load.
    * המרת נתון טקסטואלי (המגיע מהטופס) לנתון מספרי באמצעות int.Parse.
    * העצם Session.
    * בדיקה האם המשתמש מילא את הטופס.
    * העצם Application.

2. מבוא למסדי נתונים
    ראו המצגת כאן.
    * מסד נתונים מורכב מטבלה אחת לפחות (משתמשים, מוצרים, ספקים, ערים...).
    * שורה בטבלה נקראת רשומה (למשל כל הפרטים על משה כהן, כל הפרטים על מוצר מסוים).
    * רשומה מורכבת משדות (ת.ז, שם-פרטי, שם-משפחה, טלפון...).
    * הוספת שני מתחמי-שמות לאזור ה- using.
    * יצירת עצם מטיפוס SqlConnection.
    * השמת מחרוזת ההתחברות בתכונה ConnectionString.
    * ראו הקוד שכתבנו בשיעור כאן.
 

לבית (ליום ב' הבא, ה- 6.2.2023) יועלה עד יום ו' הקרוב
1. קראו 

בשיעור הבא 
1. מסד נתונים - DataBase.


                     בהצלחה!

יום ראשון, 22 בינואר 2023

23.1.23 יום ב', (חוף, אשכול ב', שעות 3-4) - ASP: ניהול עצמי Session, עצם Application,

  בכיתה

1. הנושאים שלמדנו לאחרונה
    
* שיבוץ ביטוי ASP בדף התצוגה
.
    * העיקרון של IsPostBack.
    * הפרדת משימות שונות באמצעות כתיבת פעולות ייעודיות    .
    * "שאיבת ערכים" משדות הטופס למשתני #C.
    * האירוע Page_Load.
    * המרת נתון טקסטואלי (המגיע מהטופס) לנתון מספרי באמצעות int.Parse.
    * העצם Session.
    * בדיקה האם המשתמש מילא את הטופס.

2. ניהול עצמים מהטיפוס Session
    ראו בספר עמ' 127-128
    * עמ' 127 - שימוש בתכונה Timeout.
    * עמ' 128 - שימוש בפעולה Abandon.

3. ניהול מצב היישום ואחסון נתוני היישום באמצעות העצם Application
    ראו בספר עמ' 128-146
    * עמ' 128 - ניהול מצב היישום ומידע - ניהול ואחסון מידע המשותף לכלל הגולשים ולכלל דפי האתר.
    * עמ' 129-135 - מונה המבקרים באתר.
    * עמ' 135-136 - כניסה במקביל של כמה משתמשים לאתר. דוגמת קוד כאן. ההסברים כאן.
    * עמ' 138-146 - כניסה מאובטחת ושימוש בסיסמה. 
דוגמת קוד כאן.
                             שימו לב: שמו של דף הבית הוא index.aspx.

לבית (ליום ב' הבא, ה- 30.1.2023)
1. קראו 

בשיעור הבא 
1. מסד נתונים - DataBase.


                     בהצלחה!

יום שישי, 6 בינואר 2023

5.1.23 יום ה' (חוף, אשכול ב', שעה 3) - Exception, Session, get/post

 בכיתה

1. הנושאים שלמדנו לאחרונה
    
* שיבוץ ביטוי ASP בדף התצוגה
.
    * העיקרון של IsPostBack    
    * הפרדת משימות שונות באמצעות כתיבת פעולות ייעודיות    
    * "שאיבת ערכים" משדות הטופס למשתני #C.
    * האירוע Page_Load
    * המרת נתון טקסטואלי (המגיע מהטופס) לנתון מספרי באמצעות int.Parse.

2. שימוש ב- try ו- catch
    ראו בספר עמ' 105-106.
    המטרה: תפיסת חריגים (ערכים אסורים, אותיות או תווים אסורים וכד').
    
כאשר קיים חשש לתעופת האפליקציה האינטרנטית שבנינו, נוכל לעטוף הקוד המועד לפורענות
    בבלוק try. אם הקוד יחזיר שגיאה, בלוק ה- catch יתפוס אותה ויבצע את הקוד הכתוב בו.
    חריגה (Exception) היא אירוע הנוצר כאשר יש שגיאה בביצוע ההוראות שבבלוק ה- try.
    כאשר נוצר אירוע חריגה, הטיפול מועבר אל ההוראות הכתובות בבלוק ה- catch.
    לדוגמה: נרצה לבדוק מהו אחוז ההימור שהקליד המשתמש לשדה המתאים בטופס.
    אם נקלט ערך שגוי (שאינו מספר שלם), נרצה שאחוז ההימור יהיה 0.

3.  אחסון נתוני המשתמש בעצם Session
     
ראו בספר עמ' 114-118.
     העצם Session מנהל את נתוני המשתמש באמצעות זוגות נתונים (תכונה: ערך, תכונה: ערך...).
     שם התכונה הוא מחרוזתי. ערך התכונה יכול להיות כל דבר, כולל הפניה לעצם אחר.
     יתרונו בשמירת ערכים בעת מעבר בין דפים. משך חייו כל עוד האתר רץ.

4.  שליחת נתוני הטופס בשיטת get או בשיטת post
     
ראו בספר עמ' 84-92.
     כאשר הטופס נשלח בשיטת get, ניתן לראות את זוגות הנתונים הנשלחים לשרת בשורת הכתובת
     של הדפדפן. הדבר מומחש בעת כתיבת מלות חיפוש בשדה הטופס של גוגל. כאשר שולחים
     את הטופס, ניתן לראות בשורת הכתובת את מלות החיפוש שהקלדתם.
     שיטת post מאובטחת יותר (לא לגמרי). הנתונים הנשלחים לא מוצגים בשורת הכתובת של הדפדפן.
     בנוסף, כמות התווים שניתן לשלוח בשיטה זו בלתי מוגבלת.
     חילוץ נתונים שנשלחו מהטופס בשיטת get מתבצע באמצעות Request.QueryString.
     חילוץ נתונים שנשלחו מהטופס בשיטת post, מתבצע באמצעות Request.Form.

לבית (ליום ב' הבא, ה- 9.1.2023)

1. קראו אודות "תכנות חסר מצב".
    
ראו בספר עמ'  111-115.
2. תרגיל - game4
     קראו ובצעו התרגיל, החל מעמ' 115.
3. תרגיל - game4a
     קראו ובצעו התרגיל, החל מעמ' 120.   

בשיעור הבא 
המשך asp.net

1שימוש בעצם מטיפוס Session לצבירת ניקוד המשתמש (עמ' 118-126).
2ניהול עצמים מטיפוס Session (עמ' 127-128).
3בדיקת מצבי שגיאה בהמרה למספר (עמ' 105-106).
4הפניה לדף אחר (עמ' 107-109).


                     בהצלחה!

יום שישי, 23 בדצמבר 2022

19.12.22 יום ב', (חוף, אשכול ב', שעות 3-4) - ASP: שאיבת נתון מהטופס למשתנה #C, בדיקה האם מדובר בטעינה שנייה ואילך של הדף. ש.ב לשיעור הראשון שאחרי חנוכה

  בכיתה

1. חזרה
   
* שיבוץ ביטוי ASP בדף התצוגה
.
    * העיקרון של IsPostBack    
    * הפרדת משימות שונות באמצעות כתיבת פעולות ייעודיות    
    * "שאיבת ערכים" משדות הטופס למשתני #C.
    * האירוע Page_Load
2. שאיבת נתון משדה טקסט של הטופס
    העברת נתונים מהלקוח לשרת, מתבצעת כאשר הלקוח מקליד כתובת ומבקש לגלוש אליה,
    או כאשר הלקוח שולח טופס. 
    השרת מקבל את נתוני הטופס באמצעות העצם Request. 

    העברת נתונים מהשרת ללקוח מתבצעת באמצעות העצם Response.
    חשוב לדעת שכל שדות הטופס הם מטיפוס מחרוזת (string).
    אז מדוע אנו זקוקים "לטכניקת שאיבת נתוני הטופס?
    כיוון שנתוני הטופס שמורים בפורמט של html ואילו הקוד הדינאמי שלנו נכתב בשפת #C.
    חזרה על הדוגמה שראינו בכיתה:
    בטופס שלנו היה שדה בשם userName, והמשתמש הקליד בו את שמו Ran.
    כדי לשאוב את תוכן השדה, על המשתמש ללחוץ על הכפתור 'שלח'.
    נשלח גם אוסף (רשימה בשם QueryString) של זוגות נתונים המייצגים את תוכן הטופס.
    במקרה זה יגיע, בין היתר, גם הזוג הזה: "userName="Ran.    
    מה מגיע משדה שהוא כפתור רדיו?
    שם שדה המין (gender) מורכב משני רכיבים, שניהם כפתורי רדיו שהוגדרו כך:
    male
    <"input type=radio" name="gender" value="1> 
    female
    <"input type=radio" name="gender" value="2> 
    בשונה מערך של שדה טקסט רגיל, בו הערך נקבע בהתאם למה שהקליד המשתמש,
    בשדה רדיו, הערך הוא מה שכתוב בשדה value של אותו רכיב רדיו.
    כסוג של מקרא עבור המשתמש, נכתבה בטופס בסמוך לכפתור הרדיו המייצג 'זכר', המלה male.
    ליד כפתור הרדיו המייצג 'נקבה' הופיעה המלה female.
    מלים אלו לא שייכות להגדרת הכפתור, שכן הן כתובות מחוצה לו, מחוץ ל- <  ... >.
    מה ששייך הוא הערך של הפרמטר value, ולכן אם המשתמש בחר בכפתור זכר,
    יגיעו זוג הנתונים: 
"gender="1.
    כלומר, בצד שמאל של ה- '=' שם השדה, למשל userName/gender
    ומצד ימין של סימן ה- '=' ערך השדה,  למשל "Ran"/"1".
    שימו לב שהערכים המגיעים מהטופס הם תמיד בגרשיים,
 תמיד מחרוזתיים.    

3.  בדיקה האם מדובר בטעינה השנייה ואילך של הדף
     
חשוב! ראו סיכום הדברים שלמדנו בשיעור במצגת כאן.

לבית (ליום ב' הבא, ה- 26.12.22)

1. ודאו כי סיימתם שיעורי הבית הקודמים
   
ראו בפוסט מתאריך 14.12.22.
2. תרגיל - קביעת שיטת הניקוד של המשחק (game2b)
     קראו והבינו הכתוב בעמ' 95-102.
3. בצעו את תרגיל game2b
    ובו כל הקוד, ככתוב בעמ' 95-102.
    כך ייראה הדף שלכם:
    הדף יכלול את הוראות המשחק, הצגה של בחירת שיטת משחק ותוצאות ההגרלה.
    


    


































תוכלו לעצב את game2b כך שהוראות המשחק ותוצאותיו יימצאו בדפים נפרדים:















בשיעור הבא 
המשך asp.net
1. המרת נתונים (עמ' 102-105).
2. בדיקת מצבי שגיאה בהמרה למספר (עמ' 105-106).
3. הפניה לדף אחר (עמ' 107-109).


                     בהצלחה!