הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [ASP] יש לי בעיה תעזרו לי למצוא אותה בבקשה (https://hosts.co.il/forums/showthread.php?t=43132)

wanksta 09-04-07 00:14

[ASP] יש לי בעיה תעזרו לי למצוא אותה בבקשה
 
עריכה:
הסתדרתי כבר... אפשר לנעול את ההודעה

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

Response object error 'ASP 0251 : 80004005'
 
Response Buffer Limit Exceeded
 
/almogk/ASP/Maabada/Chap03/insertUser.asp, line 0
 
Execution of the ASP page caused the Response Buffer to exceed its configured limit.

למה??? |דמעות|
זה הדף:

קוד:

<html dir="rtl">
    <body>
<!-- #INCLUDE FILE="style" -->
<&#37;
dim lname
dim password
dim fname
dim username
dim email
dim byear
dim gender
lname=Request.Form("lname")
fname=Request.Form("fname")
password=Request.Form("password")
username=Request.Form("username")
email=Request.Form("email")
byear=Request.Form("byear")
gender=Request.Form("gender")
isadmin=request.form("isadmin")
if isadmin<>yes then
    isadmin="no"
end if
ex=1
set oConn =server.CreateObject("adodb.connection")
oConn.Open "Driver={Microsoft Access Driver (*.mdb)};"&_
        "Dbq=" & Server.MapPath("db1.mdb") & ";" &_
        "Uid=;"&_
        "Pwd=;"
set db1rs=server.CreateObject("adodb.recordset")
selectall="select * from name"
db1rs.Open selectall, oConn
sqlstring=" insert into Name values ('"&fname&"','"&lname&"','"&password&"','"&username&"','"&email&"','"&byear&"','"&gender&"','"&isadmin&"') "
do while not db1rs.EOF or ex=0
    if db1rs.Fields("username")=username then
        response.write "שם המשתמש אשר בחרת תפוס, לחץ "
        response.write "<a href='register.asp'>כאן</a>"
        response.write " כדי לחזור להרשמה ובחר שם משתמש אחר."
        ex=0
    end if
    if db1rs.Fields("email")<>email then
        db1rs.MoveNext
    else
        response.write "כתובת המייל אשר בחרת תפוסה, לחץ "
        response.write "<a href='register.asp'>כאן</a>"
        response.write " כדי לחזור להרשמה ובחר כתובת אחרת."
        ex=0
    end if
Loop
if ex=1 then
    oConn.execute (sqlstring) 
end if
db1rs.Close
set db1rs=nothing
oConn.Close
set oConn=Nothing
 
Response.Redirect "register.asp"
%>
<!-- #INCLUDE FILE="cstyle" -->
    </body>
</html>


somebody 09-04-07 00:56

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

את כל מה שכתבת כאן, אפשר לכתוב ב-4 משפטים פשוטים בלי לולאות ובלי סיבוך.
סה"כ:
PHP קוד:


Dim ex
ex=1:
sqlstring="insert into Name values ('"&fname&"','"&lname&"','"&password&"','"&username&"','"&email&"','"&byear&"','"&gender&"','"&isadmin&"')":
sql="select name.fname from name where name.email='"&email&"'":
set rs=Server.CreateObject("ADODB.Recordset"):
rs.open sql,oConn,3,1:
if(
not rs.eof)then
        response
.write "כתובת המייל אשר בחרת תפוסה, לחץ ":
        
response.write "<a href='register.asp'>כאן</a>":
        
response.write " כדי לחזור להרשמה ובחר כתובת אחרת.":
        
ex=0:
end if:
rs.close
sql
="select name.fname from name where name.username='"&username&"'":
rs.open sql,oConn,3,1:
if(
not rs.eof)then
        response
.write "שם המשתמש אשר בחרת תפוס, לחץ "
        
response.write "<a href='register.asp'>כאן</a>"
        
response.write " כדי לחזור להרשמה ובחר שם משתמש אחר."
        
ex=0
end 
if:
rs.close:
set rs=nothing:
if(
ex=1)then
    oConn
.execute (sqlstring) : 
end if: 


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

בלי לולאות ובלי כלום.
פחות או יותר 4 שורות(SQL, RS, OPEN) שזה שורה אחת, IF, ואז הגדרת SQL לשם המשתמש, ו-IF נוסף.
זהו.

עכשין אין סיבה שזה לא יעבוד.

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


כל הזמנים הם GMT +2. הזמן כעת הוא 22:32.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ