Avatar billede stivert.dk Nybegynder
03. maj 2000 - 21:00 Der er 8 kommentarer

Fejl i script

Hej.. Nogen som kan se fejlen i dette script ? Den udskriver ingen fejl, men heller ingen html :(
--------------------
Create.asp

<%@ Language=VBScript %>
<%Response.Buffer = true %>
<%
If Session("usrID") = "" Then
Response.Redirect "default.asp"
End If
%>
<%
If Not Request.Form("usrName") = "" then
If Not Request.Form("RealName") = "" then

    set userConn= Server.CreateObject("ADODB.Connection")
    userConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../wrz.mdb") & ";DriverId=25;FIL=MS Access"

    strUsrName = Request.Form("usrName")
    strRealName = Request.Form("RealName")
    strIcq = Request.Form("Icq")
    strAdresse = Request.Form("Address")
    strTown = Request.Form("Town")
    strPostnr = Request.Form("Postnr")
    strUsrStatus = Request.Form("usrStatus")
    strTlfnr = Request.Form("Tlfnr")
    strAge = Request.Form("Age")

   
    'userConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../wrz.mdb") & ";DriverId=25;FIL=MS Access;MaxBufferSize=512;PageTimeout=5"
    checkSQL = "Select * FROM User Where usrName = '"& strUsrName &"'"
    set checkRS=userConn.Execute (checkSQL)

If Not checkRS.EOF And Not checkRS.BOF Then
   
    DoWhat = "Stop"

    Else

    DoWhat = "Go"
    Response.Write "Go!"
End if

'###############    En lille forsinkelse....så serveren får tænkt sig om
    Sub TLdelaySec(DelaySeconds)
    SecCount = 0
    Sec2 = 0
    While SecCount < DelaySeconds + 1
    Sec1 = Second(Time())
    If Sec1 <> Sec2 Then
    Sec2 = Second(Time())
    SecCount = SecCount + 1
    End If
    Wend
    End Sub

    TLdelaySec(2)
'###############    Forsinkelsen er her 2 sekunder (..TLdelaySec(2) , 2 = antal sek)

If DoWhat="Go" Then

    createSQL = "Insert Into User (usrName, RealName, Icq, Address, Town, Postnr, usrStatus, Tlfnr, Age) Values ('"& strUsrName &"', '"& strRealName &"', '"& strIcq &"', '"& strAddress &"', '"& strTown &"', '"& strPostnr &"', '"& strUsrStatus &"', '"& strTlfnr &"', '"& strAge &"')"
    set RS=userConn.Execute (createSQL)
   
    Response.Redirect "admin.asp"

Else
%>
<html>
<head>
<link rel="stylesheet" href="/styles.css">
<title>Fejl</title>
</head>
<BODY bgcolor="#FFFFFF">
Der opstod en fejl:<br>
Du kan ikke bruge dette navn, det er allerede taget!.<br>
<a href="" onClick="java script:history.back()">Tilbage</a>
<FONT FACE=Arial>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr bgcolor="#3399FF">
    <td><b>Create Member</b></td>
  </tr>
</table>
<form method="post" action="create.asp">
  <table width="274" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td width="94" bgcolor="#C0C0C0">&nbsp;User Name</td>
      <td width="176" bgcolor="#C0C0C0">
        <input type="text" name="usrName" size="24">
      </td>
    </tr>
    <tr>
      <td width="94" bgcolor="#C0C0C0">&nbsp;Real Name</td>
      <td width="176" bgcolor="#C0C0C0">
        <input type="text" name="RealName" size="24">
      </td>
    </tr>
    <tr>
      <td width="94" bgcolor="#C0C0C0">&nbsp;Address</td>
      <td width="176" bgcolor="#C0C0C0">
        <input type="text" name="Address" size="24">
      </td>
    </tr>
    <tr>
      <td width="94" bgcolor="#C0C0C0">&nbsp;Town</td>
      <td width="176" bgcolor="#C0C0C0">
        <input type="text" name="Town" size="24">
      </td>
    </tr>
    <tr>
      <td width="94" bgcolor="#C0C0C0">&nbsp;Area Code</td>
      <td width="176" bgcolor="#C0C0C0">
        <input type="text" name="Areacode" size="24">
      </td>
    </tr>
    <tr>
      <td width="94" bgcolor="#C0C0C0">&nbsp;ICQ</td>
      <td width="176" bgcolor="#C0C0C0">
        <input type="text" name="Icq" size="24">
      </td>
    </tr>
    <tr>
      <td width="94" bgcolor="#C0C0C0">&nbsp;Age</td>
      <td width="176" bgcolor="#C0C0C0">
        <input type="text" name="Age" size="24">
      </td>
      </tr>
    <tr>
      <td width="94" bgcolor="#C0C0C0">&nbsp;Phone number</td>
      <td width="176" bgcolor="#C0C0C0">
        <input type="text" name="Tlfnr" size="24">
      </td>
    </tr>
    <tr>
      <td width="94" bgcolor="#C0C0C0">&nbsp;User Status</td>
      <td width="176" bgcolor="#C0C0C0">
        <input type="text" name="usrStatus" size="24">
      </td>
    </tr>
    <tr>
      <td width="94" bgcolor="#C0C0C0">&nbsp;</td>
      <td width="176" bgcolor="#C0C0C0">
        <div align="right">
          <input type="submit" name="Submit">
        </div>
      </td>
    </tr>
  </table>
</form>
</FONT>
</body>
</html>
<%

end if
end if
else
%>
<% end if %>

------------------------



Avatar billede lange Nybegynder
03. maj 2000 - 21:18 #1
Noget kunne tyde på, at "Not checkRS.EOF And Not checkRS.BOF" i "If Not checkRS.EOF And Not checkRS.BOF Then" evaluerer til false, hvorfor DoWhat bliver sat til "Stop"...

Prøv med denne i stedet for:

If (Not checkRS.EOF) And (Not checkRS.BOF) Then
Avatar billede ricardo Nybegynder
03. maj 2000 - 21:24 #2
Du mener, den indsætter ingen værdier?

set RS=userConn.Execute (createSQL)

burde laves om til

userConn.Execute(createSQL)

men jeg tror der er måske et par andre ting galt også:

TLdelaySec(2)

TLdelaySec er en sub. Brug

TLdelaySec 2

eller

Call TLdelaySec(2)

i stedet for.

Du kan også formattere din SQL lidt nemmere:

For each item in request.form
if len(Request.Form(item)) > 0 Then
If Isnumeric(Request.Form(item)) Then
Valstr = Valstr & Request.Form(item) & ","
Else
Valstr = Valstr & "'" & Request.Form(item) & "'"
End If
End If
Fldstr = Fldstr & item & ","

Next

Fldstr = left(Fldstr, len(Fldstr) -1)

Valstr = left(Valstr, len(Valstr) -1)

sql = "insert into User ("& Fldstr &") values ("& Fldstr &")"

Avatar billede stivert.dk Nybegynder
03. maj 2000 - 21:30 #3
Nogen som kan lave om på det hele, så det virker ???
Avatar billede ricardo Nybegynder
03. maj 2000 - 21:30 #4
Ups! Der var en fejl:

Valstr = Valstr & "'" & Request.Form(item) & "',"

Man behøver ikke checke for både rs.eof and rs.bof:

dostop = rs.eof

If not dostop then

Dowhat = "Go"

Else

Dowhat = "Stop"

End If

Jeg er altid forsigtig med at bruge "Not" da den vender det hele på hovedet.

Er du også sikker på at du har defineret alle felterne korrekt i DB'en? Du sender strenge til felter som strTlfnr...?
Avatar billede ricardo Nybegynder
03. maj 2000 - 21:31 #5
>> Nogen som kan lave om på det hele, så det virker ???

Så lærer du ikke noget selv :)
Avatar billede ortrak Nybegynder
03. maj 2000 - 21:43 #6
ricardo: hehe. learning by doing. Den apatiske ungdom nu til dags...(siger den 20 årige lærling her..)

/ortrak
Avatar billede stivert.dk Nybegynder
04. maj 2000 - 08:38 #7
Min felter i DB'en hedder "Tlfnr, RealName, usrName, Icq, Age, usrID,usrStatus,Address,Town,Areacode"
Avatar billede ricardo Nybegynder
04. maj 2000 - 09:49 #8
Der er vel ikke noget der forhindrer dig at kalde form-elementerne det samme som de felter de skal referere til?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester