602
צפיות
צפיות
42
תשובות
תשובות
בעיה מוזרה ב: not IsNumeric
אני רושם בדף see.asp את זה.
Dim Num
Num=Request.QueryString("Num")
if (Num="") OR (not IsNumeric(Num)) OR ( Num>10 AND Num<1 ) then
Response.Redirect("ListTmunot.asp")
end if
עכשיו כשאני שולח דרך לינק לקובץ see.asp את Num מספרי זה עובד כמו שצריך
אבל כאשר אני שולח ערך שלא מתאים כמו מעל 10 או מתחת ל-1 או משהו טקסטואלי זה לא עובד.
לדעתי בדקתי את כל האפשרויות ולא מצאתי טעויות, אולי מישהו רואה אותם ואני לא ?
תודה.
42 תשובות
ועוד משהו, זאת השגיאה……..
כאשר אני שולח ערך "" כאילו כלום זה מראה לי שגיאה הזאת
Error Type:
Microsoft VBScript runtime (0x800A000D)
Type mismatch: '[string: ""]'
/MusicWords_BySQL/WordMusic/SITE/Tmunot/see.asp, line 18
למרות שיש לי תנאי במקרה שערך שווה לריק שיעשה REDIRECT
שורה 18
if (Num="") OR (not IsNumeric(Num)) OR ( Num>10 AND Num<1 ) then
נסה אולי את המשפט הזה
if (Len(Num) = 0) OR (IsNumeric(Num) = False) OR ( Num>10 AND Num<1) then
עדיין עושה בעיות….
כשאני שולח לדף ההוא ככה Num= בלי כלום זה מראה לי שגיאה לאותה שורה 18 עדיין.
אני לא מבין מה קורה פה , אותו קוד עובד על פרמטרים אחרים ללא בעיה.
אממ אז אולי ככה
if Len(Num) = 0 OR IsNumeric(Num) = False OR (Num>10 AND Num<1) then
נסה להפריד את המשפט התנאי לשלושה חלקים ותראה איזה חלק גורם לשגיאה להתרחש.
פרקתי כמו שאמרת, יש בעיה…
לאחר הפירוק זה נראה ככה.
if (Num="") then
'Response.Redirect("ListTmunot.asp")
Response.Write "שווה לריק"
end if
if (NOT IsNumeric(Num)) then
'Response.Redirect("ListTmunot.asp")
Response.Write "לא מספר"
end if
הבעיה היא כאשר פה
if (Num="") then
כאשר נשלח ערך ריק
if (NOT IsNumeric(Num)) then
כאשר נשלח ערך לא מספרי או מעורב
מוזר ביותר.
נסה כך:
במקום להשוות למחרוזת ריקה לבדוק עם ה-LENGTH שווה לאפס (לרוב זה עובד)
IF Len(Num)=0 THEN
ניר,BuildHome רשם את זה כבר….
וזה לא עוזר, נראה לי שיש פאק אולי וגם לא בטוח כי רק היום עשיתי פירמוט נוסף.
סתם שאלה:
יש לך תנאי כזה:
Num>10 AND Num<1
איך הוא בדיוק יתקיים…?
ובקשר לשאלתך
נסה להוסיף
Response.buffer = true
בראש הדף.
רשמתי את זה פה בטעות יש שם OR ו….
Response.buffer = true
קיים בדף.
אני חושב שהבעיה שאתה בודק
סטרינג מול מספר.. ב num>10 ו num<1.. נסה אולי לבדוק אם num מספר לפני ואם כן להחזיר אותו כ cint(num(.. אולי..
בעיה נוספת: איך ב-IIS אפשר לעשות…
PLAY כמו ב-PWS כדי להפעיל שרת ביתי ?
יש לי שגיאה שצצה כמו בתמונה ולפי מה שזכור לי כשהיה לי PWS ב windows 98 שזה בגלל ששרת לא פעיל.
איפה אני יכול להפעיל שרת כמו ב-98 PLAY ?
תודה מראש, מצורפת תמונה של השגיאה.
מה שלא ברור הוא , למה משתנה הזה NUM
עושה בעיות ?
יש לי משתנה אחר שתפקידו גם לשלוח מספר, והוא עובד כמו בובה ו NUM לא.
מוזר מאוד, לא נתתי הגדרות אחרות, אולי צריך להגדיר כ INTEGER מה שלא עושים נראה לי אף פעם.
כמה דברים:
if (Num="") OR (not IsNumeric(Num)) OR ( Num>10 AND Num<1 ) then
זו שורה עם כמה תנאים שמתבססים אחד על השני. מומלץ מאוד מאוד מאוד להפריד אותם:
if (Num="") then
' redirect
else if (not IsNumeric(Num)) OR ( (Num>10) AND (Num<1) ) then
' redirect
end if
כמו כן, מומלץ להמיר את Num לinteger לפני שמתחילים לבדוק את הערך שלו.
אני תמיד עושה את זה ככה:
if (IsNumeric(Num)) then
Num = Num * 1
if (Num > 10) OR (num < 1) then redirect
דבר אחרון, AND ו-OR מופעלים לפני =, < או >. לכן, כדי לוודא שזה יפעל, חשוב לא לכתוב:
( Num>10 AND Num<1 )
שיבדוק אם 10 וגם Num
אלא:
( (Num>10) AND (Num<1) )
מקווה שזה עוזר.
למה להפריד?
הוא רוצה שרק אם אחד מהתנאים מתקיים אז יקרה משהו ולא אם כולם התמלאו זה מהות השמוש ב-OR
כן,
אבל כשהוא מריץ את IsNumeric על משתנה ריק הוא מקבל שגיאה.
כך:
administrator tool –> internet information service(s)
שם יש לך TOOL BAR שעליו יש לחצן PLAY ולחצן PAUSE
אז זהו………
שם הוא היה בצבע כזה של "לא ניתן ללחוץ" לא PLAY ולא STOP.
אחרי RESTART הכל חזר לקדמותו.
מייקרוקקא.
לא נכון.
אין שגיאה, זאת פעם ראשונה.
ובבקשה ממך, פעם הבא כשאתה רוצה לעזור ולהגיב תקרא את כל השרשור כדי שתבין באיזה תהליך אני כבר.
תודה בכל זאת.
ובמקום לעשות
num = num * 1
אתה יכול פשוט לעשות
num = cint(num)
מבקש מפרט של תוים לא חוקים כדי ש…
מבקש מפרט של תוים לא חוקים כדי שהשאילתא לא תקרוס לי.
תודה.
הנה
– כדאי לקרוא:
תו שקוף
תו הופך
'
"
<
>
&
את כל אלא מומלץ לסנן בתוכנית שלך בכל שלב.
עוד…………
תו שקוף זה רווח נכון ?
תו הופך, מה זה ?
& או < או > איך כדי לטפל בהם ?
לא, תו שקוף זה לא רווח!
להחליף למקביל שלהם בטבלאת ה ASCII.
יש לך לינק לטבלאת ASCII באינטרנט ?
http://www.asciitable.com
שאלה: ימים בתאריכים…..
אני רוצה להוצאי מהמסד את כל הרשומות שהם לא חשוב מאיזה צאריך אבל הימים שלהם הם היו ימי "חמישי".
כמו כן אני שולח מספר, לדוגמא "5" שזה אומר יום "חמישי".
איך ניתן לעשות זאת?
פרטים על המסד:
מסד SQL SERVER.
שדה שמוגדר כתאריך.
את התאריך אני מכניס ידנית ככה 01/01/2004 או ככה 01.01.2004
מישהו יכול לעזור לי ?
תודה מראש.
יש פה בעיה נראה לי…….
לדוגמא אני הנה תו בעיה & כמו שרשמת.
אני מחליף אותו ל
&
ושוב יש לי תוי בעיתי שם & ואפילו עוד אחד ;
יכול להיות שלא הבנתי כל כך, אתה יכול לתת דוגמא איך אני משנה ולמה , תודה.
אין לי מושג ב-SQL אבל
ב-VBScript יש את הפונקציה weekday שמחזריה את היום בשבוע על אובייקט תאריך שמתקבל:
weekday (thedate: string)
לא הבנתי מה אתה מנסה לעשות
את ה ; אתה מחליף בסוף, אחרי שהחלפת & < > וכל השאר
יש פה בפורום בעיה…….
רשמתי כקוד 4 תוים וזה הראה רק תו 1 שהוא &.
טוב, לא חשוב, תודה בכל זאת.
תוכל לרשום דוגמא איך להשתמש בא ?
משום שלא סונן & ו ;
זה לא בעיה בפורום
אם רשמת קוד ASCII אז הוא תורגם לתו שלו.
הנה:
<% =weekday(now) %>
ככה
WeekDay("02/07/2004") 'returns 6
זה לא ככה?
<% =weekday(now()) %>
כל הכבוד………
זה גם טוב, אפשר לעשות השווה ולהדפיס במקרה והתאריך הזה מתאים.
השאלה היא, האם תאריך חיים להיות ככה 01.01.2004 או ככה 01/01/2004 ?
זה לא משנה.
נראה לי שאפשר ככה
01/01/2004
איזה מוזר זה לכתוב דרך מוזילה
ככה אפשר בטוח
אבל אני לא יודע אם אפשר ככה 01.01.2004
אבל אפשר לבדוק
התכוונתי למשהו אחר
ובטעות יצא לי ככה להחליף את ה/ ב- "-"
01-01-2004