Avatar billede w13 Novice
23. december 2003 - 19:09 Der er 11 kommentarer og
2 løsninger

Ikke gemme hvis brugernavnet findes

-Når en bruger udfylder en formular på min hjemmeside og klikker "indsend", vil han blive sendt til denne side, som gemmer de indtastede oplysninger:

<html>
<head>
<title></title>
</head>
<body bgcolor="#9FB7C0">
<font face="verdana" color="#497383" size="2"><b>
<%
  Set rs = Server.CreateObject("ADODB.RecordSet")
  Set Conn = Server.CreateObject("ADODB.Connection")
  strDSN = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db/ansogning.mdb")

  strSQL = "SELECT * FROM ansogning"

  rs.Open strSQL, strDSN, 2, 2
  rs.AddNew


  rs("brugernavn") = Request.Form("brugernavn")
  rs("password") = Request.Form("password")
  rs("navn") = Request.Form("navn")
  rs("email") = Request.Form("email")
  rs("alder") = Request.Form("alder")
  rs("kon") = Request.Form("kon")
  rs("amt") = Request.Form("amt")
  rs("kommune") = Request.Form("kommune")
  rs("job") = Request.Form("job")
  rs("ansogning") = Request.Form("ansogning")
  rs("dato") = Now()

  rs.Update

  'lukker pænt igen
  rs.Close
  set rs = Nothing

  response.Write "Oplysningerne er nu gemt!"
%>
<b></font>
</body>
</html>


-Men hvordan gør man sådan, at oplysningerne ikke bliver gemt, hvis det indtastede brugernavn allerede findes i databasen, men i stedet skriver, at oprettelsen ikke var mulig? Håber, i kan hjælpe mig, da jeg er virkelig skod til ASP...
Avatar billede Søren Bech Morsing Praktikant
23. december 2003 - 19:21 #1
strSQL = "SELECT * FROM ansogning WHERE brugernavn = '" & Request.Form("brugernavn") & "'"

  rs.Open strSQL, strDSN, 2, 2

if (rs.EOF) then
rs.Close()
strDSN.Close()
Response.Redirect("din oprindelige side.asp?error=exists")

end if
' ellers fortsætter du bare med din insert
rs.AddNew
Avatar billede Søren Bech Morsing Praktikant
23. december 2003 - 19:22 #2
æhh det hvor jeg skrev redirect, kan du jo også bare skrive
Response.Write("brugernavn findes allerede")
Response.End()

Men ellers skal du øverst på din side ha en if sætning
if (Request.Querystring("error") = "exists") then
Response.Write("brugeren findes allerede - forsøg igen")
end if
Avatar billede w13 Novice
23. december 2003 - 19:30 #3
-Hvor i koden skal jeg skrive det?
Avatar billede w13 Novice
23. december 2003 - 22:12 #4
-Jeg er ikke så god til ASP, og jeg ved ikke, hvor i koden jeg skal skrive det...
Avatar billede ellebaek Nybegynder
23. december 2003 - 22:28 #5
<html>
<head>
<title></title>
</head>
<body bgcolor="#9FB7C0">
<font face="verdana" color="#497383" size="2"><b>
<%
  Set rs = Server.CreateObject("ADODB.RecordSet")
  Set Conn = Server.CreateObject("ADODB.Connection")
  strDSN = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db/ansogning.mdb")

strSQL = "SELECT * FROM ansogning WHERE brugernavn = '" & Request.Form("brugernavn") & "'"

  rs.Open strSQL, strDSN, 2, 2

if rs.EOF then
rs.Close()
strDSN.Close()
Response.write("brugeren findes...")
else

  rs.AddNew


  rs("brugernavn") = Request.Form("brugernavn")
  rs("password") = Request.Form("password")
  rs("navn") = Request.Form("navn")
  rs("email") = Request.Form("email")
  rs("alder") = Request.Form("alder")
  rs("kon") = Request.Form("kon")
  rs("amt") = Request.Form("amt")
  rs("kommune") = Request.Form("kommune")
  rs("job") = Request.Form("job")
  rs("ansogning") = Request.Form("ansogning")
  rs("dato") = Now()

  rs.Update

  'lukker pænt igen
  rs.Close
  set rs = Nothing

  response.Write "Oplysningerne er nu gemt!"
end if
%>
<b></font>
</body>
</html>
Avatar billede w13 Novice
23. december 2003 - 22:36 #6
-Tja, den virker ikke når jeg sætter den ind... Den gemmer som den plejer og skriver "Oplysningerne er nu gemt!"
Avatar billede ellebaek Nybegynder
23. december 2003 - 22:37 #7
<html>
<head>
<title></title>
</head>
<body bgcolor="#9FB7C0">
<font face="verdana" color="#497383" size="2"><b>
<%
  Set rs = Server.CreateObject("ADODB.RecordSet")
  Set Conn = Server.CreateObject("ADODB.Connection")
  strDSN = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db/ansogning.mdb")

strSQL = "SELECT * FROM ansogning WHERE brugernavn = '" & Request.Form("brugernavn") & "'"

  rs.Open strSQL, strDSN, 2, 2

if not rs.EOF then
rs.Close()
strDSN.Close()
Response.write("brugeren findes...")
else

  rs.AddNew


  rs("brugernavn") = Request.Form("brugernavn")
  rs("password") = Request.Form("password")
  rs("navn") = Request.Form("navn")
  rs("email") = Request.Form("email")
  rs("alder") = Request.Form("alder")
  rs("kon") = Request.Form("kon")
  rs("amt") = Request.Form("amt")
  rs("kommune") = Request.Form("kommune")
  rs("job") = Request.Form("job")
  rs("ansogning") = Request.Form("ansogning")
  rs("dato") = Now()

  rs.Update

  'lukker pænt igen
  rs.Close
  set rs = Nothing

  response.Write "Oplysningerne er nu gemt!"
end if
%>
<b></font>
</body>
</html>

Min fejl...
Dette burde virke :-)

Glemte nottet!
Avatar billede w13 Novice
23. december 2003 - 22:39 #8
Microsoft VBScript runtime error '800a01a8'

Object required: 'Provider=Microsoft.J'

/ansogning_ok.asp, line 18
Avatar billede ellebaek Nybegynder
23. december 2003 - 22:41 #9
hvad er linie 18 ?
Avatar billede ellebaek Nybegynder
23. december 2003 - 22:42 #10
Nevermind, jeg ved hvad det er:

ret:
strDSN.Close()

til
set strDSN = nothing
Avatar billede w13 Novice
23. december 2003 - 22:45 #11
Juhuu, så virker det.. :) Tak... Jeg lader jer dele pointene, da i begge bidragede... Hvis du lige opretter et svar...
Avatar billede ellebaek Nybegynder
23. december 2003 - 22:47 #12
Så pyt da...
Avatar billede ellebaek Nybegynder
23. december 2003 - 22:48 #13
Takker for points...

Glædelig jul.
..Ellebæk!
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