Avatar billede psyclown Nybegynder
30. marts 2002 - 23:54 Der er 12 kommentarer og
1 løsning

registrerings ting

Jeg har lavet en registrerings side som skal bruges til et community. Jeg kan sikkert godt selv finde fejlen, men gider ikke og sidde og fumle med det mere.
Den kommer med følgende fejl når jeg prøver at oprette en bruger:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i INSERT INTO-sætningen.
register.asp, line 43
Linien hvor det er, er nok ikke så svær at finde.
Koden til siden er her nedenunder:

<!--#include file="includes/functions.asp"-->
<!--#include file="includes/inc_top.asp"-->
<%
If Request.Form("Add") <> "" Then
strError = ""
Level = "user"
Username = Trim(Request.Form("Username"))
Password = Trim(Request.Form("Password"))
PasswordA = Trim(Request.Form("PasswordA"))
Alias = Trim(Request.Form("Alias"))
Email = Trim(Request.Form("Email"))
If Len(Username) = 0 Then
strError = "You have to type a username!"
ElseIf Len(Password) = 0 Then
strError = "You have to type a password!"
ElseIf Len(PasswordA) = 0 Then
strError = "You have to type your password again!"
ElseIf Not Password = PasswordA Then
strError = "Your passwords did not match!"
ElseIf Len(Alias) > 20 Then
strError = "Your alias is too long!"
ElseIf Len(Alias) = 0 Then
strError = "You have to type a alias!"
ElseIf Len(Email) = 0 Then
strError = "You have to type your email adresse!"
ElseIf checkEmail(Email) = False Then
strError = "You have to type a valid e-mail adress!"
End If
If Len(strError) = 0 Then
Set RegisterTemp = Server.CreateObject("ADoDB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("../db/clan_ld_db.mdb")
RegisterTemp.open DSN
'SQLCOUNTRY = "SELECT Countries,ID FROM [Countries] WHERE ID = "& M_CountryID
'Set rstemp = RegisterTemp.execute(SQLCOUNTRY)
'M_Country = rstemp("Countries")
'M_CountryID = rstemp("ID")
'rstemp.Close : set rstemp = Nothing
SQLREGISTER = "INSERT INTO [Users] (Level, Username, Password, PasswordA, Alias, Email) " &_
"VALUES ('" &Level& "', '" &Username& "', '" &Password& "', '" &passwordA& "', '" &Alias& "', '" &Email& "')"
Set rsRegister = RegisterTemp.execute(SQLREGISTER)
RegisterTemp.Close
Response.Redirect("login.asp")
Else
strError = "<font face=""verdana"" size=""1"" color=""#000000""><b>"& strError &"</b></font>"
End If
End If
%>
<td align="center" valign="top" height="135" width="425" background="design/Middle.jpg">
<font color="#000000" face="verdana" size="2"><br><br><br><br><br><br><br><br><br><br><br><b>Register</b></font>
</td>
<td align="left" valign="top" height="135" colspan="3">
<img src="design/Right.jpg" width="103" height="199"></td></tr>
<tr>
<td align="left" valign="top" width="31">&nbsp;</td>
<td align="left" valign="top" width="16"><img src="gIf/pixel.gIf" width="1" height="1"></td>
<td align="left" valign="top" background="gIf/dims2B.gIf" width="12">&nbsp;</td>
<td align="left" valign="top" width="425" bgcolor="C5C5C5">
<table align="center" border="0" cellpadding="0" cellspacing="0" width="425">
<tr>
<td align="center" width="100%"><%=strError%></td>
</tr>
</table><br>
<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>" method="POST">
<table border="0" cellpadding="3" cellspacing="0" width="425">
<tr>
<td>   
<table border="0" cellpadding="0" cellspacing="0" width="400">
<tr>
<td align="right" width="35%"><font color="#9D0B0E">*</font>Username:&nbsp;</font></td>
<td align="left" width="65%"><input size="30" type="text" name="Username" value="<%=Username%>"></td>
</tr>
<tr>
<td align="right" width="35%"><font color="#9D0B0E">*</font>Password:&nbsp;</font></td>
<td align="left" width="65%"><input size="30" type="password" name="Password" value="<%=Password%>"></td>
</tr>
<tr>
<td align="right" width="35%"><font color="#9D0B0E">*</font>Password Again:&nbsp;</font></td>
<td align="left" width="65%"><input size="30" type="password" name="PasswordA" value="<%=PasswordA%>"></td>
</tr>
<tr>
<td align="right" width="35%"><font color="#9D0B0E">*</font>Alias:&nbsp;</font></td>
<td align="left" width="65%"><input size="30" type="text" name="Alias" value="<%=Alias%>"></td>
</tr>
<tr>
<td align="right" width="35%"><font color="#9D0B0E">*</font>E-mail:&nbsp;</font></td>
<td align="left" width="65%"><input size="30" type="text" name="Email" value="<%=Email%>"></td>
</tr>
<tr>
<td width="35%">&nbsp;</td>
<td width="65%"><input type="submit" value=" Register " name="Add"></td>
</tr>
</table>
<br><center>A field marked with <font color="#9D0B0E">*</font> is a field that have to me filled out!</center>
</td>
</tr>
</table>
</form>
<!--#include file="includes/inc_footer.asp"-->

På forhånd tak!
Avatar billede doc404 Novice
31. marts 2002 - 00:07 #1
Hvad er level for en størrelse? Er det en streng?

Ellers prøv lige og lav en response.write SQLREGISTER & "<br>" for at se hvad det er du i virkeligheden forsøger...

Og et lille forslag:

Hvis man indtaster galt i alle felter bliver man præsenteret for en endeløs række af 'du har gjort dit galt'

Lav det istedet så man får en samlet oversigt over ens tastefejl ;-)

Altså noget lignende:

If Len(Username) = 0 Then
  strError = "You have to type a username!<br>"
End If

If Len(Password) = 0 Then
  strError = StrError & "You have to type a password!<br>"
End If

...

Der er ikke noget værre end at skulle bakke 5 gange fordi man måske er en idiot ;-)
Avatar billede psyclown Nybegynder
31. marts 2002 - 00:25 #2
Level = "user" er jo bare den level som alle brugere skal have fra starten af også skal en admin så ved hjælp af en drop down box vælge hva level de forskellige brugere skal have.

Jeg viste godt at man kunne skrive response.write SQLREGISTER & "<br>", men kunne bare ikke huske hvor man skulle skrive det, men det kan du vel lige sige ;)

Der er flere felter i tabellen end dem som står i scriptet, men jeg vil ikke have at brugeren skal udfylde utallige af felter bare for at oprette sig, det skal der være en redigerings side til. Så jeg tænkte på at resten af felterne måske skulle være "hidden"...hvis du forstår hvad jeg mener.

Det med de tastefejl, det havde jeg også tænkt på at gøre, men scriptet er ikke færdigt i nu, så jeg ville vente med at gøre det, til jeg havde lavet de vigtigste ting, men ellers tak for tippet.
Avatar billede doc404 Novice
31. marts 2002 - 00:31 #3
Sæt den der Response.Write ind lige før

Response.Write SQLREGISTER & "<br">
Set rsRegister = RegisterTemp.execute(SQLREGISTER)
Avatar billede psyclown Nybegynder
31. marts 2002 - 00:41 #4
der sker intet :/
Avatar billede doc404 Novice
31. marts 2002 - 00:48 #5
Den skulle gerne skrive et eller andet i toppen af skærmen!

Mindst "INSERT INTO...."
Avatar billede psyclown Nybegynder
31. marts 2002 - 00:53 #6
nope det gør den ikke...du kan selv kigge på www.limitless.dk/register.asp
Avatar billede psyclown Nybegynder
31. marts 2002 - 01:10 #7
det er da lidt underligt er det ik ?
Avatar billede doc404 Novice
31. marts 2002 - 01:31 #8
Prøv en gang lige at kommentere Set rsRegister og indtil Else'ne ud...
Avatar billede psyclown Nybegynder
31. marts 2002 - 01:37 #9
forstår ikke lige det sidste af den linie der
Avatar billede psyclown Nybegynder
31. marts 2002 - 01:42 #10
ja okay, jeg skulle kommetere fra Set rsRegister også til jeg nåede til else
Avatar billede psyclown Nybegynder
31. marts 2002 - 01:45 #11
og jeg prøvede at oprette en bruger også skrev den følgende øverst på siden:
INSERT INTO [Users] (Level, Username, Password, PasswordA, Alias, Email) VALUES ('user', 'psyclown', 'sdf', 'sdf', 'PsyClown', 'webmaster@over.dk')
Avatar billede doc404 Novice
31. marts 2002 - 01:59 #12
Godt...den ser rigtig ud...

Men LEVEL er måske det feltnavn der driller, da det er et reserveret ord i MS Access SQL - Prøv at ændre det til whatever UsrLevel... f.eks.
Avatar billede psyclown Nybegynder
31. marts 2002 - 03:07 #13
ja, det kunne jeg jo have sagt mig selv, for nu virker det da =)
Jeg kunne vel også bare sætte [] rundt om level ?

Ellers mange tak for hjælpe!
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