שלח תשובה

זירת השאלות

1951
צפיות
6
תשובות

בעיה בASP

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

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

צירפתי את הקובץ, זוהי הודעת השגיאה:
סוג שגיאה:
ADODB.Field (0x800A0BCD)
‏‏BOF או EOF הם בעלי ערך True או שהרשומה הנוכחית נמחקה. הפעולה המבוקשת דורשת רשומה נוכחית.
/insert.asp, line 22

זוהי השורה המדוברת:
If    oStudentsClassRS.Fields("username").Value=Request.Form("username") Then

תגיות:

6 תשובות

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

    שמע
    בשאילתא שלך (קוד ה-SQL) תעשה שליפה של הרשומה שמכילה את שם המשתמש:

    oStudentsClassRS.Open "SELECT username FROM members WHERE username='"+Request.Form("username")+"'"

    (שנה את members לשם של הטבלה שלך במסד)

    עכשיו כדי לבדוק האם שם המשתמש קיים או לא אתה בעצם בודק אם EOF שווה ל-TRUE.
    EOF אומר שלא נשלפו רשומות או שהגעת לסוף הרקורדסט

    IF oStudentsClassRS.EOF THEN
    "' קוד אם השם משתמש לא קיים
    ELSE
    "' קוד אם השם משתמש כן קיים
    END IF

    אם לא מובן משהו אז תשאל

  2. prince01 הגיב:

    שני דברים
    1. להבא, ישר לשמאל קטעי קוד .
    2. השגיאה אומרת שהרשומה לא נמצאת .

  3. erantz הגיב:

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

  4. אני כמעט בטוח שאני יודע איפה השגיאה
    שלך….

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

  5. erantz הגיב:

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

  6. בקובץ txt לא מופיע הקוד, אלא הפלט
    בקשר לכפילויות, מה שאתה צריך זה אותו רעיון כמו במערכת login. משפט השליפה מהמסד יהיה:

    select username from users where username='" & request("usern") & "'

    ועל מנת לבדוק אם יש כפילות או לא תעשה כך:

    if RS.eof then
       'הכנסת הפרטים
    else
       response.write "שם המשתמש תפוס. אנא בחר שם משתמש אחר"
    end if

    קצת הסבר: לאחר שאתה קולט את הנתונים, אתה שולף רק את העמודה של ה- username. במידה והוא ימצא רשומה, זה אומר שקיים כבר ה- username הזה (החלק של ה- else). במידה והוא לא ימצא, תכניס את הנתונים.

שלח תשובה