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

Israeli ASP Organization

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

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

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

בעיות נפוצות

בעיות עברית

1. הקדמה.
2. הנחיות כלליות לכתיבת עברית (RTL - מימין לשמאל)
3. גיבריש (הגדרת עברית לוגית ב- HEAD)
4. סימני שאלה (עברית בדאטה-בייס (מסד נתונים))
5. עברית בעוגיות

1. הקדמה

מר גורלנו ואנחנו צריכים להתמודד עם בעיות עברית. סימנים מוזרים, סימני שאלה ועוד בעיות.
קודם כל כדי לפתור את הבעיה אנחנו יוצאים מהנחה ראשונית שלא קיים עוד דפדפן בעולם חוץ
מאקספלורר (IE) , הוא זמין לכולם, כולם (95%) במילא משתמשים בו והכי חשוב הוא היחיד שעושה לנו הכי פחות בעיות.

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

2. הנחיות כלליות לכתיבת עברית (RTL - מימין לשמאל)

קיים מאפיין לתגיות בשם DIR , שמציין כיוון (Direction) של הטקסט, הוא מקבל ערכים של
RTL - Right To Left - מימין לשמאל
LTR - Left To Right - משמאל לימין

אז למשל אנחנו רוצים שכל העמוד יהיה מימין לשמאל (במקום ברירת המחדל, משמאל לימין) עושים :

<Html Dir="RTL"> </Html>

מה שעשינו , הוספנו את המאפיין DIR לתגית , ולכן כל העמוד יופיע מימין לשמאל.
הטקסט יופיע מימין לשמאל, פס הגלילה (Scroll Bar) יופיע בצד שמאל במקום בצד ימין.
אבל גם טבלאות יופיעו הפוך, אם עשינו עמודה הכי ימנית כעמודת קטגוריה, היא תופיע בצד שמאל.

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

וכד ומוסיפים לו
את המאפיין.(ואז אם שאר העמוד מוגדר LTR כברירת מחדל, פס הגלילה יהיה בצד ימין).

לדוגמא אפשר גם לקבוע את המאפיין לתגית בצורה הזאת:.

<Body Dir="RTL"> </Body>

RTL -ואז הדף מוגדר כ .

3. גיבריש

שמים את התגית הזאת :

<meta http-equiv="Content-Type" content="text/html; charset=windows-1255">

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

4. סימני שאלה

כשמאחזרים מידע ממסד נתונים (בדר"כ ממסד מסוג אקסס), לפעמים המידע שכתוב בעברית מאוחזר
בצורת סימני שאלה בניגוד למידע באנגלית שמופיע כמו שצריך.
הבעיה נובעת מכך שהמידע לא מפורש נכון בידי השרת, מאחר והוא לא יודע את הקידוד המתאים לשפה
את הבעיה הזאת פותרים על ידי השמה של השורה הזאת בראש כל דף (שמתעסק עם ה- DB):

<%@Language=VBScript codepage=1255%>

השורה הזאת מגדירה לשרת להשתמש בקוד פייג של עברית לוגית (1255), בנוסף שפת השרת מוגדרת
כ- VBSCRIPT כאן, אז אם זאת שפה אחרת (Javascript וכד) יש לשנות בהתאם (או להוריד את החלק של השפה).

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

5. עברית בעוגיות

בשרתים שממוקמים על מחשבים זרים שלא בארץ ולא בעלי תמיכה בסיסית בעברית, כאשר שומרים מידע בעוגיות, הוא נשמר כסימני שאלה.
על מנת לסדר את זה, ניתן להשתמש בפונקציה שכתב מישל מקסב ושופצה ע"י אדיר דידי.


function hebEncode(txt) encode Hebrew Chars dim i, p, pAsc hebEncode ="" for i = 1 to len(txt) p = mid(txt,i,1) pAsc = asc(p) if pAsc>223 and pAsc<251 then p = server.htmlEncode(p) hebEncode = hebEncode & p next end function

איך עושים שהדף לא יעלה מה- CACHE ושתמיד יוצג תוכן מעודכן לגולש ?
משתמשים בסאב הבא :

sub no_cache() Response.Expires = 60 Response.Expiresabsolute = Now() - 1 Response.AddHeader "pragma","no-cache" Response.AddHeader "cache-control","private" Response.CacheControl = "no-cache" end sub

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

הצורה הפשוטה של תגית האינקלוד היא :

<!--#include file="filename.inc"-->

כאן אנו מורים לשרת להכליל את הדף filename.inc .
אפשר להשתמש בכל סיומת , אבל מומלץ להשתמש בסיומת ASP מכיוון שאז אם מישהו נכנס לכם
לקובץ הוא יכול לראות את מה שכתוב בו, אבל לא בסיומת ASP כי אז הקוד מפוענח בשרת ללא קשר
אם הקובץ מוכלל או לא, ולא ניתן לראות את הקוד.

אי אפשר לשים משתנים ב- INCLUDE אפשר להריץ בעזרת CASE או IF , אינקלוד מסויים
אבל אז צריך לרשום את כולם במדוייק.

קיימת גם פקודה בשם SERVER.EXECUTE , שהיתרון שלה הוא שהיא
מריצה את דף ה-ASP רק אם נעשה בו שימוש, ולהבדיל מאינקלוד, השרת לא עובר עליו אלא אם הוא הנבחר. (באינקלוד כל הדפים מפוענחים קודם). החיסרון של SERVER.EXECUTE הוא שאי אפשר להעביר משתנים, (אפשר אולי לפתור חלק מהבעיות עם עוגיות) וערכים ופונקציות לא נשארים.

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

<!--#include file="filename.asp?var=1"-->

הקוד בדוגמא לא נכון כי יש משתנה בהפניה.

בהצלחה!



התגובות שלכם

         
01. 24/08/2005  נעמה
אני מתעסקת עם DB מסוג sybase ובעית סמני השאלה לא נפתרה (הגדרתי code=1255 שהצעת במספר 2)

02. 24/08/2005  נעמה
ניסיתי את פתרון העוגיות שהצליח בצורה חלקית, יש אותיות שהוא נותן עבורם מספרים מוזרים עם נקודה ופסיק

         

מחבר: ליאור שמשרמת קושי: 1  ||  ציון: (7)כל הזכויות שמורות ל-IAO ©

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