Avatar billede Ewerty Nybegynder
12. december 2010 - 17:06 Der er 13 kommentarer og
1 løsning

Udvidelse af script (tilføj formfelter)

Hej alle

Endnu engang må jeg ty til jeres uundværlige viden, jeg har fundet et asp scrip på nettet "form to database" http://www.codefixer.com/tutorials/form_to_database.asp. Scriptet indeholder "kun" 3 indputfelter, jeg har så forsøgt mig med at udvide til mit behov (tilmeldingsformular til sportsklub. Jeg har taget et formfelt pr. gang og når jeg når til tilføjelse af formfelt nr. 5 går den gal, håber I kan hjælpe.

Her script som nu melder fejl

<% @ Language="VBScript" %>
<% Option Explicit %>

<head>
<title>Form to database</title>
</head>
<body>
<%
'declare your variables
Dim name, efternavn, adresse, postnr, by, email, comments
Dim sConnString, connection, sSQL

' Receiving values from Form, assign the values entered to variables
name = Request.Form("name")
efternavn = Request.Form("efternavn")
adresse = Request.Form("adresse")
postnr = Request.Form("postnr")
by = Request.Form("by")
email = Request.Form("email")
comments =Request.Form("comments")

'declare SQL statement that will query the database
sSQL = "INSERT into users_tbl (name, efternavn, adresse, postnr, by, email, comments) values ('" & _
name & "', '" & efternavn & "', '" & adresse & "', '" & postnr & "', '" & by & "', '" & email & "', '" & comments & "')"

'define the connection string, specify database
'driver and the location of database
sConnString="PROVIDER=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("Users.mdb")


'create an ADO connection object
Set connection = Server.CreateObject("ADODB.Connection")

'Open the connection to the database
connection.Open(sConnString)

'execute the SQL
connection.execute(sSQL)

response.write "Tak for din indmelding, du vil inden for 2 dage modtage en velkomstmail."

' Done. Close the connection object
connection.Close
Set connection = Nothing
%>
</body>

Jeg har lidt selv en ide om det er her det går galt:
values ('" & _
name & "', '" & efternavn & "', '" & adresse & "', '" & postnr & "', '" & by & "', '" & email & "', '" & comments & "')"

For at det kan bruges mangler jeg faktisk at tilføje 9 formfelter mere.

Dertil kommer at jeg også gerne skulle have en mail når indmeldelsen er udfyldt, men det må komme i anden række.

På forhånd tak for jeres hjælp.

Med venlig hilsen
Jane
Avatar billede claes57 Ekspert
12. december 2010 - 17:37 #1
du må ikke have et felt, der hedder 'by' - omdøb det til fx 'bynavn'
by er engelsk beskyttet i sql - bruges i sortering (order by xxx)
Avatar billede Ewerty Nybegynder
13. december 2010 - 19:45 #2
Hej Claes57

FANTASTISK nu virker HELE formularen til access database, også med checkbox og list/menu.

Jeg skulle vel ikke være så heldig at du også kunne løse mit problem med modtagelse af mail når formularen er udfyldt ?

Hilsen
Jane
Avatar billede claes57 Ekspert
13. december 2010 - 19:59 #3
så skal jeg have mere kode...
Avatar billede Ewerty Nybegynder
13. december 2010 - 21:16 #4
Det er jo lige DET som er problemet Claes57, jeg har INGEN ide om hvordan en email kode skal kobles sammen med nuværende ASP script, jeg har læst og læst på nettet om opsætning af f.eks. Jmail, men kan ikke finde en løsning på at koble dem sammen.
Jeg har unoeuro.com som webudbyder, hos dem har jeg mulighed for W3 Jmail.
Men har fuld forståelse hvis det kræver mere end 100 point, at koble email på nedenstående script.

Hele<% @ Language="VBScript" %>
<% Option Explicit %>

<head>
<title>Form to database</title>
</head>
<body>
<%
'declare your variables
Dim name, efternavn, adresse, postnr, bynavn, email, telefonnr, mobilnr, tlfnavn, kommune, foedt, klasse, licens, klub, arbudvalg, klubbet, comments
Dim sConnString, connection, sSQL

' Receiving values from Form, assign the values entered to variables
name = Request.Form("name")
efternavn = Request.Form("efternavn")
adresse = Request.Form("adresse")
postnr = Request.Form("postnr")
bynavn = Request.Form("bynavn")
email = Request.Form("email")
telefonnr = Request.Form("telefonnr")
mobilnr = Request.Form("mobilnr")
tlfnavn = Request.Form("tlfnavn")
kommune = Request.Form("kommune")
foedt = Request.Form("foedt")
klasse = Request.Form("klasse")
licens = Request.Form("licens")
klub = Request.Form("klub")
arbudvalg = Request.Form("arbudvalg")
klubbet = Request.Form("klubbet")
comments =Request.Form("comments")

'declare SQL statement that will query the database
sSQL = "INSERT into users_tbl (name, efternavn, adresse, postnr, bynavn, email, telefonnr, mobilnr, tlfnavn, kommune, foedt, klasse, licens, klub, arbudvalg, klubbet, comments) values ('" & _
name & "', '" & efternavn & "', '" & adresse & "', '" & postnr & "', '" & bynavn & "', '" & email & "', '" & telefonnr & "', '" & mobilnr & "', '" & tlfnavn & "', '" & kommune & "', '" & foedt & "', '" & klasse & "', '" & licens & "', '" & klub & "', '" & arbudvalg & "', '" & klubbet & "', '" & comments & "')"

'define the connection string, specify database
'driver and the location of database
sConnString="PROVIDER=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("Users.mdb")


'create an ADO connection object
Set connection = Server.CreateObject("ADODB.Connection")

'Open the connection to the database
connection.Open(sConnString)

'execute the SQL
connection.execute(sSQL)

response.write "Tak for din indmelding, du vil inden for 2 dage modtage en velkomstmail."

' Done. Close the connection object
connection.Close
Set connection = Nothing
%>
</body>
Avatar billede claes57 Ekspert
14. december 2010 - 12:22 #5
her er en mulighed - bemærk, at nede i koden skal du udfylde 3 linjer med data
mailserver = ""
mailmodtager = ""
mailafsender = ""
det kan være hhv fx smtp.mitsite.dk ewerty@mitsite.dk ewerty@mitsite.dk 


<% @ Language="VBScript" %>
<% Option Explicit %>

<head>
<title>Form to database</title>
</head>
<body>
<%
'declare your variables
Dim name, efternavn, adresse, postnr, bynavn, email, telefonnr, mobilnr, tlfnavn, kommune, foedt, klasse, licens, klub, arbudvalg, klubbet, comments
Dim sConnString, connection, sSQL

' Receiving values from Form, assign the values entered to variables
name = Request.Form("name")
efternavn = Request.Form("efternavn")
adresse = Request.Form("adresse")
postnr = Request.Form("postnr")
bynavn = Request.Form("bynavn")
email = Request.Form("email")
telefonnr = Request.Form("telefonnr")
mobilnr = Request.Form("mobilnr")
tlfnavn = Request.Form("tlfnavn")
kommune = Request.Form("kommune")
foedt = Request.Form("foedt")
klasse = Request.Form("klasse")
licens = Request.Form("licens")
klub = Request.Form("klub")
arbudvalg = Request.Form("arbudvalg")
klubbet = Request.Form("klubbet")
comments =Request.Form("comments")

'declare SQL statement that will query the database
sSQL = "INSERT into users_tbl (name, efternavn, adresse, postnr, bynavn, email, telefonnr, mobilnr, tlfnavn, kommune, foedt, klasse, licens, klub, arbudvalg, klubbet, comments) values ('" & _
name & "', '" & efternavn & "', '" & adresse & "', '" & postnr & "', '" & bynavn & "', '" & email & "', '" & telefonnr & "', '" & mobilnr & "', '" & tlfnavn & "', '" & kommune & "', '" & foedt & "', '" & klasse & "', '" & licens & "', '" & klub & "', '" & arbudvalg & "', '" & klubbet & "', '" & comments & "')"

'define the connection string, specify database
'driver and the location of database
sConnString="PROVIDER=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("Users.mdb")


'create an ADO connection object
Set connection = Server.CreateObject("ADODB.Connection")

'Open the connection to the database
connection.Open(sConnString)

'execute the SQL
connection.execute(sSQL)

' data til email
Dim mailserver, mailmodtager, mailafsender
mailserver = ""
mailmodtager = ""
mailafsender = ""
Set jmail = Server.CreateObject("JMail.Message")

jmail.AddRecipient ""& mailmodtager &"", ""& mailmodtager &""
jmail.From = "" & mailafsender & ""
jmail.Subject = "Indmelding via webside"

jmail.appendHTML "<style>"
jmail.appendHTML "body, td{"
jmail.appendHTML "COLOR: #000000;"
jmail.appendHTML "background: #FFFFFF;"
jmail.appendHTML "font-family: Verdana, sans-serif;"
jmail.appendHTML "font-size: 10px;}"
jmail.appendHTML "</style>"
jmail.appendHTML "<table border=""0"" cellpadding=""2"" cellspacing=""2"">"
jmail.appendHTML "<tr><td><b>Navn:</b></td>"
jmail.appendHTML "<td>" & name & "</td><td>" & efternavn & "</td></tr>"
jmail.appendHTML "<tr><td><b>Adresse:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & adresse & "</td></tr>"
jmail.appendHTML "<tr><td>&nbsp;</td>"
jmail.appendHTML "<td>" & postnr & "</td><td>" & bynavn & "</td></tr>"
jmail.appendHTML "<tr><td><b>Email:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & email & "</td></tr>"
jmail.appendHTML "<tr><td><b>Telefon:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & telefonnr & "</td></tr>"
jmail.appendHTML "<tr><td><b>Mobil:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & mobilnr & "</td></tr>"
jmail.appendHTML "<tr><td><b>Tlfnavn:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & tlfnavn & "</td></tr>"
jmail.appendHTML "<tr><td><b>Kommune:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & kommune & "</td></tr>"
jmail.appendHTML "<tr><td><b>Fødselsdato:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & foedt & "</td></tr>"
jmail.appendHTML "<tr><td><b>Klasse:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & klasse & "</td></tr>"
jmail.appendHTML "<tr><td><b>Klasse:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & klasse & "</td></tr>"
jmail.appendHTML "<tr><td><b>Licens:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & licens & "</td></tr>"
jmail.appendHTML "<tr><td><b>Klub:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & klub & "</td></tr>"
jmail.appendHTML "<tr><td><b>Arbudvalg:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & arbudvalg & "</td></tr>"
jmail.appendHTML "<tr><td><b>Klubbet:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & klubbet & "</td></tr>"
jmail.appendHTML "<tr><td><b>Kommentar:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & comments & "</td></tr>"
jmail.appendHTML "<tr><td><b>Dato:</b></td><td colspan=""2"">" & Now() & "</td></tr></table>"
jmail.Send(mailserver)

response.write "Tak for din indmelding, du vil inden for 2 dage modtage en velkomstmail."

' Done. Close the connection object
connection.Close
Set connection = Nothing
%>
</body>
Avatar billede Ewerty Nybegynder
14. december 2010 - 18:13 #6
Hej igen Claes57

Grrrrr kan ikke få det til at virke, men du skal have TUSINDE tak for din hjælp med hensyn til data til database, det virker 100%, så må jeg bare gå ind og tjekke en gang om dagen indtil jeg får den MØG mail oppe at køre *smil*.
Smider du lige et svar så du kan få dine points ?

Mange julehilsner
Jane
Avatar billede claes57 Ekspert
14. december 2010 - 18:33 #7
der er noget med, hvis du sætter en hotmail eller gmail ind, så er det meget specielt - men hvis du bare sender en mail til eget domæne, så bør det virke.
Avatar billede Ewerty Nybegynder
15. december 2010 - 18:29 #8
Det slog mig lige (ikke hårdt) at der vel i siden med formularen også skal være en action til mailen
<form name="form1" action="add_to_database.asp" method="post">
kan man godt have to actions til samme form ?
Avatar billede claes57 Ekspert
15. december 2010 - 18:36 #9
det er lagt lige efter database-kaldet, så den kører på samme form. Så det er ikke løsningen.
Har du et link til siden med mail-tilføjelsen, så jeg kan se fejlkoder?
Avatar billede Ewerty Nybegynder
19. december 2010 - 17:35 #10
Her link til formularen
http://www.amager-motocrossklub.dk/medlemsdatabase/indmelding_test_mail.asp

og her koderne på add_to_database_mail.asp

Jeg får stadigvæk ingen mail men indtastningerne i formularen ryger godt nok ind i databasen.

<% @ Language="VBScript" %>
<% Option Explicit %>

<head>
<title>AMcK indmeldingsformular til database</title>
</head>
<body>
<%
'declare your variables
Dim name, efternavn, adresse, postnr, bynavn, email, telefonnr, mobilnr, tlfnavn, kommune, foedt, klasse, licens, klub, arbudvalg, klubbet, kommentar
Dim sConnString, connection, sSQL

' Receiving values from Form, assign the values entered to variables
name = Request.Form("name")
efternavn = Request.Form("efternavn")
adresse = Request.Form("adresse")
postnr = Request.Form("postnr")
bynavn = Request.Form("bynavn")
email = Request.Form("email")
telefonnr = Request.Form("telefonnr")
mobilnr = Request.Form("mobilnr")
tlfnavn = Request.Form("tlfnavn")
kommune = Request.Form("kommune")
foedt = Request.Form("foedt")
klasse = Request.Form("klasse")
licens = Request.Form("licens")
klub = Request.Form("klub")
arbudvalg = Request.Form("arbudvalg")
klubbet = Request.Form("klubbet")
kommentar =Request.Form("kommentar")

'declare SQL statement that will query the database
sSQL = "INSERT into users_tbl (name, efternavn, adresse, postnr, bynavn, email, telefonnr, mobilnr, tlfnavn, kommune, foedt, klasse, licens, klub, arbudvalg, klubbet, kommentar) values ('" & _
name & "', '" & efternavn & "', '" & adresse & "', '" & postnr & "', '" & bynavn & "', '" & email & "', '" & telefonnr & "', '" & mobilnr & "', '" & tlfnavn & "', '" & kommune & "', '" & foedt & "', '" & klasse & "', '" & licens & "', '" & klub & "', '" & arbudvalg & "', '" & klubbet & "', '" & kommentar & "')"

'define the connection string, specify database
'driver and the location of database
sConnString="PROVIDER=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("Users.mdb")


'create an ADO connection object
Set connection = Server.CreateObject("ADODB.Connection")

'Open the connection to the database
connection.Open(sConnString)

'execute the SQL
connection.execute(sSQL)

' data til email
Dim mailserver, mailmodtager, mailafsender
mailserver = "asmtp.unoeuro.com"
mailmodtager = "jane.kneis@amager-motocrossklub.dk"
mailafsender = "jane.kneis@amager-motocrossklub.dk"
Set jmail = Server.CreateObject("JMail.Message")

jmail.AddRecipient ""& mailmodtager &"", ""& mailmodtager &""
jmail.From = "" & mailafsender & ""
jmail.Subject = "Indmelding via webside"

jmail.appendHTML "<style>"
jmail.appendHTML "body, td{"
jmail.appendHTML "COLOR: #000000;"
jmail.appendHTML "background: #FFFFFF;"
jmail.appendHTML "font-family: Verdana, sans-serif;"
jmail.appendHTML "font-size: 10px;}"
jmail.appendHTML "</style>"
jmail.appendHTML "<table border=""0"" cellpadding=""2"" cellspacing=""2"">"
jmail.appendHTML "<tr><td><b>Navn:</b></td>"
jmail.appendHTML "<td>" & name & "</td><td>" & efternavn & "</td></tr>"
jmail.appendHTML "<tr><td><b>Adresse:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & adresse & "</td></tr>"
jmail.appendHTML "<tr><td>&nbsp;</td>"
jmail.appendHTML "<td>" & postnr & "</td><td>" & bynavn & "</td></tr>"
jmail.appendHTML "<tr><td><b>Email:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & email & "</td></tr>"
jmail.appendHTML "<tr><td><b>Telefon:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & telefonnr & "</td></tr>"
jmail.appendHTML "<tr><td><b>Mobil:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & mobilnr & "</td></tr>"
jmail.appendHTML "<tr><td><b>Tlfnavn:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & tlfnavn & "</td></tr>"
jmail.appendHTML "<tr><td><b>Kommune:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & kommune & "</td></tr>"
jmail.appendHTML "<tr><td><b>Fødselsdato:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & foedt & "</td></tr>"
jmail.appendHTML "<tr><td><b>Klasse:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & klasse & "</td></tr>"
jmail.appendHTML "<tr><td><b>Klasse:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & klasse & "</td></tr>"
jmail.appendHTML "<tr><td><b>Licens:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & licens & "</td></tr>"
jmail.appendHTML "<tr><td><b>Klub:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & klub & "</td></tr>"
jmail.appendHTML "<tr><td><b>Arbudvalg:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & arbudvalg & "</td></tr>"
jmail.appendHTML "<tr><td><b>Klubbet:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & klubbet & "</td></tr>"
jmail.appendHTML "<tr><td><b>Kommentar:</b></td>"
jmail.appendHTML "<td colspan=""2"">" & comments & "</td></tr>"
jmail.appendHTML "<tr><td><b>Dato:</b></td><td colspan=""2"">" & Now() & "</td></tr></table>"
jmail.Send(mailserver)

response.write "Tak for din indmelding, du vil inden for 2 dage modtage en velkomstmail."

' Done. Close the connection object
connection.Close
Set connection = Nothing
%>
</body>
Avatar billede Ewerty Nybegynder
20. december 2010 - 22:03 #11
så har jeg testet igen

Server object error 'ASP 0177 : 800401f3'

Server.CreateObject Failed

/mailASP/mail.asp, line 56

800401f3

Jeg får fejl på denne linje
Set jmail = Server.CreateObject("JMail.Message") (line56)
Avatar billede claes57 Ekspert
21. december 2010 - 12:01 #12
prøv at se på
http://www.eksperten.dk/spm/343004
kommentar #7
Avatar billede Ewerty Nybegynder
23. december 2010 - 23:11 #13
Hej Claes57 - jeg lægger problemet på hylden.
Rigtig god jul, smider du lige et svar så du kan få
dine point ?
Avatar billede claes57 Ekspert
24. december 2010 - 10:27 #14
bare accepter dit eget svar, så har du points til næste gang, du forsøger.
God jul...
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