שלח תשובה

זירת השאלות

31 תשובות

  1. BuildHome הגיב:

    הנה הקוד
    יצירת תקייה:


    Set FSO = CreateObject("Scripting.FileSystemObject")
    FSO.CreateFolder(Server.MapPath("") & "NewFolderName")
    Set FSO = Nothing

    מחיקת תקייה:


    Set FSO = CreateObject("Scripting.FileSystemObject")
    FSO.DeleteFolder(Server.MapPath("") & "DeleteFolderName")
    Set FSO = Nothing

    מקווה שזה יעזור.

  2. mynameispepper הגיב:

    בעייה עם RegExp…
    יש לי קוד להחלפת גרש ותווים אחרים אבל משום מה זה לא עובד לי.
    הנה הקוד:


    FUNCTION cleanupString(my_string)
    DIM oRegExp, sCleaned

    oRegExp = NEW RegExp ————– line 17
    oRegExp.Global = TRUE
    oRegExp.IgnoreCase = FALSE

    oRegExp.Pattern = "[>]"
    sCleaned = oRegExp.Replace(my_string, ">")

    oRegExp.Pattern = "[<]"
    sCleaned = oRegExp.Replace(sCleaned, "<")

    oRegExp.Pattern = "[']"
    sCleaned = oRegExp.Replace(sCleaned, """)

    oRegExp.Pattern = "[&]"
    sCleaned = oRegExp.Replace(sCleaned, "&")

    cleanupString = sCleaned
    END FUNCTION

    הודעת השגיאה שאני מקבל היא:

    Microsoft VBScript runtime error '800a01b6'
    Object doesn't support this property or method
    /admin/categoriesHandler.asp, line 17

    מה הבעייה פה?
    מה פיספסתי?

    תודה!

  3. ניר טייב הגיב:

    למיטב ידיעתי הפונקציה replace
    שייכת לאובייקט STRING
    וב-VBS בכלל זו סתם פונקציה על מחרוזות שלא מקשרת לשום אובייקט (למרות שהיא מחליפה רק לסטרינגים)


    str = replace(str, "someText", "someText1")

  4. ניר טייב הגיב:

    אתה בשאלות הנפוצות של מדור ASP
    מלשון פאק (FAQ)

  5. mynameispepper הגיב:

    הבעייה מתעוררת עוד לפני שזה מגיע…
    ל REPLCAE

  6. BuildHome הגיב:

    שורה 17
    שורה 17.

    אם אני לא טועה, זה צריך להיות:


    Set oRegExp = NEW RegExp

  7. אוריקס הגיב:

    נסה את זה:


    FUNCTION cleanupString(my_string)
        DIM oRegExp, sCleaned

        set oRegExp = NEW RegExp
        oRegExp.Global = TRUE
        oRegExp.IgnoreCase = FALSE

        oRegExp.Pattern = ">"
        sCleaned = oRegExp.Replace(my_string, "& gt;")

        oRegExp.Pattern = "<"
        sCleaned = oRegExp.Replace(sCleaned, "& lt;")

        oRegExp.Pattern = "'"
        sCleaned = oRegExp.Replace(sCleaned, """)

        oRegExp.Pattern = "&"
        sCleaned = oRegExp.Replace(sCleaned, "& amp;")

        cleanupString = sCleaned
    END FUNCTION

    עשיתי רווח אחרי ה & כדי שוובמאסטר לא יחליף.

  8. אוריקס הגיב:

    הערה קטנה
    בשביל רפלייס פשוט חבל להשתמש ב RegExp ב VBS.

  9. mynameispepper הגיב:

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

    מה זה יכול להיות?

  10. BuildHome הגיב:

    לדעתי עדיף ריפלייס רגיל
    יותר פשוט ונוח.


    str = Replace(str,"<","& lt;")
    str = Replace(str,">","& gt;")
    str = Replace(str,"&","& amp;")
    str = Replace(str,"'",""")

  11. BuildHome הגיב:

    הנה הטעות שלך
    תחליף את הקוד:

    sCleaned = oRegExp.Replace(my_string, "& gt;")

    לזה:

    sCleaned = oRegExp.Replace(sCleaned, "& gt;")

  12. mynameispepper הגיב:

    אבל איך אז אני שם את זה
    בתוך פונקצייה?

    יש איזו סיבה אחרת מעבר ליותר פשוט ונוח למה זה עדיף?

    תודה

  13. אוריקס הגיב:

    RegExp בVBS הוא דבר די איטי
    ובמקרה של רפלייס מיותר להשתמש בו.

  14. mynameispepper הגיב:

    אז בכל זאת אני עושה את הריפלייס
    מבלי להשתמש ב RegExp?

  15. אוריקס הגיב:

    המנה


    FUNCTION cleanupString(my_string)

    sCleaned = Replace(my_string,">", "& gt;")
    sCleaned = Replace(sCleaned,"<", "& lt;")
    sCleaned = Replace(sCleaned,"'", """)
    sCleaned = Replace(sCleaned,"&", "& amp;")
    cleanupString = sCleaned

    END FUNCTION

  16. mynameispepper הגיב:

    למה עשית בסוף הפונקצייה…
    cleanupString = sCleaned

  17. mynameispepper הגיב:

    הבעייה היא שוב אותה בעייה…
    אני משתמש בפונקצייה להחלפת התווים וכשאני שולח להכנסה אין לי שום הודעת שגיאה אבל אותו שדה (שם המשתמש) יחיד שעליו מופעלת הפונקצייה לא מראה לי כלום בשליפה.

    זה עדיין קורה, למה?

  18. BuildHome הגיב:

    אתה משתמש בריפלייס
    שציינתי או במקור של הדיון שלך ?
    תציג את הקוד שלך לאחר השינויים.

  19. mynameispepper הגיב:

    הנה…
    הפונקצייה:

    FUNCTION cleanUp(myString)
        sCleaned = Replace(myString,">", "& gt;")
        sCleaned = Replace(sCleaned,"<", "& lt;")
        sCleaned = Replace(sCleaned,"'", """)
        sCleaned = Replace(sCleaned,"&", "& amp;")
        cleanupString = sCleaned
    END FUNCTION

    ה SQL:

    SQL = "INSERT INTO tstTBL (name) VALUES('" & cleanUp(name) & "')"

    מה הבעייה פה?

  20. BuildHome הגיב:

    נסה את זה


    Function cleanUp(myString)
        If IsEmpty(myString) Then Exit Function
        sCleaned = myString
        sCleaned = Replace(sCleaned,">", "& gt;")
        sCleaned = Replace(sCleaned,"<", "& lt;")
        sCleaned = Replace(sCleaned,"'", """)
        sCleaned = Replace(sCleaned,"&", "& amp;")
        cleanUp = sCleaned
    End Function

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

  21. mynameispepper הגיב:

    סבבה, עכשיו זה עובד! אבל…
    למה הבעייה הזו קיימת?
    ככה זה עובד גם אצלך?

שלח תשובה