צפיות
תשובות
מה לא בסדר כאן ?????
עשיתי מערכת השעיה של משתמש והכנסתי למסד נתונים 5 משתמשים
2 מושעים
2 רגילים
1 מנהל
כשהקשתי את הקוד הנכון של המנהל הוא אמר לי שאני מושעה
כשהקשתי סתם שטויות זה הקליד לי שיש טעות בשם משתמש או הסיסמא – שזה טוב
וכשהקשתי את השם משתמש וסיסמא של משתמש רגיל זה אמר לי שאני מושעה
מה לא בסדר בקוד הנ"ל
<%
Dim conn, rs, gogo
Set conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
conn.Open "myDSN"
rs.Open "SELECT * FROM godonodo WHERE Login='" & Request("Login") & "'" ,conn
if rs.EOF then
Response.Write "<center><FONT COLOR='red'>"
Response.Write "שם המשתמש או הסיסמא אינם נכונים</FONT></center>"
else
If Request("Password")<>rs("Password") Then
gogo = false
Else
gogo = true
session("Login") = rs("Login")
if rs.fields("Admin") = true then
session("Admin") = true
Else
session("Admin") = false
if rs.fields("Status") = true then
session("Status") = true
else
session("Status") = false
End If
End If
End If
End If
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
If gogo = true and session("Status") = false and Session("Admin") = true Then
Response.Redirect "/Default.asp"
else
if gogo = true and session("Status") = true Then
Response.Write "<center><FONT COLOR='red'>"
Response.Write "שם המשתמש מושעה <BR> לבירור נוסף אנא פנה למנהל האתר </FONT></center>"
else
if gogo = true and Session("Admin") = False Then
Response.Redirect "/nonono.asp"
End If
End If
End If
ודרך אגב יש לי 2 עמודות שהם כן/לא אחת למנהל ואחת להשעיה
השעיה – Status
מנהל – Admin
תודה מראש נועם צברי
30 תשובות
חבל, זה סתם לשמור יותר מידי משתנים
על כל משתמש…
במערכת שלי בניתי שעל כל משתמש נשמר הסטטוס משתמש..
אם הסטטוס=0 זה אומר שהוא מושעה
אם הסטטוס=1 זה אומר שהוא פעיל
אם הסטטוס=2 זה אומר שהוא מנהל
אם הסטטוס=3 זה אומר שהוא מנהל גלובאלי
וכן הלאה…
ופשוט אתה לא צריך לשמור יותר מידי נתונים על כל משתמש, דבר שמנפח את המסד נתונים…
ובקשר לשאלה, כשאתה מקליד יוזר וססמא של מישהו שמושעה, זה נותן לו להכנס?
אם כן פשוט התנאי שלך הפוך… תבדוק..
בהצלחה.
לא זה לא נכנס בכלל
כשאני מכניס קוד שגוי זה אומר לי סיסמא שגוייה
שכאני מכניס שם משתמש מודעה זו אומר לי מושעה
כשאנימכניס שם משתמש של מנהל או רגיל זה אומר לי גם מושעה
אם אתם רוצים קוד יש בהודעה הקודמת !!
הנה הבעיה
בהתחלה כתבת:
If Request("Password")<>rs("Password") Then
gogo = false
Else
gogo = true
מה שאומר שכשהמשתנה gogo מקבל את הערך "אמת" זה אומר שהמשתמש יכול להכנס כי זה המשתמש האמיתי (הססמא שלו שווה לססמא שבמסד הנתונים)
ואילו אח"כ בתנאי כתבת:
if gogo = true and session("Status") = true Then
Response.Write "<center><FONT COLOR='red'>"
Response.Write "שם המשתמש מושעה <BR> לבירור נוסף אנא פנה למנהל האתר </FONT></center>"
כלומר, אם gogo הוא "אמת", אז- תכתוב למשתמש שהוא מושעה?! למה?..
אם הוא נכון, אז תפנה אותו לדף המתאים, אם הוא לא נכון- אז תפנה אותו להזדהות מחדש…
בהצלחה.
אוקיי אבל…….
שים לב מה רשום אחרי ה gogo אמת רשום ו סטטוס = אמת
שכאשר סטטוס= אמת הוא מושעה
אבל עזוב החלטתי לקחת בעצתו של SZA ואני אבנה את זה כמספרים
1-רגיל
2- מושעה
3- עורך כתבות
4- מנהל גלובאלי
ול SZA אם אני רוצה לשנות את זה אני עושה
rs.update ל ID של המשתמש
כאילו אם המשתמש הוא 2 ואני רוצה להעביר אותו ל 1 אז אני עושה
rs(status)=1
rs.update
זה נכון או לא ????????
הרעיון נכון הביצוע לא כ"כ 🙂
rs.Edit
rs("status")=1
rs.update
או ש…
כמובן אפשר לעשות את זה בSQL:
UPDATE users
SET staus=4
WHERE usernameTBL="sza"
משפט הSQL הזה ישנה את כל מי ששם המשתמש שלו הוא "sza" למנהל ראשי 😉
אוקיי תודה
שאלה בקשר למסדי נתונים
איך אני נותן לעמודה במסד נתונים גבולות
כלומר אני רוצה שאני אוכל לרשום מ 1 עד 4
אם אני ארשום 5 זה יציג לי שגיאה !!!!
איך עושים את זה????
אקסס?
כן אקסס 2000
ככה:
אתה פותח את הטבלה שלך בתצוגת עיצוב, ולוחץ על השדה שאתה רוצה. למטה בתיבת "חוק אימות" אתה שם את זה:
Between 1 And 4
תודה
מה לא בסדר בקוד הזה
זה קוד הרשמה::
<%
dim conn,rs
Set conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
conn.Open "myDSN"
rs.open "Select * from godonodo where Login='" & trim(Login) & "'", conn, 3, 3
if Rs.eof then
reg = "no"
else
reg = "yes"
end if
rs.close
if reg = "no" then
rs.Open "Select * From godonodo", conn, 3, 3
Rs.AddNew
Rs.Fields("FName") = request.form("Fname")
Rs.Fields("LName") = request.form("Lname")
Rs.Fields("Login") = request.form("Login")
Rs.Fields("Password") = request.form("Password")
Rs.Fields("IPaddress") = Request.ServerVariables ("REMOTE_ADDR")
Rs.Update
Rs.Close
if reg = "yes" then
response.write ("!שם משתמש קיים במערכת, אנא בחר שם משתמש אחר")
end if
end if
%>
אהההה והטעות היא בשורה של האיי פי
נסה את זה:
<%
dim conn,rs
Set conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
conn.Open "myDSN"
rs.open "Select * from godonodo where Login='" & trim(Login) & "'", conn, 3, 3
if Rs.eof then
reg = "no"
else
reg = "yes"
end if
rs.close
if reg = "no" then
rs.Open "Select * From godonodo", conn, 3, 3
Rs.AddNew
Rs.Fields("FName") = request.form("Fname")
Rs.Fields("LName") = request.form("Lname")
Rs.Fields("Login") = request.form("Login")
Rs.Fields("Password") = request.form("Password")
Rs.Fields("IPaddress") = Request.ServerVariables ("REMOTE_ADDR")
Rs.Update
Rs.Close
end if
if reg = "yes" then
response.write ("!שם משתמש קיים במערכת, אנא בחר שם משתמש אחר")
end if
%>
זה לא אמור לפתור את הבעייה, אבל זה תיקון של טעות לוגית קטנה… מאיזו סוג השדה IPaddres?
השדה מסוג מספר רגיל
אד תהפוך אותו לסטרינג.
הסתדר ולא הסתדר
מצד אחד זה עושה את ההרשמה אבל מצד שני כאשר
אני פותח את מסד הנתונים זה מראה לי את ההרשמה מקום אחרון
ושני מקומות ריקים אבל עם אותו ה IP כלומר זה מראה לי הכול ריק חוץ
מהאיי פי
איך זה יכול להיות !!
כאילו זה שלח את האייפי שלוש פעמים ואת השם משתמש וסיסמא פעם אחת
לא הבנתי כלום.
אההההה
עזוב כבר סידרתי את זה
עכשיו עוד משהו קטן ואני סוגר עניין
אני בונה פורום וההכנסת הודעה מתבצעת אבל זה לא מכניס לי את השם משתמש
עכשיו בדף כניסה (התחברות) שמתי סיישן שבתוכו יש את השם משתמש
ובזמן שליחת ההודעה זה אמור לקבל את השם שבתוך הסיישן
ובמקום זה כלום לא רשום !!!
בעצם במסד נתונים העמודה ריקה !!! כאילו כלום לא נכנס
הנה הקוד
Rs.Fields("Name") = Session("Login")
גם את זה סידרתי כבר
מה זה הטעות הזאת ???????
Response object error 'ASP 0156 : 80004005'
Header Error
/Login.asp, line 39
The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.
הנה שורה 39
response.redirect "/nonono.asp"
response.redirect
מכתיב http headers של מעבר (אם אני לא טועה)
ובזמן שאתה מכתיב HTML אי אפשר להפנות את הדף כי אתה כותב בו משהו
אוקיי ואיך מסדרים את זה???
כותבים לדף את פקודות הHTML אחרי ה..
Response.Redirect.
בהצלחה.
אני מצטער אבל…..
לא הבנתי !!!
לאחר RESPONSE.REDIRECT בא
"your_page.asp/"
לא קוד HTML !!!!
אתה יכול להסביר לי קצת יותר??????
אנו מתכוונים שהכתבת ללקוח ועשית re.
הרעיון הוא כזה
אי אפשר לעשות Response.Redirect אם כתבת משהו ללקוח (לזה שרואה את הדף…)
במקרה הזה כתבת לו כבר <HTML> או כל תג HTML אחר שיוצג לו על הדף, ולכן הדפדפן לא יכול להעביר אותו לדף אחר…
תעשה שהבדיקה הזו תבוא לפני כתיבת הקוד ללקוח, בשורות הראשונות של הקוד, ואז אם צריך תעביר אותו לדף הרצוי ואם לא, אז לא משנה…
או שתכתוב ללקוח רק אחרי כל הקוד…
אוקיי עשיתי את זה
סגרתי את הקונקשיין ואת הרקורדסט ורק אז פניתי ללקוח
אבל…….. זה אומר לי שהוא בכלל לא מושעה !!!!!
מכניס אותו כרגיל לדף של הפורום!!!
הנה הקוד אם אתם רוצים
<%
Dim conn, rs, gogo
Set conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
conn.Open "myDSN"
rs.Open "SELECT * FROM godonodo WHERE Login='" & Request("Login") & "'" ,conn
if rs.EOF then
Response.Write "<center><FONT COLOR='red'>"
Response.Write "שם המשתמש או הסיסמא אינם נכונים</FONT></center>"
Else
if Request("Password")<>rs("Password") Then
gogo = false
Else
gogo = true
if rs.fields("Status") = 1 then
session("Admin") = false and gogo = true
Elseif rs.fields("Status") = 2 then
Elseif gogo = false and Session("Admin") = false then
Elseif rs.fields("Status") = 3 then
session("Admin") = true and gogo = true
Elseif rs.fields("Status") = 4 then
session("Writer") = true and gogo = true
End If
End If
End If
if gogo = true then
session("Login") = rs.fields("Login")
End If
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
If session("Admin") = false and gogo = true then
response.redirect "/nonono.asp"
Elseif session("Admin") = true and gogo = true then
response.redirect "/Default.asp"
Elseif gogo = false and Session("Admin") = false then
response.write" <CENTER>שם המשתמש מושעה <BR> לבירור נוסף אנא פנה למנהל האתר</CENTER>"
Elseif session("Writer") = true and gogo = true then
response.redirect "/Default.asp"
End If
%>
ועוד שאלה איך אני בוחר את כל המשתמשים שמושעים ??? (מצב 2)
ככה ????
rs.Open "SELECT * FROM godonodo WHERE Status = 2"
אהההה
לא משנה מצאתי תטעות !!!!
ובקשר לשאלה השנייה ?????
בקשר לשאלה השניה:
ככה:
rs.Open "SELECT * FROM godonodo WHERE Status=2" ,conn
בהצלחה! 🙂