שלח תשובה

זירת השאלות

585
צפיות
62
תשובות

בניית מערכת ניהול משתמשים

,‏ 29 בספטמבר, 2004

אהלן חבר'ה מה קורה?
אני עכשיו מנסה לבנות מערכת לניהול משתמשי האתר שלי…
דבר ראשון שאני רוצה לעשות, זה להציג את הרשימה של המשתמשים, כשישנה חלוקה לדפים, בכל דף יהיו 20 משתמשים לדוגמה, לכל משתמש יהיה קישור לפרטי המשתמש שלו, לפי ה-ID שבמסד (הדף הזה כבר בנוי), אני פשוט לא יודע איך לעשות זאת.
מערכת הניהול—> המאפשרת לי לערוך פרטי משתמשים ואף למחוק אותם?
איך עושים זאת?

אשמח למי שיענה לי,
תודה וחג שמח!
חגי.

תגיות:

62 תשובות

  1. BuildHome הגיב:

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

    באתר יש מאמר על חלוקה לעמודים.
    בנוגע להצגת פרטי המשתמש, פשוט תריץ שאילתה דומה לזו
    SQL = "SELECT username,firstName.lastName FROM users WHERE id="&Request.QueryString("id")
    ותציג את פרטי המשתמש.

  2. Hagai2005 הגיב:

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

    כיצד לבנות את הרשימה….?

    מצפה לעזרה,
    חגי.

  3. BuildHome הגיב:

    אוקי
    הקוד של הצגת המשתמשים באתרך מאוד פשוט.
    פשוט עוברים בלולאה קצרה על כל הרשומות בטבלת המשתמשים.
    SQL = "SELECT id,username,firstName.lastName FROM users"
    rs.Open SQL, Conn
    If not rs.EOF Then
       Do while not rs.EOF
          Response.Write rs("id") & " – <a href=""profile.asp?id="&rs("id")&""">" & rs("username") & "</a><br>" & vbcrlf
       rs.MoveNext
       Loop
    End If
    rs.Close

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

    על מנת למחוק משתמש פשוט תשתמש בשאילתת מחיקה פשוטה למדי.
    Conn.Execute("Delete FROM users WHERE id="&Request.QueryString("id"))

  4. Hagai2005 הגיב:

    תודה לך…
    אני אבדוק את פיתרונך מיד!
    אתה בטח עוד תשמע ממני…

    חג שמח לכולם!
    חגי.

  5. MasterMind הגיב:

    אתה יכול לעשות ככה
    אבל בהתקדמות הזמן כאשר יהיו לך יותר ויותר משתמשים
    יקח לדף הז לעלות הרבה זמן ….
    לכן אני מציע לך תלמד קצת על מערכים מהאתר …. ותבנה את זה עם מערכים
    תאמין לי  זה הרבה יותר מהיר ….
    וגם אתה תדע לעבוד עם מערכים שזו גם התקדמות לשמה…
    אז תעשה את השיקולים שלך   מהירות וידע או ידע קודם ונוחיות

    חג שמח לכולם וגם לך נועם צברי

  6. Hagai2005 הגיב:

    מערכים?
    מה זה בדיוק?
    אני לא יודע איך לעבוד עם זה, ואף פעם לא שמעתי על זה…
    אשמח לקבל מדריך על השיטה הנ"ל.

    בברכת חג שמח,
    חגי.

  7. Hagai2005 הגיב:

    יש לי שאלה חדשה!
    כשאני מציג נתונים מהמסד ע"י שימוש בלולאה,
    איך אני עושה שזה יציג תמונה מסויימת למשפט כלשהו.

    לדוגמה:
    אם רשום במסד "מסמך Doc" יציג לי סמל מסויים.
    "מצגת PowerPoint"- סמל אחר, "מסמך HTML"- סמל אחר וכן הלאה…

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

    אודה לעוזרים,
    חגי בן-לולו.

    חג שמח!

  8. זהר פלד הגיב:

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

  9. Alon12 הגיב:

    אני יפרט
    תעשה תמונה לכל איבר במערך (לדוגמא 0 זה תמונה של וורד, 1 זה תמונה של פוורפוינט וכו')

    dim desarr = Array("מסמך Doc","מצגת PowerPoint","מסמך HTML","קובץ טקסט")
    dim tmp
    tmp = VariableContainsTheStringToReplace
    for arrindex=0 to ubound(desarr)
    tmp = replace(tmp,desarr(arrindex),"<img src=""" + arrindex + ".jpg"" />")
    next
    VariableWillContainTheString = tmp

  10. Hagai2005 הגיב:

    לא ברור…
    מצטער, אך נושא המערכים לא כל כך ברור לי…
    כמו-כן, חשוב לציין שבמסד רשום:
    מסמך DOC
    מצגת POWERPONT וכו'..

    האם ישנה דרך אחרת להציג את התמונה?

  11. BuildHome הגיב:

    ככה
    Select Case sign
        Case "Doc"
            yourImg = "images/doc.gif"
        Case "PowerPoint"
            yourImg = "images/ppt.gif"
    End Select

    ככה עושים זאת.

  12. זהר פלד הגיב:

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

  13. Hagai2005 הגיב:

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

    אשמח לעזרה,
    חגי.

  14. BuildHome הגיב:

    אל תכליל
    תגיד מה בדיוק לא הבנת.
    מה בדיוק ניסית? קיבלת שגיאה?

  15. MasterMind הגיב:

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

    נ.ב.
    קראתי את המאמר שב ASP.ORG.IL  אבל הוא לא עזר לי

  16. BuildHome הגיב:

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

  17. Hagai2005 הגיב:

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

  18. BuildHome הגיב:

    שום מערכים
    המאמר באתר לא מתעסק עם מערכים והוא מתאים לך.

  19. Hagai2005 הגיב:

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

    אודה מאוד לעוזרים, אשר יסבירו לי כיצד לבצע זאת, עפ"י איזה שיטה.

  20. Hagai2005 הגיב:

    שגיאה!
    השתמשתי במאמר מהאתר (ADO), על מנת לבצע עידכון ברשומות.
    הנה השגיאה שזה מציג לי.
    Expected identifier
    /sedit.asp, line 3, column 37
    Dim ID, Edit, Name, Subject, Author, Class, Date, Type, Size, Link
    ————————————^

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

  21. Hagai2005 הגיב:

    הקוד:

    <%
        Dim ID, Edit, Name, Subject, Author, Class, Date, Type, Size, Link
        Dim Conn, rs, SQL

        ID = Request.QueryString("id")
        Edit = Request.QueryString("Edit")  

    Set Conn = Server.CreateObject("ADODB.Connection")
        Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
                 Server.MapPath("sikumim.mdb")
        Set rs = Server.CreateObject("ADODB.RecordSet"

    If IsEmpty(ID) or IsNumeric(ID) = False Then ID = 0
          SQL = "Select * from Downloads where ID="&ID
        rs.Open SQL, Conn

    If rs.EOF Then
            Response.Write "<h3 align=""center"">הרשומה המבוקשת נמחקה או אינה קיימת במסד הנתונים!</h3>" & vbcrlf
        Else
            If Edit <> "True" Then
    %>

    ואז בא החלק שאחרי הקוד…


    <%
    Else
            Name= Request.Form("name")
            Subject= Request.Form("Subject")
            Author= Request.Form("Author")
            Class= Request.Form("Class")
            Date= Request.Form("Date")
            Type= Request.Form("Type")
            Size= Request.Form("Size")
            Link= Request.Form("Link")
            rs.Close

        SQL = "Select * from Downloads where ID="&ID
        rs.Open SQL, Conn, 2, 3
        rs("name") = name
        rs("Subject") = Subject
        rs("Author") = Author
        rs("Class") = Class
        rs("Date") = Date
        rs("Type") = Type
        rs("Size") = Size
        rs("Link") = Link
        rs.Update
        rs.Close  

    Response.Redirect("Done.asp")
            End If
        End If

        Set rs = Nothing
        Conn.Close
        Set Conn = Nothing
    %>

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

  22. BuildHome הגיב:

    אני לא יודע
    על מה מצביע החץ אבל מה שאני כן יודע זה שהמילה Date ו-Type שמורות ותצטרך לשנותן.

  23. Hagai2005 הגיב:

    מה ז"א?
    שמורות?
    לשנותן?
    אבל ככה רשום במסד…
    או שאתה מתכוון שאני אשנה את המילים בטופס?

    החץ לא מצביע על כלום, הוא מצביע על רווח…
    וזה ממש מעצבן אותי, זה תוקע אותי בעבודה…

  24. BuildHome הגיב:

    קרא באתר מאמר על המילים השמורות.

  25. MasterMind הגיב:

    לא מסתדר ניר…
    הנה השגיאה


    Syntax error. in query expression 'Users.ID NOT IN (SELECT TOP 0 ID FROM Users ORDER BY ID ASC)'.

    הנה הקוד


    sql = "SELECT TOP 15 ID ,Nick ,Password ,Email ,Fname ,Lname ,Gander ,Age ,Status ,IP ,Birthday  FROM Users WHERE Users.ID NOT IN (SELECT TOP "&(15*page)&" ID FROM Users ORDER BY ID ASC)"

    ואני קורא לדף בלי ה PAGE כלומר יוצא שהPAGE שווה לאפס
    יכול להיות שזו הטעות כי כשניסיתי להיכנס עם סטרינג שונה(users.asp?page=1)
    זה נכנס לי והציג את שאר המשתמשים כלומר ה 15 הבאים
    אז שאלתי היא  איך אפשר לעקוף את האפס ושיציג את ה 15 הראשונים כאשר אני קורא לדף בצורה רגילה ?
    תודה רבה מראש נועם צברי

  26. BuildHome הגיב:

    די פשוט
    תבדוק אם page = 0 ואז תבצע שאילתה ללא ה-page*15 ואם הוא גדול מ-0 אז תבצע את השאילתה כפי שכתבת.

  27. Hagai2005 הגיב:

    בעיה בטופס עידכון פרטים!
    אז ככה, יש לי בעיה חדשה!
    בניתי טופס שמשנה פרטים- לפי ה-ID…
    בטופס מוכנסים Values, שמציגים את פרטי הסיכום (במקרה שלי) שאותם אני רוצה לעדכן.
    יש לי תא בשם: Name,ובתוכו מוכנס הערך

    <%=rs("name")%>

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

    מישהו יודע מה הבעיה?

    אשמח לעזרה,
    חגי.

  28. BuildHome הגיב:

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

  29. Hagai2005 הגיב:

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

    אשמח לתשובה מודרכת,
    חגי.

  30. MasterMind הגיב:

    כן ככה אני יודע
    תוסיף עמודה בשם הורדות או איך שאתה רוצה  וכל הורדה תוסיף 1
    אם אתה לא יודע אז השאילתה אמורה להראות ככה


    sql="SELECT * FROM Users WHERE Nick='" & cint(request.querystring("Login"))& "'"

    מקווה שעזרתי  נועם צברי

  31. Hagai2005 הגיב:

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

    כיצד לקשר בין זה שמשתמש כלשהו (מסד 1) מוריד סיכום (מסד 2)?
    לא הבנתי כ"כ את השאילתה..
    Sorry

    חג שמח ושבת שלום,
    חגי.

  32. Hagai2005 הגיב:

    שאלה חדשה ופשוטה- תאריכים!
    יש לי טופס המכניס למסד.
    בטופס הכותב למסד הנתונים, יש קוד כזה:


        rs.Fields("Date") = FormatDateTime(Now,2)

    הקוד מכניס לעמודה במסד את התאריך הנוכחי : 6 ספרות.
    הבעיה היא…
    שזה מכניס את התאריך בסדר הפוך:
    למשל, היום התאריך:
    01/10/2004
    והוא הכניס למסד:
    2004/10/01

    האם ניתן לפתור את הבעיה?
    תודה לעוזרים!

  33. BuildHome הגיב:

    אתה יכול
    לשנות את התצוגה של התאריך עם הפונקציות day,month,year.
    אגב, התאריך אמור להיות בפורמט mm/dd/yyyy ולא dd/mm/yyyy

  34. BuildHome הגיב:

    תעתיק את הטבלאות ממסד
    המשתמשים אל מסד המוצרים דרך אקסס.

  35. Hagai2005 הגיב:

    איך לשנות את התצוגה? ו…
    איך לשנות את התצוגה של התאריכים?
    והרי שזה קוד בפני עצמו.

    ונניח שבמסד אחד יש את המשתמשים ואת ההורדות,
    מה הלאה?

    תודה על התמיכה ועל כל העזרה…

  36. BuildHome הגיב:

    תשובה
    1. כשאתה מציג תאריך, אתה בדר"כ מציג אותו כ-As Is (ללא שינוי):
    <%=rs("theDate")%>
    אתה צריך להציגו בצורה הזאת:
    <%=
    theDate = rs("theDate")
    theDate = Day(theDate) & "/" & Month(theDate) & "/" & Year(theDate)
    %>

    ואם אתה רוצה גם עם שעה אז תעשה כך:
    <%=
    theDate = rs("theDate")
    theDate = Day(theDate) & "/" & Month(theDate) & "/" & Year(theDate) & " " & FormatDateTime(theDate,4)
    %>

    2. תצטרך להוסיף עמודה בטבלת המשתמשים, למשל בשם lastDL מסוג מספר.
    כשהמשתמש מוריד סיכום מסוים אז תצטרך לעדכן גם את העמודה lastDL עם ID ההורדה שהוא כרגע מוריד, לדוגמא:
    Conn.Execute("UPDATE users SET lastDL="&Request.QueryString("id"))
    ולאחר מכן לבצע את ההפניה לקישור ההורדה.
    בתצוגה של ההורדה האחרונה של כל משתמש, פשוט תשתמש בשאילתה פשוטה שתשלוף את שם ההורדה לפי ה-ID שמופיע בעמודה lastDL של המשתמש.

  37. Hagai2005 הגיב:

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

    תודה לעוזרים,
    שבת שלום.

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


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

    אתה יכול לשתול אצלו עוגייה שאומרת שהוא חסום ואז זה יעזור קצת כדי שהמשתמש לא יוכל להירשם
    אל תחסום IPים כי הם הם מתחלפים ויכולים להגיע לאנשים שלא עשו כלום

  39. Hagai2005 הגיב:

    תגובה…
    נגיד והוספתי עמודה למסד – סטטוס ואם היא מסומנת אז הוא חסום,
    כיצד באמת לבדוק זאת ברמת הקוד?

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

    אם אפשר, ארצה שתסביר לי יותר את העניין של המסד נתונים,
    התהליך עצמו כיצד מתבצע?

  40. MasterMind הגיב:

    הזמנו היה פה דיון גדול מאוד
    והמסקנה מהדיון הזה היה שאי אפשר באמת לחסום מישהו
    כי הכול אפשר לשנות…..
    ועוד עצה לי אליך  במקרה ואתה רוצה לגם לעשות מנהל שם (כללי)
    תקח עמודה ותקרא לה סטטוס ובה תכניס ערכים מ 1-4 (אפשר לחסום ע"י חוק אימות)
    וברמת הקוד תבדוק האם השם משתמש והסיסמא נכונים
    אם כן תתחיל לבדוק מה הוא  תכניס תמידע למשתנה ובסוף בעזרת SELECT CASE
    תוציא את הפלט הנכון
    מקווה שעזרתי נועם צברי
    נ.ב.
    אפשר לחסום בעזרת אימייל של ספקית האינטרנט אבל גם זה ניתן לשינוי (ולזיוף)
    אז כדי שלא יזייפו תשלח לשם את הסיסמא והמידע על המשתמש…..

  41. MasterMind הגיב:

    מצטער על הטעויות…
    פשוט מיהרתי
    *בזמנו
    *ואם אתה רוצה לעשות מנהל כללי

    וכשאני אומר שאפשר לחסום ע"י חוק אימות
    כשאתה בוחר (בתצוגת עיצוב) "מספר" מופיע לך למטה כל מיני אפשרויות
    אחת מהם היא חוק אימות  תיכנס לשם ותרשום 1or  2 or 3 or 4

    (יכול להיות שאפשר לאמת(חוק אימות) בדרך אחרת  אבל לי ככה זה הצליח

  42. BuildHome הגיב:

    לבדוק ברמת הקוד
    זה לבדוק בשאילתה פשוטה.
    כשאתה בודק את פרטי המשתמש כאשר הוא מנסה להתחבר תבדוק גם את הסטטוס.
    האם הוא false (לא חסום) ואז תפעל בהתאם.

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

    אתה לא יכול לחסום משתמש באופן מוחלט אך אפשרי באופן חלקי.

  43. Hagai2005 הגיב:

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

    שלישית- השאלה…
    איזכור סיסמה למשתמש ע"י שליחה לאימייל…
    איך עושים את זה?
    והאם ניתן לעשות זאת כאתרי מאוכסן על שרת חינמי?

    תודה מראש,
    חגי.

  44. BuildHome הגיב:

    אתה מדבר על דברים פשוטים
    כל מה שאתה מדבר עליהם מתבצעים בעזרת שאילתה מתאימה.

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

  45. MasterMind הגיב:

    תשמע…
    האימייל זה בעייתי אבל אפשר לנסות להתחבר לשרת מייל ומשם לשלוח
    אבל בעיקרון אתה מחפש את השם משתמש במסד ומשם לוקח תאימייל –> מכניס למשתנה
    ושולח אימייל עם המידע בפנים
    אבל כבר הסברתי  זה בעייתי נורא

    לגבי החוק אימות (בילד לא ראיתי תתגובה שלך )
    רשמתי בתגובה שלי… בתצוגת עיצוב מופיע לך למטה חוק אימות
    (אני אצרף תמונה משלי כדי שתראה בדיוק) שמה אתה משנה למה שאת רוצה

    מקווה שעזרתי  נועם צברי

  46. Dj NaSh הגיב:

    המילה Class היא מילה שמורה
    גם המילה Class, וגם Date ו-Type הן מילים שמורות,
    אתה לא יכול לקרוא ככה למשתנים שאתה יוצר.

    בכל מקרה, השם של המשתנים לא חייב להיות זהה לשמות של השדות ב-DB שלך,
    ככה שאתה יכול לקרוא להם אפילו ClassField, DateField ו-TypeField.

  47. Hagai2005 הגיב:

    תיבת Checkbox – הכנסה למסד נתונים..
    משהו שלא מסתדר לי…
    בניתי טופס הרשמה, ובחלק שמכניסים את הכתובת דו"אל, אז עשיתי
    תיבת מילוי (Checkbox).
    הבעיה היא.. שבטופס שממלא את הנתונים למסד..
    איך בדיוק להכניס את זה שהשמתמש סימן ב-V את התיבה או לא…
    במסד יש עמודה בשם mail, עם אפשרות של כן/לא…
    אני עובד עם ADO…
    כמו שלממשל בקוד הזה שכותב את השם של המשתמש:

    rs.Fields("Fname") = Request.Form("Fname")

    אז איך לעשות זאת?

  48. BuildHome הגיב:

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

  49. Hagai2005 הגיב:

    לא עובד… שגיאה…
    זה לא עובד כשעושים ככה, זה מעיד על שגיאה,
    הכנסתי את הקוד:


    rs.Fields("mail") = Request.Form("mail")

    מיותר לציין שבמסד יש עמודה בשם mail, מסוג כן/לא.
    אך עדיין יש שגיאה.
    Type Mismatch… משהו כזה, לא זוכר…
    וזה מראה לי את השורה הנ"ל.
    מה הבעיה? כיצד לפתור אותה?

  50. BuildHome הגיב:

    אתה צריך
    לבדוק את הערך לפני הוספתו למסד.
    תבדוק בצורה כזו:
    mail = LCase(Request.Form("mail"))
    If Len(mail) = 0 or (mail <> "true" and mail <> "false") Then mail = False
    rs("mail") = mail

  51. Hagai2005 הגיב:

    בעיה—> רקורדסט / חסימה
    אז ככה…
    בקשר לחסימה…
    בדף שמבצע התחברות, אני מגדיר רקורדסט חדש,
    שאומר ככה בעצם:


    <%
    Set rs = Server.CreateObject("ADODB.Recordset")
    SQL = "SELECT * FROM login Where rs.Fields("Loginname") = Request.Form("txtname")"

    rs.Open SQL, conn, 1, 1
    If rs1.Fields("status") = "2" then
    Response.Redirect("Blocked.asp")
    Response.End
    End if
    %>

    מה עשיתי פה בעצם?
    במסד יש עמודה בשם status מסוג מספר.
    1 = משתמש משוחרר.
    2 = משתחרר חסום.
    כרגע כולם מוגדרים על 1 – משוחרר…
    מה שאתם רואים למעלה, זה בעצם…
    שזה צריך לחפש במסד את הסטאטוס של המשתמש- הוא מחפש במסד את השם משתמש שהוא קיבל מהטופס…
    בגלל זה יש Request.Form, ואז הוא רואה אם הסטאטוס שלו אחד או 2.
    אם זה 2, זה מוביל לדף החסימה, שם נשתלת עוגייה…
    הבעיה היא.. שזה לא עובד..
    משהו כאן לא הגיוני, נראה לי שהרקורדסט לא מוגדר טוב.

    נ.ב
    בטופס התחברות – txtName = לשם משתמש שבמסד – LoginName.
    מה לא בסדר בקוד?
    אודה לעוזרים!

  52. Hagai2005 הגיב:

    תיקון טעות…
    בשורה החמישית אמור להיות רשום rs, ולא RS1…
    Sorry

  53. BuildHome הגיב:

    כנראה אתה לא יודע
    לשרשר משתנים לשאילתה.
    SQL = "SELECT * FROM login Where Loginname='"&Request.Form("txtname")&"'"
    לדעתי אתה צריך לעבור קצת על מדריך ה-SQL.
    קרא איך משרשרים שאילתה.

  54. Hagai2005 הגיב:

    שירשור נכון? = שגיאה?
    האם השירשור נכון?


    <%
    set rs=server.createobject("adodb.connection")
    rs="provider=microsoft.jet.oledb.4.0; data source="& server.MapPath("Sikumim.mdb") &""
    set SQL=server.createobject("adodb.recordset")
    SQL.activeconnection=rs
    SQL = "SELECT * FROM login Where Loginname = '"&Request.Form("txtname")&"'"

    rs.Open SQL, conn, 1, 1 If rs.Fields("status") = "2" then
    Response.Redirect("Blocked.asp")
    Response.End
    End if
    %>

    ישנה שגיאה בעת הרצת הדף:
    Microsoft VBScript runtime error '800a01a8'

    Object required: 'rs1'

    /hagai2004/Sikumim2/yell.asp, line 21
    שורה 21 מודגשת…
    מה הבעיה?

  55. Hagai2005 הגיב:

    תיקון…
    בשגיאה זה rs…
    ורק השורה המודגשת זה שורה 21
    מה שאחרי מודגש, צריך להיות בשורה נפרדת…

  56. BuildHome הגיב:

    התבלבלת
    יצרת חיבור למסד נתונים בשם rs ורקורדסט בשם SQL ואין לך חיבור בשם conn.

  57. Hagai2005 הגיב:

    הבעיה סודרה!
    תודה לכל התומכים,
    ובמיוחד לעמי…

שלח תשובה