שלח תשובה

זירת השאלות

595
צפיות
41
תשובות

לא מצליח לי

,‏ 27 באוגוסט, 2004

אני מנסה לעשות שאם שם משתמש שמור אז זה מודיע  אבל לא פועל
הנה הקוד


sql="SELECT * FROM Users WHERE Nick='" & Trim(Replace(request.form("Str_nick"),"'",""")) & "'"
rs.open sql , conn ,3,3

if rs.eof then
session("reg") = true
response.redirect "add_user.asp"
else
rs.close

rs.open "Select * from Users " ,Conn ,3,3
rs.addnew
rs.fields("nick")=Str_nick
rs.fields("Password")=str_password
rs.fields("email")=str_email
rs.fields("Fname")=str_Fname
rs.fields("Lname")=str_Lname
rs.fields("birthday")=str_birthday
rs.fields("age")=str_age
rs.fields("Gander")=str_sex
rs.fields("IP") = Request.ServerVariables("REMOTE_ADDR")
rs.update
rs.close

Session("add")=true
response.redirect "add_user.asp"

End If


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

תגיות:

41 תשובות

  1. MasterMind הגיב:

    עדיין מקבל את המידע….
    הנה הקוד


    sql="SELECT * FROM Users WHERE Nick='" & Trim(Replace(request.form("Str_nick"),"'",""")) & "'"
    rs.open sql , conn ,3,3

    if not rs.eof then
    rs.close

    rs.open "Select * from Users " ,Conn ,3,3
    rs.addnew
    rs.fields("nick")=Str_nick
    rs.fields("Password")=str_password
    rs.fields("email")=str_email
    rs.fields("Fname")=str_Fname
    rs.fields("Lname")=str_Lname
    rs.fields("birthday")=str_birthday
    rs.fields("age")=str_age
    rs.fields("Gander")=str_sex
    rs.fields("IP") = Request.ServerVariables("REMOTE_ADDR")
    rs.update
    rs.close

    Session("add")=true
    response.redirect "add_user.asp"

    else

    session("reg") = true
    response.redirect "add_user.asp"
    End If


    ויש לי עוד שאלה איך אני יכול לשלוח מידע ב POST בלי לחיצה ?
    (אני רוצה לשלוח מידע לדף שאני חוזר אחרי ההרשמה )

  2. תגובה
    -אנא בדוק כי לשדה בטופס באמת קוראים Str_nick
    -במידה והבעיה נמשכת, תנסה להדפיס את השאילתה לפני שאתה פותח אותה כדי לראות אם היא מורכבת נכון. כאילו, לפני rs.open תוסיף את השורה response.write sql

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

  4. MasterMind הגיב:

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


    SELECT * FROM Users WHERE Nick='Admin'

    והנה הקוד שוב

    sql="SELECT * FROM Users WHERE Nick='" & Trim(Replace(request.form("Str_nick"),"'",""")) & "'"

    RESPONSE.WRITE sql

    rs.open sql , conn ,3,3

    if not rs.eof then
    rs.close

    rs.open "Select * from Users " ,Conn ,3,3
    rs.addnew
    rs.fields("nick")=Str_nick
    rs.fields("Password")=str_password
    rs.fields("email")=str_email
    rs.fields("Fname")=str_Fname
    rs.fields("Lname")=str_Lname
    rs.fields("birthday")=str_birthday
    rs.fields("age")=str_age
    rs.fields("Gander")=str_sex
    rs.fields("IP") = Request.ServerVariables("REMOTE_ADDR")
    rs.update
    rs.close

    //Session("add")=true
    //response.redirect "add_user.asp"

    else

    //session("reg") = true
    //response.redirect "add_user.asp"
    End If

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

    תעשה כך


    sql="SELECT * FROM Users WHERE Nick='" & Trim(Replace(request.form("Str_nick"),"'",""")) & "'"
    rs.open sql , conn ,3,3

    if not rs.eof then
    session("reg") = true
    response.redirect "add_user.asp"
    else
    rs.close

    rs.open "Select * from Users " ,Conn ,3,3
    rs.addnew
    rs.fields("nick")=Str_nick
    rs.fields("Password")=str_password
    rs.fields("email")=str_email
    rs.fields("Fname")=str_Fname
    rs.fields("Lname")=str_Lname
    rs.fields("birthday")=str_birthday
    rs.fields("age")=str_age
    rs.fields("Gander")=str_sex
    rs.fields("IP") = Request.ServerVariables("REMOTE_ADDR")
    rs.update
    rs.close

    Session("add")=true
    response.redirect "add_user.asp"

    End If

    בסה"כ הוספתי not

  6. MasterMind הגיב:

    תודה מליון
    לא יודע למה כשאני רשמתי זה לא פעל …..
    תודה בכל מקרה

  7. שיפור יעילות
    לפני כל פקודת response.redirect אני מאוד ממליץ לסגור חיבורים ואובייקטים, כדי לא לבזבז משאבי שרת.

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

    כי אתה הפכת הכל
    אתה גם הוספת Not וגם הפכת את הפעולות שמופיעות לפני ואחרי ה-FALSE
    ולכן השגת אותה תוצאה כמו בהתחלה

  9. MasterMind הגיב:

    עוד שאלה ב REGEXP
    מצאתי את הקוד הזה בשאלות נפוצות ושיפצתי אותו שיתאים לי
    והוא לא פועל לי (כלומר הוא ממשיך למרות שהכתובת אינה תקנית)


    function checkEmail(str_Email){
        return /^\w+@([\w\-]+\.)+\w{2,3}$/.test(str_Email);
    }


    ועוד שאלה … איך אני יכול לשרשר ל ON SUBMIT שתי פונקציות שונות
    כלומר יש לי פונקציה שבודקת 2 סיסמאות ועכשיו יש לי את הפונקציה שבודקת
    את האימייל (וכנראה שאני אוסיף עוד פונקציה שבודקת שאף אחד מהשדות אינו ריק)

    תודה מראש   נועם צברי

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

    הדוגמאות ב-FAQ
    אז צריך להוריד בהם סלאש אחד בכל פעם שמשתמשים בהם כי יש איזה באג שם
    הדוגמא צריכ הלהיות כזו:

    function checkEmail(str_Email){
        return /^w+@([w-]+.)+w{2,3}$/.test(str_Email);
    }

  11. ככה


    onSubmit="passCheck(); emailCheck()"

    ויש אפשרות שתשים את שתי הבדיקות באותה פונקציה..לא כ"כ חשוב

  12. dudubs הגיב:

    למה תמיד אתם עושים את זה בjs? הנהvs


    Set RE = New RegExp
    RE.IgnoreCase = True
    RE.Pattern = "(S+@S+.S+)"
    email1 = "error@page"
    email2 = "[email protected]"
    Response.write(RE.Test(email1) & "<hr>") // return false
    Response.write(RE.Test(email2) & "<hr>") // return true
    Set RE = Nothing

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

    ככה זה יסבמט תמיד


    onSubmit="return (passCheck() && emailCheck())"

  14. כי JS יותר מהירה ויעילה.
    ויש עוד הרבה סיבות שמעידות שJS יותר טובה מVBS, אם אתה רוצה לדעת תראה כאן.

  15. MasterMind הגיב:

    אז האם ככה זה נכון ?
    פשוט  אני אפס ב JS צד לקוח ושרת


    <script>
    <!–
    function checkpass(form){
    if (form.str_pass_1.value != form.str_pass_2.value )
    {
        alert("הסיסמאות אינן דומות")
        return false;
    }
    return true;
    }

    function checkEmail(str_Email){
    if(return /^w+@([w-]+.)+w{2,3}$/.test(str_Email))
    {
        alert("כתובת האימייל אינה תקינה")
        return false;
    }
    return true;
    }

    // –>
    </script>

    תודה מראש  נועם צברי

  16. MasterMind הגיב:

    הקפץ….
    מישהו יכול לעזור לי אני כלום ב JS וגם לפי ההפעלה של הדף הקוד לא פועל
    ואני בטוח שהבעיה ב IF כי הוא מתנגש ב TEST

    תודה רבה ולילה טוב לכולם נועם צברי

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

    לא
    שים לב ל-return שיש לך ב-IF וגם רק אם הוא הכניס אי-מייל נכון אז תקפוץ לו השגיאה אתה צריך להפוך את התנאי ע"י שימוש ב-not של JS (!))

  18. VBS לא תומכת בפרמטרים אופציונליים
    לפונקציות? תמיד יש חובה לשלוח את כולם?
    בולשיט!

  19. MasterMind הגיב:

    אתה יכול לתת דוגמא ….
    כי אני לא מבין ב JS

  20. נראה לי ככה


    if(!return /^w+@([w-]+.)+w{2,3}$/.test(str_Email))

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




    function checkEmail(str_Email){
    if(!(/^w+@([w-]+.)+w{2,3}$/.test(str_Email)))
    {
        alert("כתובת האימייל אינה תקינה")
        return false;
    }
    return true;
    }

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

    הכוונה לא ל overloading
    אלא לפרמטרים אופציונליים במובן הטהור של המילה.

    זה לא יעבוד לך ב VBS:


    function a(x,y,z)
        a=2    
    end function
    document.write(a(1,2))

    ב JS כן:


    function a(x,y,z){
        return 2;
    }

    document.write(a(1,2));

  23. MasterMind הגיב:

    שליחת מייל
    לא שולח לי מייל עם CDONTS
    הנה הקוד


    sub subsendEmail
    HTML = "<!DOCTYPE HTML PUBLIC ""-//IETF//DTD HTML//EN"">" & NL
    HTML = HTML & "<html>"
    HTML = HTML & "<body>"
    HTML = HTML & "welcome to"
    HTML = HTML & "<A HREF='http://127.0.01/all_index.asp'>————</A><BR><BR>"
    HTML = HTML & "your Username is : "
    HTML = HTML & str_nick
    HTML = HTML & "<BR>"
    HTML = HTML & "your Password is : "
    HTML = HTML & str_Password1
    HTML = HTML & "<BR>"
    HTML = HTML & "enter your account here"
    HTML = HTML & "<A HREF='http://127.0.01/enter.html'>http://127.0.01/enter.html</A>&quot;
    HTML = HTML & "<BR>"
    HTML = HTML & "edit your infromation here"
    HTML = HTML & "<A HREF='http://127.0.01/update_deatils.asp'>http://127.0.01/update_deatils.asp</A>&quot;
    HTML = HTML & "<BR>"
    HTML = HTML & "</body>"
    HTML = HTML & "</html>"

    Dim myMail
    Set myMail = CreateObject("CDONTS.NewMail")
    myMail.From = "[email protected]"
    myMail.To = str_email
    myMail.Subject = " user info "
    myMail.Body = html
    myMail.Send
    Set myMail = Nothing

    end sub

    תודה מראש  נועם צברי

  24. תכריז גם על HTML כמשתנה
    תרשום כך:

    Dim myMail, HTML

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

    ב-JAVA
    אפשר להעמיס פונקציות (כאשר כותבים מב' שיטות בעלות אותו שם רק עם רשימת פרמטרים שונים)

    האם אפשר לעשות זאת גם ב-JS או ב-VBS ?

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

    הממממ
    אתה חייב להבין, ב JAVA (או C# וכו'…) כשאתה שולח פרמטרים לפונקציה (או יותר נכון שיטה), אתה בוודאי יודע שאתה מציין את ה datatype שלהם. כשהעסק עם ה datatypes נעלם, אז חלק גדול מה method overloading מאבד מערכו, מן הסתם.

    ב JS יש שתי דרכים לעשות את זה:
    1. overloading "קלאסי"

    function a(x,y,z){
        return 2;
    }
    function a(x,y){
        return 3;
    }
    document.write(a(1,2));

    2. דרך קצת יותר "עקומה"


    function b(x){
        return x||2;
    }
    document.write(b() + " " + b(17));

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

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

    תודה
    פשוט קודם חיפשתי קצת בגוגל javascript overloading ומצאתי כמה אתרים שהסבירו על ה-OO ב-JS ואמרו שאי אפשר לעשות overloading ב-JS
    אני מניח שאלה מסוג האתרים שצריך לסנן

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

    יש הרבה אתרים שצריך לסנן
    רובם, בכל מקרה.

  29. Alon12 הגיב:

    אם עדיין לא עובד לך
    תעשה כתובת אמיתי בFrom
    זאת אומרת אתה יכול לעשות [email protected]
    העיקר שהדומיין יהיה אמיתי

  30. ה- VBS הזה פשוט מוזר
    מצד אחד VBS דומה מאוד (אפילו יותר מדי) לשפה שבה כותבים ב- Visual Basic, אך חלק מהדברים שיש ב- visual Basic פשוט לא קיימים ב- VBS.
    זה פשוט מוזר כל העניין הזה.
    אני יודע שב- Visual Basic אפשר להגדיר פונקציה עם פרמטר אופציונלי כך:

    function bla(x,optional y)
      bla=x*y;
    end function

    ויש גם את המשתנה מסוג collection שכל-כך חסר ב- VBS לשם שמירת נתונים בעלי מספר איברים משתנה.

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

    ואני עד היום לא הבנתי למה בשפות צד שרת לא מחריזים על סוגי משתנים, לפחות כך זה ב- ASP ו- PHP. אולי ב- ASP.NET או JSP זה אחרת, לא יודע, אבל אם כן תיידעו אותי, אולי אני אעבור אליהן.

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

    ב-ASP.NET ו-JSP
    מגדירים כי מדובר בשפות תכנות (PHP היא גם שפת תכנות אבל אין בה את נושא ה-datatypes)
    תאמין לי שזה חסר לכולנו (גם בלקוח)

שלח תשובה