הקדמה –
כאשר רוצים לשלוח מידע מסויים על
גבי הרשת , ניתן להשתמש במספר צורות של תצוגה ולקיחת מידע . תצוגת מידע יכולה
להתבצע בצורה סטטית – כלומר דפי html
רגילים שלא מבוצע בהם שינוי בצד השרת , אלא כמו שהם מוצגים לצופה .
תצוגת
מידע מתקדמת יותר יכולה להיות בצורה דינמית – דפי asp או cgi (או jsp או php והשד יודע מה עוד...) , דפים
הנוצרים בצורה דינמית על פי פרמטרים מסוימים , לדוגמא : היום בשבוע , סוג המחשב של
המשתמש , שם המשתמש , מידע רלוונטי מבסיס נתונים וכו' . צורה זו מפותחת יותר מכיוון שהיא יוצרת לכל משתמש דף
משלו , אבל הדף לא קיים באמת , אלא רק התבנית שלו שמקבלת את השינויים ומוצגת בצד
המשתמש , בדפדפן .
הצורה
המהירה ביותר לשליחת מידע על גבי הרשת , היא הצורה שבה עובדים הצ'אטים לדוגמא , או
משחקים מרובי משתמשים ברשת וזה דרך java .
כאשר נוצר קשר בין מחשב המשתמש לשרת נפתח בינהם שקע (socket) ודרכו זורם כל הזמן נתונים בין
המחשב לשרת ולהיפך .
ההבדל
בין שני הצורות האחרונות היא שבראשונה (asp) השרת מחכה לקריאה מצד המשתמש , וברגע שהוא מקבל הוא מחזיר תשובה
ובשניה נשאר כל הזמן קשר פתוח בין שני המחשבים וברגע שנשלח מידע השרת ישר מקבל
אותו .
ולענייננו . הפלאש מסוגל לשלוח
בכמה צורות של מידע . הדרך הנפוצה ביותר היא על ידי שליחת מידע לדפי asp (cgi וכו') , המידע מגיע בצורת request – בקשה מהשרת ,
והסקריפט בצד השרת מבצע את הבקשה ופועל בהתאם . הפורמט שבו נשלחת הבקשה הוא http. (הדרך השניה והיותר
מתוחכמת היא על ידי פתיחת שקעים של xml (xmlsocket) ל-java , ומעבר של מידע בינהם ,
על זה בשיעור נפרד .)
כאשר נשלח מידע מדף html לדף asp הוא יכול להגיע בשתי צורות – GET או POST .
Get – שליחת כל המידע
בבת אחת . כלומר , נשלחת בקשה לעמוד המבוקש ונשלחים כל הנתונים מהטופס ביחד . את
הצורה הזאת ניתן לראות בשורת הכתובת , כאשר אנחנו נמצאים בעמודת מסויים ושורת
הכתובת נהיית ארוכה (מאוד...) , זהו פורמט get . הפורמט הזה אינו בטוח (מבחינת password ) מכיוון שניתן לראות את הערך
שלו (לא בכוכביות) בשורת הכתובת בזמן השליחה . פורמט זה גם מוגבל לשליחת 256 תוים
בלבד .
Post – שליחת המידע
בחלקים , זוהי הצורה המומלצת לשימוש . צורת הבקשה היא :
דבר ראשון מתבצעת הבקשה לעמוד
המבוקש ורק אחר שנפתח , נשלח המידע . הצורה הזאת מומלצת בגלל שהיא בטוחה יותר
(בשורת הכתובת רואים רק את שם הדף המבוקש ) ובגלל שאין הגבלת אותיות בשליחה .
בפלאש ניתן לשלוח ולקבל מידע בשתי
הצורות האלה .
שליחת מידע על ידי טופס לדף asp או cgi יכול להתבצע באמצעות שתי פקודות
.
GetURL(“mypage.asp”,
target , method of send);
כמו השימוש המוכר ללינקים מדף
פלאש . גם כאו אנחנו שולחים לדף אחר , אבל לתוך הדף הזה יישלחו נתוני הטופס (כל
המשתנים שנמצאים על ה-_root) . שם הדף הוא הפרמטר
הראשון , target
מציין את הצורה בה ייפתח הדף ("_blank” , “_parent”,”_self”
או “_top") , וה-method of send היא get או
post .
בצורה זו המידע נשלח והמשתמש עובר
לדף חדש ולא נשאר בדף הפלאש שממנו שלח את הטופס . כמובן שאם משתמשים ב-"_blank"
הדף הקודם נשאר ונפתח עוד חלון .
הפקודה השניה לשליחת מידע היא:
loadVariables(“mypage.asp”,[target/level],vars=method
of send);
השימוש בפקודה הזאת בדרך כלל
מתבצע לטעינת קבצי טקסט למשתנים בתוך הסרט בפורמט הבא :
LoadVariables(“1.txt”,0);
בדוגמא הזאת קריאת המשתנים מ-1.txt
לתוך level0 .
השימוש בצורת השליחה של הפקודה
מבצעת עבודה מאחורי הקלעים של סרט הפלאש , כלומר ניתן לבצע סקריפט של asp כמו לדוגמא שליחת mail בלי לעבור לדף ה-asp שעובד ולמעזה לא יראה שום שינוי
לסרט . המגבלה היחידה בצורה הזאת היא שלמיטב נסיוני ניתן לשלוח נתונים רק ב-send . הפרמטר target/level מציין שבמקרה שדף ה-asp גם יחזיר נתונים לסרט , המשתנים
שיחזרו יהיו ב-level
המבוקש או ב-mc .
בואו ונשווה את הפלאש ל-html . כאשר רוצים ליצור תיבת
טקסט למילוי המשתמש ב-html
יוצרים <input type=text> המקבילה בפלאש היא יצירת שדה טקסט
המוגדר ב-text option כ-
input text וקובעים את הגודל שלה .
את שם המשתנה שישלח עם הטופס כותבים בתיבת variable . אם רוצים ליצור text area ניתן להגדיל את שדה הטקסט , וב-text option לבחור ב-multiline ו-word wrap .
רכיבים קצת יותר מתקדמים של טפסים
ב-html כמו menu , checkboxes או radiobuttons , ניתן גם לבצע בפלאש
אבל זה דורש קצת יותר תחכום (שיעור smartclips)
רכיב נוסף , חשוב ביותר ב-html הוא ה-<input
type=hidden> שנועד במיוחד להעביר מידע בטפסים לשרת בלי שהמשתמש
יראה אותם , כמו לדוגמא תאריך , מס סידורי וכו' .
בפלאש ניתן לעשות זאת על ידי
יצירת משתנים ב-_root . כל משתנה שנשמר על ה-_root
נשלח עם הטופס (לא משנה באיזה פריים) .
הטופס ישלח כרשימת כל המשתנים
שהגדרנו ושהמשתמש הגדיר בצורה הבאה :
Var1=value1&var2=value2&var3=value3
…..
אם רוצים לשלוט באיזה משתנים
יישלחו ואיזה לא ניתן לעשות זאת על ידי שימוש ב-get בלבד בצורה הבאה :
GetURL(“mypage.asp?var1=”+value1+”&var3=”+value3,”get”);
בדוגמא זו השמטנו את משתנה var2 והוא לא יישלח . כל
המשתנים שלא רשומים במחרוזת לא יישלחו .