בולנט - דברים מיוחדים...     פרוטו - בניית אתרים

Israeli ASP Organization

ארגון ה-ASP הישראלי

מאמרים/דוגמאות קוד
קישורים
ספרות
חיפוש כללי:

חפש!
כלליHTMLASPASP.NETSQLמסדי נתוניםJavaScriptXML * XSLDHTML * CSSעיצוב וגרפיקהשרתיםComponentsפרסום ושיווקקידום אתריםקופירייטינגPHP
פרסומת
דף ראשי מדורים דרושים הרשמה למועדון אודותינו צור קשר
מיקום: מאמרים ודוגמאות קוד > ASP > טפסים

טפסים וערכי שדות

בכדי לקבל מידע מטפסים, יש להשתמש באובייקט Request

דוגמא לטופס פשוט:
<form method="get" action="form_handler.asp"> First Name: <input type="text" name="fname"><br> Last Name: <input type="text" name="lname"><br> <input type="submit" value="Send"> </form>
ישנן שתי דרכים לקבל מידע מטופס: פקודת ה-Request.QueryString ופקודת ה-Request.Form

Request.QueryString

פקודת ה-Request.QueryString אוספת את הערכים מהטופס בצורת טקסט המידע שנשלח מטופס בשיטת ה GET הוא נראה לעיני כל הגולשים (בשורת הכתובת). כאשר אנו שולחים את המידע בצורת GET יש לדעת שההגבלה המירבית היא של 256 תוים בשורת הכתובת.

דוגמא:
גולש מסוים גולש להנאתו באתר www.asp.org.il
הגולש מכניס לתוך טופס ערך "israel" בשדה השם הפרטי, וערך "niv" בשדה השם משפחה.
הוא לוחץ על כפתור השליחה. מכיוון שהטופס מוגדר להשלח בשיטת ה GET, אל קובץ
form_handler.asp, שורת הכתובת תראה כך:

http://www.asp.org.il/form_handler.asp?fname=israel&lname=niv
הקובץ "form_handler.asp" מכיל את שורות הקוד הבאות: <body> Welcome <% response.write request.querystring("fname") response.write " " response.write request.querystring("lname") %> </body>
דוגמא זו תכתוב למסך:
welcome israel niv

Request.Form

פקודת ה-Request.Form אוספת את הערכים שנשלחו מן הטופס בשיטת ה POST. המידע שנשלח מן הטופס אינו נראה לעיני הגולש (בניגוד למידע שנשלח בשיטת ה-GET). לשיטת ה-POST אין מגבלות של כמות מידע שניתן להעביר ולכן ניתן לשלוח כמות גדולה של מידע, דבר שיש לקחת בחשבון כאשר מחליטים באיזו שיטה להשתמש לשליחת הנתונים. שיטת ה-POST עדיפה גם במקרים בהם לא היינו רוצים לראות את המשתנים בשורת הכתובת, כמו למשל כאשר אנו שולחים סיסמא שהגולש הכניס.


דוגמא:
גולש מסוים גולש להנאתו באתר www.asp.org.il
הגולש מכניס לתוך טופס ערך "israel" בשדה השם הפרטי, וערך "niv" בשדה השם משפחה.
הוא לוחץ על כפתור השליחה. מכיוון שהטופס מוגדר להשלח בשיטת ה POST, אל קובץ
form_handler.asp, שורת הכתובת תראה כך:

http://www.asp.org.il/form_handler.asp
הקובץ "form_handler.asp" מכיל את שורות הקוד הבאות: <body> Welcome <% response.write Request.Form("fname") response.write " " response.write Request.Form("lname") %> </body>
דוגמא זו תכתוב למסך:
welcome israel niv

באיזו מן השיטות כדאי להשתמש?

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



התגובות שלכם

         
01. 02/07/2006  דוד מור
שלום!
השתמשתי בקוד שהצעת לבניית טופס. הבעיה שהמידע שמגיע לקובץ form_handler.asp אינו נשמר. מה לעשות כדי שהמידע יישמר ולא יידרס על ידי משתמשים נוספים אלא יתווסף למידע שכבר הגיע?
תודה
דוד


מחבר: אדם ליבסקי רמת קושי: 0  ||  ציון: (7.4)כל הזכויות שמורות ל-IAO ©

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