1951
צפיות
צפיות
6
תשובות
תשובות
בעיה בASP
שלום ח'ברה ,
יש לי בעיה בדף רישום שבניתי.
הדף קולט נתונים מהמשתמש ורושם אותו במערכת (DB ב ACCESS)
בניתי את הדף חיפוש בסדר גמור והכל עבד, ואז הוספתי כמה שורות
כדי לבדוק האם קיים אותו שם משתמש פעמיים , אז הוא נותן הודעת שגיאה.
לאחר שהצלחתי לסדר גם את זה , יש לי בעיה חדשה…
אם השם משתמש כבר קיים הוא נותן הודעת שגיאה והכל תקין,
אך אם השם משתמש לא קיים הוא נותן הודעת שגיאה ואני לא מצליח לצאת מזה
אולי מישהו יוכל בבקשה לעזור לי.
צירפתי את הקובץ, זוהי הודעת השגיאה:
סוג שגיאה:
ADODB.Field (0x800A0BCD)
BOF או EOF הם בעלי ערך True או שהרשומה הנוכחית נמחקה. הפעולה המבוקשת דורשת רשומה נוכחית.
/insert.asp, line 22
זוהי השורה המדוברת:
If oStudentsClassRS.Fields("username").Value=Request.Form("username") Then
6 תשובות
שמע
בשאילתא שלך (קוד ה-SQL) תעשה שליפה של הרשומה שמכילה את שם המשתמש:
oStudentsClassRS.Open "SELECT username FROM members WHERE username='"+Request.Form("username")+"'"
(שנה את members לשם של הטבלה שלך במסד)
עכשיו כדי לבדוק האם שם המשתמש קיים או לא אתה בעצם בודק אם EOF שווה ל-TRUE.
EOF אומר שלא נשלפו רשומות או שהגעת לסוף הרקורדסט
IF oStudentsClassRS.EOF THEN
"' קוד אם השם משתמש לא קיים
ELSE
"' קוד אם השם משתמש כן קיים
END IF
אם לא מובן משהו אז תשאל
שני דברים
1. להבא, ישר לשמאל קטעי קוד .
2. השגיאה אומרת שהרשומה לא נמצאת .
אוקי ,
אבל איך זה יכול להיות?
הכוונה היא לרשומה שניסיתי להכניס?
כי אם כן , איך זה הגיוני? , לפני שניסיתי להכניס את הבדיקת כפילות הייתי קולט רשומות לDB בלי שום בעיה.
אני כמעט בטוח שאני יודע איפה השגיאה
שלך….
תציג כאן את הקוד שלך.. בכל אופן, אני מציע לך לעבור על הקוד של הקובץ
, ועל העמוד כולו כי זה בדיוק מה שאתה מנסה לעשות.קודם כל תודה על העזרה
אתה קצת טועה , אני לא מנסה לעשות LOG IN, אני מנסה לרשום משתמש חדש
ובודק האם היוזר שהוא הכניס כבר קיים.
אני חוזר שוב, בתחילה בניתי דף רישום רגיל בלי בדיקת כפילות יוזר, והכל עבד מעולה.הבעיה התחילה השהכנסתי את הבדיקה של הכפילות , כרגע המצב הוא שהבדיקת כפילות עובדת והכנסה של משתמש חדש (שהשם משתמש שהוכנס לא קיים במערכת) נותן את הודעת השגיאה שציינתי.
דרך אגב הקוד מופיע בקובץ TXT
בקובץ txt לא מופיע הקוד, אלא הפלט
בקשר לכפילויות, מה שאתה צריך זה אותו רעיון כמו במערכת login. משפט השליפה מהמסד יהיה:
select username from users where username='" & request("usern") & "'
ועל מנת לבדוק אם יש כפילות או לא תעשה כך:
if RS.eof then
'הכנסת הפרטים
else
response.write "שם המשתמש תפוס. אנא בחר שם משתמש אחר"
end if
קצת הסבר: לאחר שאתה קולט את הנתונים, אתה שולף רק את העמודה של ה- username. במידה והוא ימצא רשומה, זה אומר שקיים כבר ה- username הזה (החלק של ה- else). במידה והוא לא ימצא, תכניס את הנתונים.