הערה חשובה!
זהו מאמר זמני בלבד. הוא יימצא באתר עד אשר יכתבו מאמרים רציניים ומפורטים עבור חלקי מאמר זה. מאמר זה נמצא עקס הצורך המיידי במאמר המאפשר גישה למידע זה עבור מתכנתים מתחילים המתקשים להשתלב בשפת התכנות וצריכים עזרה התחלתית.
הקדמה
מה זה ASP ?
ASP (Active Server Pages) או בתרגום חופשי (מאוד) לעברית דפי שרת פעילים. הכוונה בכך היא לדפים שהפקודות בהן מבוצעות לא בדפדפן הלקוח (כמו ב- ( Javascript אלא עוד לפני כן בשרת. בדרך זו אנו יכולים להתגבר על מגבלות בין דפדפנים שונים, ולשמור מידע על השרת. מלבד זאת ASP גם יכול לתקשר עם רכיבים שנמצאים על השרת. חשוב להבהיר כי ASP אינו מחליף את ה – HTML , הוא זה שיוצר את קוד ה – HTML על השרת ושולח אותו לדפדפן
במה ASP עוזר לי ?
מאחר ש – ASP שומר נתונים על השרת אנו יכולים בעזרתו, ליצור פורום , ספר אורחים, רשימות תפוצה (בעזרת רכיב שליחה של אימייל) וכד. ASP משמש לפעולות פשוטות כגון הצגה דינמית של תאריך ללא תלות במחשב המשתמש ועד ליצירת מסדי נתונים מורכבים.
כיצד כותבים ASP ?
ניתן לכתוב ASP בכל עורך טקסט , אולם כמו HTML רצוי להשתמש ב- Notepad הישן והטוב, או בתוכנות שבנויות במיוחד לצורך כך ומיועדות לעבודה עם השפה ובדר"כ גם מדגישות את המילים השמורות לשפה. בכל אופן לא מומלץ / רצוי / כדאי להשתמש בתוכנות כמו WORD ש"משפצות" את הקוד. הקובץ נשמר כ- Filename.asp , ניתן לתחום בתוך תיבת השמירה את שם הקובץ במרכאות (" ") ובכך למנוע שמירה בסיומת כמו txt.
באיזו שפה כותבים ASP ?
ASP ניתן לכתוב ב – Vbscript, JavaScript ואף ב – Perl. אנחנו נעבוד עם Vbscript , שהיא גם השפה ברירת המחדל. אם נרצה לעבוד עם שפה אחרת ניתן לכתוב בראש העמוד את התגית הבאה לשינוי הגדרות ברירת המחדל של השרת. VBScript
<%@LANGUAGE=VBScript%>
JavaScript
<%@LANGUAGE=JavaScript%>
זה המקום לציין כי התגים %>, < % מורים למחשב על התחלת (% >) קוד ה- ASP ועל סיומו (< %) . ניתן לפתוח ולסגור קטעי קוד, באופן בלתי מוגבל בתוך דף ASP כל עוד שומרים על פתיחה וסגירה. במקרה שקיים תג אחד בלי המשלים שלו תוצג הודעת שגיאה.
על מנת להדפיס למסך גם קוד HTML שלנו (כמו התג
<%
Response.write "Hello World ??? "
%>
קוד זה ידפיס Hello World ??? ולאחריו שורה ריקה. ניתן היה לכתוב טקסט זה גם לאחר קטע ה – ASP <%
……
……
%>
Hello World ???
וגם בצורה המקוצרת <%="Hello World ??? "%>
כפי שאפשר לראות בדוגמא של הצורה המקוצרת ניתן לכתוב לדף ע"י סימן = אחרי תגית הפתיחה. כל הדרכים מובילות לאותה תוצאה, וההבדל העיקרי הוא נוחות הכתיבה שתלוי בהעדפה אישית.
תחביר VBSCRIPT
משתנים ב-VBScript מוצהרים ע"י המילה השמורה Dim . אין צורך להצהיר על סוג המשתנה (מספר שלם, מחרוזת וכד) אלא המשתנה מקבל סוג ערך (Type) מסוג Variant שיכול להזין לתוכו משתנה מספר, מחרוזת או תאריך. אין חובה כלל להגדיר משתנים, אולם הדבר אינו מומלץ ולא נקרא תכנות נכון. Dim X
X="asp"
Dim y
Y=44
לעיתים אנו צריכים לשנות את סוג הערך של המשתנה, ואז ניתן להשתמש בפונקציות ההמרה. לדוגמא: מחרוזת למספר שלם באמצעות Cint( ). X="44"
Int_X=Cint(X)
באותו אופו ניתן להפוך למחרוזת באמצעות הפונקציה Cstr() וכד.
על מנת לרשום הערות או להפוך שורה להערה שאינה מפורשת משתמשים בסימן או במילה REM בתחילת אותה השורה. (אפשר לשים הערה גם אחרי שורות קוד אבל לא לפני כי אז הקוד ייחשב כהערה)
אחרי שאנו יודעים להצהיר משתנים ולהזין לתוכם משתנים אנו יכולים להדפיסם למסך לדוגמא הקוד הבא : <%
Dim NameVar
NameVar = "Nachum"
%>
Hello <%= NameVar %>
מביא לפלט של
Hello Nachum
נעבור על קטע הקוד
<% התחלת קוד
Dim NameVar הגדרת משתנה
NameVar = "Nachum" השמת ערך במשתנה
%> סוף קוד
Hello <%= NameVar %>
Html
זהו הצעד הראשון ביצירת עמוד דינמי , לקיחת ערך מתוך משתנה , שבדר"כ לא קבוע בעמוד וערכו לא ידוע מראש והצגתו.
פקודת IF
IF היא פקודה שמאפשרת להציב למחשב תנאי אם התנאי מתקיים המחשב על המחשב לבצע משימה א אם לא ניתן להטיל על המחשב לבצע משימה ב. תחביר If Condition Then
… .ASPCode….
End If
חשוב לא לשכוח את המילה then ולסיים ב- End If. ניתן להשתמש גם בפקודה Else כדי להטיל על המחשב פעולה לביצוע במקרה והתנאי לא מתקיים. לדוגמא זיהוי סיסמא: If Pass="123" then
Response.write "Authorized !"
Else
Response.write "Access Denied !"
End If
ניתן להכניס תנאים נוספים בין ה-IF הראשי ל-ELSE (אם קיים) ע"י Elseif (לא לשכוחthen גם אחרי התנאי של Elseif)
Select Case
פקודה זו נוצרה על מנת לנתב משתנה בעל ערך, לביצוע פעולה מסויימת. כאן אנו יודעים אילו ערכים יכולים להיות למשתנה, לדוגמה מין יהיה זכר או נקבה. הקוד הבא מראה בדיקה של המשתנה Gender ומציג תגובה אישית : <%
Select Case Gender
Case "Male"
Response.write "מה קורה אח שלי , הכל טוב ?"
Case "Female"
Response.write "מה קורה אחות שלי , הכל טוב ?"
End Select
%>
גם כאן חשוב לכלול בסוף את End Select . לא ניתן לבדוק אם בתוך משתנה נמצא ערך של משתנה ע"י הצבתו, מאחר וההשוואה נעשית באמצעות מחרוזת. שיטה זו יכולה להיות יעילה יותר מאשר לכלול תנאים רבים באמצעות ElseIf ניתן גם להשתמש ב- Case Else בסוף תנאי ה- Case על מנת לרשום הודעה אם לא נמצאה התאמת Case לערך של המשתנה. לדוגמה הוספת שורה זו לקטע הקודם, לפני סגירת ה- End Select : <%
Select Case Gender
Case "Male"
Response.write "מה קורה אח שלי , הכל טוב ?""
Case "Female"
Response.write "מה קורה אחות שלי , הכל טוב ?
Case Else
Response.write "???????????????"
End Select
%>
לולאות
בלולאה אנו מגדירים לקטע קוד שירוץ מספר פעמים מסויים. מספר קבוע מראש של פעמים או, עד תנאי מסויים ועוד.
לולאת For בלולאת For אנו "תוחמים" את הקוד שירוץ, בהתחלה בהגדרת For , ולבסוף במילה Next. הלולאה הבאה תרוץ 5 ותכתוב את המילה שלום ולאחריה רווח בכל פעם עד לעצירה. <%
For I=1 to 5
Response.write "Hello "
Next
%>
ניתן להשתמש בכל אות במקום I , בלולאה אבל אות זו נהוגה בגלל ש- I הוא בעצם Index של הלולאה. באמצעות הערך Step ניתן להגדיר ללולאה שערכו של I יעלה כל בערך שונה מ – 1 , ברירת המחדל. לא חובה השימוש בה , ואז ברירת המחדל (1) היא הערך שיעלה את I בכל פעם. ניתן להדפיס את ערכו של I , בזמן הריצה. דוגמה שממחישהStep והדפסת הערך של I. <% For I=0 to 10 step 2%>
The Number is <%=I%>
<%Next%>
ניתן גם להציב משתנים בתור ערכי לולאה למשל: <%
Dim X
X=7
For I=1 to X
%>
>A
<%Next%>
אם אנו רוצים לצאת מלולאה ניתן להשתמש ב – Exit For בדרך הבאה <%
For I=1 TO 20
If I=10 then
Exit for
Else
Response.write I & " "
End If
Next
%>
לולאה זו תרוץ עד שתגיע ל- 10 ואז תפסיק.
נעשה שימוש בשרשור, חיבור של מחרוזת למשתנה. Response.write I & " ניתן היה לכתבה גם Response.write I ולאחריהResponse.write " ניתן לשרשר מחרוזת לתוך משתנה לדוגמא X = "Number" & I & " "
לולאות נוספות
Do Until - ריצה עד קיומו של תנאי מסויים (עד שהתנאי מתקיים) Do Until X=10
X=X+1
Loop
Do While - מתבצעת כל עוד תנאי מוגדר מתקיים ( לדוגמה 2< X) Do While X<10
X=X+1
Loop
מערכים
מערך הוא משתנה היכול להכיל בתוכו תחת שם אחד מספר מוגדר מראש של ערכים. הכרזה על מערך חד מימדי נעשית על ידי הצהרתו או ע"י שימוש בפונקציית Array MyArray = Array("Yachpan","Guy Pines","Friends","Seinfeld")
האיבר הראשון נמצא במיקום 0 ולכן הפנייה אליו תהיה < %=MyArray(0)%>
ותדפיס את הערך Yachpan .
ניתן גם להצהיר על מערך ע"י קביעת מספר המקומות. Dim Arr(4)
קובע מערך בעל 4 מימדים. להצהרת מערך דו מימדי קובעים את מספר האיברים בשני המימדים. Dim Arr(3,2)
טפסים – חזרה כללית
יימים מספר מאפיינים אשר מגדירים את המשלוח של הטופס Form בתג ASP העמוד/כתובת אליה יישלחו הנתונים , ניתן להגדיר כתובת אימייל או דף דינמי כמו - Action קובע את שיטת השליחה של הדף , האם המשתנים יוצגו בשורת הדפדפן או יוחבאו מעין - Method המשתמש.
מבקש נתונים מהשרת, אשר נשלחו מטפסים, קישורים וכד Requestהאובייקט . Method של השיטה Get באמצעות המאפיין
Server Variables
זאת תכונה של האובייקט Request אשר מאפשרת לקבל 43 פריטי מידע שונים על הלקוח ועל השרת. לדוגמה , קבלת IP של משתמש : <%
Your IP is <%=request.servervariables("remote_addr")
%>
כדי לדעת אם הגולש שולח נתונים ב – Post או Get Request.servervariables("request_method")
אובייקט Application
אובייקט זה משמש לשמירת מידע גלובלי, ומהווה מעין משתנה אליו יכולים לגשת כל המשתמשים באתר, ולשנות את ערכו. כך לדוגמה אנו יכולים ליצור מונה כניסות לאתר. עם יצירת אובייקט Application נקבע ערכו ל – 0 . ערך האובייקט נשמר עד שהמחשב מאותחל מחדש ואז ערכו מתאפס.
השמת ערך ב- Application application("last_user_to_enter")= "John Doe"
על מנת ליצור אובייקט רושמים את המילה Application ואחריה את שם המשתנה שנבחר ואליו לדוגמה : <%
application("Counter")
%>
כדי לקבוע ערך פשוט משתמשים בסימן השווה (=)
<%
application("Counter")=1
%>
כדי להדפיס את הערך משתמשים ב – Response.write
<%
response.write "The application var – Counter - is set to " & application("Counter")
%>
ליצירת מונה כניסות יוצרים דף אשר ייצור את האובייקט ולאחר מכן דף אשר יעלה את ערך המשתנה ב –1 ויציג את ערכו. המגרעת במונה הזה היא שאם השרת נופל, פוגע בו מטאור או אפילו סתם מאותחל , המונה מתאפס והנתונים אובדים.
כדי למחוק אובייקט מסויים משתמשים ב Content.remove בצורה הבאה Application.Contents.Remove("Counter")
בהנחה ש- Counter הוא היישום המבוקש.
Chat
ניתן לבנות צט פשוט באמצעות Application ע"י שרשור (הוספת מחרוזות ע"י And) לאובייקט Application.
מבנה הצט 1. חלק עליון המציג משפטים 2. חלק תחתון שמכיל את השיחה עצמה.
Sessions
Sessions הם משתנים הנשמרים בשרת אולם נוצרים במיוחד לכל משתמש שנכנס לאתר פעולתו של Session נגמרת עם סגירת הדפדפן או לאחר 20 דקות של אי ביצוע פעילות מצד המשתמש.
משתנה Session נוצר כמו משתנה application
session("session1")=….
ואליו משווים ערך, לדוגמה: session("Name")="Adam"
ומציגים אותו בצורה הבאה: < %=session("Name")%>
ה- session נשמר וניתן לפנות אליו מכל דף באתר. תרגיל : יצירת 3 דפים, דף הזנת נתונים , דף הצגה והכנסת ערך ל-Session ודף הצגת ערכו של ה- Session
ניתן להשתמש ב – Session על מנת לאבטח מידע, לאחר אימות הנתונים ניתן ליצור Session שמכיל ערך OK או TRUE וייבדק בכל דף אם הערך נכון, אם כן הדף יוצג אם לא המשתמש יועבר לדף אחר (להכנסת פרטים).
תרגילים
- יצירת דף הזנת נתונים, דף אימות והכנסת אישור ל –Session ודף שיבדוק אם יש אישור ואם לא יחזיר אותך לדף הזנת הנתונים. (השניים הראשונים יכולים להיות אותו דף)
- כדי לסיים Session באופן יזום משתמשים ב- Session.Abandon ואז נמחקים כל ה- Sessions הקיימים.
השתמשו בכך לצורך יצירת דף Logout לאתר. (רק במקרה שהמשתמש מחובר).
כדי להאריך זמן פעילות של Session ניתן להשתמש ב Session.Timeout = 30
לשינוי ערך ברירת המחדל של תוקף ה- Session (20).
עוגיות
עוגיות הן קבצים הנשמרים במחשב המשתמש ומכילים נתונים עליו. עוגיות נשתלות ע"י Response.Cookies("Cookie_Name")=Value
ונקראות ע"י X = Request.Cookies("Cookie_Name")
כאן הוזן ערך העוגיה ל – X
עוגיה נמחקת כברירת מחדל עם סגירת הדפדפן , כדי לשמור אותה נשתמש ב Response.Cookies("Cookie_Name").expires=date
כדי לקבוע לה תאריך ניתן להשתמש בפונקציה NOW() אשר קובעת את התאריך העכשווי .
Response.Cookies("Cookie_Name").expires=Now() + 365
בשורה למעלה נקבע כי העוגיה תימחק בעוד שנה
כדי למחוק עוגיה Response.Cookies("Cookie_Name").expires=Now()
ניתן להשתמש בפונקציה NOW() כדי לקבוע את תאריך התפוגה לעכשיו.
ניתן להזין מספר ערכים בעוגיה אחת לצורך נוחות , וכך גם למיין אותן. Response.Cookies("Cookie_Name")("Value1") = Value1
Response.Cookies("Cookie_Name")("Value2") = Value2
Response.Cookies("Cookie_Name")("Value3") = Value3
ככה אפשר לדוגמא למנוע ממישהו להיכנס לאתר אם קיימת אצלו העוגיה If Response.Cookies("Nick") = "BKK" then
Response.write "you are out !"
Response.end
End If
תרגילים
- יצירת דף שמבקש שם , ססמא, , מכניס אותם לעוגיה ודף שמציג אותם.
- דף שמציג מתי הפעם האחרונה שמשתמש נכנס לאתר.
- שכלול התרגיל מחלק Session שישמור ססמא במחשב המשתמש.
תרגיל מסכם
להוסיף לצט אפשרות הרשמה ששומרת את הנתונים בעוגיה ובכניסה מכניסה אותם ל – Session בנוסף מודיעים למשתמש מתי הפעם האחרונה בה התחבר לצט.
רשות
בדף הצט עם שכלול הוספת הצבעים, שמירת הצבע בו השתמשו בעוגיה (יש לשנות זאת בכל פעם שמשתנה צבע) ובכל פעם שמתחברים מוצג הצבע האחרון ואיתו כותבים.
בהצלחה!
|