Avatar billede webcreator Nybegynder
31. marts 2003 - 16:43 Der er 12 kommentarer og
1 løsning

Tjek om post eksistere i DB

Hej.

Jeg er ved at lave et login-system, hvilket ikke går helt efter planen. Jeg ønsker at lave et tjek på, om en brugere eksisterer i databasen, INDEN denne oprettes.

Jeg har følgende kode :

<%

var1=request.form("navn")
var2=request.form("usrnavn")
var3=request.form("psw1")
var4=request.form("psw2")

If var3 = var4 Then

dbname=Server.MapPath("db.mdb")

set cn = server.createobject("ADODB.Connection")
constr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & dbname
cn.connectionstring = constr
cn.open

' Tjek om brugeren allerede eksistere
$check = mysql_query("SELECT usrnavn FROM brugere where usrnavn='$_POST[usrnavn]'") or

die(mysql_error());

if(mysql_num_rows($check) != 0) {
response.redirect("logon.asp?opd=<h2>Brugeren eksistere allerede.</h2>");
exit;
}


' SQL sætning opbygges
strSQL = "Insert into brugere ("

strSQL = strSQL & "navn, "
strSQL = strSQL & "usrnavn, "
strSQL = strSQL & "psw1) "

strSQL = strSQL & "values( "

strSQL = strSQL & "'"& var1 &"', "
strSQL = strSQL & "'"& var2 &"', "
strSQL = strSQL & "'"& var3 &"')"

' SQL sætning eksekveres
Cn.Execute(strSQL)

' Luk databaseforbindelse
Cn.Close
Set Cn = Nothing

response.redirect("logon.asp?opd=<h2>Brugeren blev oprettet. Du kan nu logge ind.</h2>")

End If

response.redirect("tilmeld.asp?opd=<h2>Brugeren blev ikke oprettet. Tjek venligst din

indtastning</h2>")

%>
Avatar billede webcreator Nybegynder
31. marts 2003 - 16:46 #1
Det er denne kode, der volder problemer :

' Tjek om brugeren allerede eksistere
$check = mysql_query("SELECT usrnavn FROM brugere where usrnavn='$_POST[usrnavn]'") or

die(mysql_error());

if(mysql_num_rows($check) != 0) {
response.redirect("logon.asp?opd=<h2>Brugeren eksistere allerede.</h2>");
exit;
}


Jeg får fejlkoden :
Error Type:
Microsoft VBScript compilation (0x800A0408)
Invalid character
/infoc/opretusr.asp, line 18
$check = mysql_query("SELECT usrnavn FROM brugere where usrnavn='$_POST[usrnavn]'") or die(mysql_error());
Avatar billede webcreator Nybegynder
31. marts 2003 - 16:47 #2
Min database indeholder en tabel med navnet "brugere", samt bl.a en kolonne med navnet usrnavn
Avatar billede jpvj Nybegynder
31. marts 2003 - 16:48 #3
Må man have $ foran variable i ASP?

JP
Avatar billede webcreator Nybegynder
31. marts 2003 - 16:53 #4
Netop dette undrede også mig. Men netop Query'en har jeg fundet andetsteds.
Avatar billede webcreator Nybegynder
31. marts 2003 - 16:54 #5
Forslag til rettelser ?
Avatar billede jpvj Nybegynder
31. marts 2003 - 16:55 #6
Det ligner noget PHP du har konverteret. Er du sikker på, at det var en ASP side du fandt det på?

Har du prøvet at fjerne $'et?

JP
Avatar billede webcreator Nybegynder
31. marts 2003 - 16:57 #7
Ja, du har ret. Det ligner PHP. Men det var smidt i en ASP sektion.
Men ikke desto mindre, så tror jeg du har ret i, at det er PHP.

Nogen forslag til, hvordan jeg ellers kan tjekke, om en brugere eksistere ? Jeg har søgt lidt på eksperten - men jeg har ikke haft held med, at "nappe" noget af det kode jeg har fundet her. Det fungere simpelthen ikke..
Avatar billede eagleeye Praktikant
31. marts 2003 - 16:59 #8
Prøv at rette dette:


' Tjek om brugeren allerede eksistere
$check = mysql_query("SELECT usrnavn FROM brugere where usrnavn='$_POST[usrnavn]'") or

die(mysql_error());

if(mysql_num_rows($check) != 0) {
response.redirect("logon.asp?opd=<h2>Brugeren eksistere allerede.</h2>");
exit;
}


Til:

SQL = "SELECT usrnavn FROM brugere where usrnavn='" & var2 & "'")
Set rs = Conn.Execute(SQL)
if not rs.EOF then
  response.redirect("logon.asp?opd=<h2>Brugeren eksistere allerede.</h2>");
  Response.End
end if
Avatar billede eagleeye Praktikant
31. marts 2003 - 17:00 #9
Hmm uden ) til sidst lige efter "'" i SQL linjen.
Avatar billede webcreator Nybegynder
31. marts 2003 - 17:02 #10
Hm, nu får jeg en fejl på min redirect - det er som om, at den ikke får lov til at udføre den :

Error Type:
Microsoft VBScript compilation (0x800A0401)
Expected end of statement
/infoc/opretusr.asp, line 21, column 72
response.redirect("logon.asp?opd=<h2>Brugeren eksistere allerede.</h2>");
-----------------------------------------------------------------------^
Avatar billede webcreator Nybegynder
31. marts 2003 - 17:04 #11
Jeg får nøjagtig samme fejl, selv om jeg indtaster nogle værdier, som slet ikke eksistere i DB'en
Avatar billede eagleeye Praktikant
31. marts 2003 - 17:04 #12
Der skal heller ikke ; efter linjen:

response.redirect("logon.asp?opd=<h2>Brugeren eksistere allerede.</h2>")
Avatar billede webcreator Nybegynder
31. marts 2003 - 17:10 #13
Ah, selfølgelig. Kunne jeg ikke se - min fejlmeddelse så noget mere kryptisk ud, inden jeg fik den kopieret over i eksperten. Mærkeligt. Pilen pejede på </h2>.

Der var en mindre fejl mere - nemlig at jeg skulle erstatte Conn med Cn.

Men det virker nu. Mange tusind tak for hjælpen. Proft ! :)
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