Avatar billede simsen Mester
31. december 2004 - 21:45 Der er 27 kommentarer og
1 løsning

Gemme i database fra form

Nogen der kan fortælle mig, hvorfor den ikke vil gemme - sql strengen er testet og den er der ikke fejl med - så det må være selve formen???? Det skal lige tilføjes - den fremkommer ikke med nogen fejl - den gemmer bare ikke i databasen

<!-- #include file="../Administration/subrutiner.asp" -->
<html>
<!-- Minus AutoDato -->
<title>Tilføj besked i gæstebog</title>
<head>
<meta name="Generator" content="Stone's WebWriter 4">
<LINK HREF="../Stylesheets/Stylesheet.css" REL="stylesheet" TYPE="text/css">
</head>
<body>
<table width="90%">
<tr>
<td width="95%" align="center"><h1>Tilføj ny besked i Gæstebogen</h1></td>

</tr>
</table>

<FORM METHOD="POST">
<INPUT TYPE="hidden" NAME="dato" SIZE="50" VALUE="<%=Now()%>"
<table border="0">
<tr>
<td width="50%">
<TABLE BORDER="2" CELLPADDING="0" CELLSPACING="0" BORDERCOLOR="#C0C0C0" BORDERCOLORDARK="#C0C0C0" BORDERCOLORLIGHT="#C0C0C0">
 

<TR>
<TD valign="middle" class="H4"><b>Navn</b></TD>
<TD><INPUT TYPE="text" NAME="navn" SIZE="50" VALUE="<% Response.WRite(snavn) %>"></TD>
</TR>
<TR>
<TD valign="middle" class="H4"><b>Email</b></TD>
<TD><INPUT TYPE="text" NAME="email" SIZE="50" VALUE="<% Response.WRite(semail) %>"></TD>
</TR>
<TR>
<TD valign="middle" class="H4"><b>Hjemmeside</b></TD>
<TD><INPUT TYPE="text" NAME="hpadr" SIZE="50" VALUE="http://<% Response.WRite(shpadr) %>"></TD>
</TR>
<TR>
<TD valign="middle" class="H4"><b>Overskrift</b></TD>
<TD><INPUT TYPE="text" NAME="overskrift" SIZE="50" VALUE="<% Response.WRite(soverskrift) %>"></TD>
</TR>
<TR>
<TD valign="top" class="H4"><b>Besked</b></TD>
<td><textarea name="besked" rows="20" cols="53"><% Response.WRite(sbesked) %></textarea></td>


</TR>
</TABLE>
<BR><BR>
<INPUT TYPE="submit" name="submit" VALUE="Gem"> <INPUT TYPE="reset" Value="Fortryd"><BR>
</FORM>
</td>
</tr>
</table>

<%
response.write "<font color=""#FF0000"">HJÆLP<br>"
Response.Write "Submit? '" & Request.Form("submit") & "'"

If Request.Form("submit") = "Gem" Then
    opencon
    set rs=Server.CreateObject("ADODB.recordset")


    strSQL = "INSERT INTO Guestbook (navn, email, hpadr, overskrift, besked) VALUES('" & Request.Form("navn") & "', '" & Request.Form("email") & "', '" & Request.Form("hpadr") & "', '" & Request.Form("overskrift") & "', '" & Request.Form("besked") & "')"
    response.write "sqlstmt="&strSQL&"<br>"

    Set rs = Conn.Execute(strSQL)


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

  'redirect eventuelt til side med bekræftelse af opdatering
end if

%>


</body>
</html>
Avatar billede apo Praktikant
31. december 2004 - 21:48 #1
Du mangler ihvertfald at kalde dit script...

<FORM Action= "dinside.asp" METHOD="POST">

Apo
Avatar billede simsen Mester
31. december 2004 - 21:58 #2
Det hjalp ikke:

Den fremkommer med følgende fejl:

Submit? 'Gem'sqlstmt=INSERT INTO Guestbook (navn, email, hpadr, overskrift, besked) VALUES('hhhhh', 'asf', 'http://', 'asf', 'safdsdf')

Microsoft JET Database Engine fejl '80004005'

Handlingen skal bruge en opdaterbar forespørgsel.

/pm/Gaestebog/tilfoejigaestebog.asp, line 67
Avatar billede apo Praktikant
31. december 2004 - 22:02 #3
Er der nogen særlig årsag til at din ASP-kode ligger i bunden, og ikke over <html>?

Og kalder du den side hvori kodeeksemplet ligger? (Eks. action="dinside.asp")
Avatar billede erikjacobsen Ekspert
31. december 2004 - 22:04 #4
Handlingen skal bruge en opdaterbar forespørgsel betyder at din .mdb fil er
skrivebeskyttet.
Avatar billede apo Praktikant
31. december 2004 - 22:05 #5
Mangler du ikke din databaseconnection?

<%
If Request.Form("submit") = "Gem" Then
    opencon <-- Databaseconnectionen bør vel ligge her?
    set rs=Server.CreateObject("ADODB.recordset")
...
%>
Avatar billede erikjacobsen Ekspert
31. december 2004 - 22:08 #6
Og glem så også alt med det der recordset. Det er en INSERT, der er ingen recordset, så  du kan nøjes med:

      Conn.Execute strSQL
Avatar billede simsen Mester
31. december 2004 - 22:10 #7
Min database connection ligger i opencon:

Sub OpenCon
Set Conn = Server.CreateObject("ADODB.Connection")
'connectme = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & DataConnPath & ";"
connectme = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Inetpub\wwwroot\pm\Administration\mad.mdb"
Conn.open(connectme)
End Sub

Fejlen efter, jeg har rettet lidt til ser sådan her ud:

Operation is not allowed when the object is closed.

/pm/Gaestebog/tilfoejigaestebog.asp, line 71


Det jeg har rettet til:

<%
response.write "<font color=""#FF0000"">HJÆLP<br>"
Response.Write "Submit? '" & Request.Form("submit") & "'"

If Request.Form("submit") = "Gem" Then
    opencon
    set rs=Server.CreateObject("ADODB.recordset")
    call ChooseTable ("Guestbook")

    strSQL = "INSERT INTO Guestbook (navn, email, hpadr, overskrift, besked) VALUES('" & Request.Form("navn") & "', '" & Request.Form("email") & "', '" & Request.Form("hpadr") & "', '" & Request.Form("overskrift") & "', '" & Request.Form("besked") & "')"
    response.write "sqlstmt="&strSQL&"<br>"

    Set rs = Conn.Execute(strSQL)
    'rs.open strSQL, connectme, adOpenStatic, adLockOptimistic

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

  'redirect eventuelt til side med bekræftelse af opdatering
end if

%>
Avatar billede simsen Mester
31. december 2004 - 22:18 #8
Lige et ps

Har prøvet at slette

call ChooseTable ("Guestbook")

Men gav heller intet resultat
Avatar billede apo Praktikant
31. december 2004 - 22:23 #9
Har du prøvet at gøre som erikjacobsen foreslog kl. 22:08:27?
Avatar billede trekkies Juniormester
31. december 2004 - 22:23 #10
Når at du højre klikker på dine mappe og vælger "egenskaber", så skulle der gerne være et faneblad ved navn "Sikkerhed", hvis ikke:
http://www.darkskies.dk/rettigheder.html

Filmen er lavet til en dansk windows.

Hvis du har fanebladet "Sikkerhed", så kan du klikke på "Avanceret", der kan du nedarve rettighederne, f.eks. der skal være flueben i den første box, nede i bunden, med teksten: "Arv de tilladelsesposter, der gælder for underobjekter, fra det overordnede objekt. Medtag disse sammen med de poster, der er udtrykkeligt defineret her."

Håber at du kan bruge dette her.
Avatar billede simsen Mester
31. december 2004 - 22:26 #11
Hejsa trekkies

Problemet er ikke længere den med opdaterbar forespørgsel - den gav apo mig ideen til at klare - problemet er nu, jeg får følgende sætning ud:

Operation is not allowed when the object is closed.
Avatar billede erikjacobsen Ekspert
31. december 2004 - 22:26 #12
Ja, der skal også være skriverettigheder til kataloget, da der sommetider skal oprettes flere filer.
Jeg fik ikke udtrykt det præcist nok. ;)
Avatar billede trekkies Juniormester
31. december 2004 - 22:37 #13
Kan du ikke skrive din kode igen, efter dine ændninger?
Avatar billede simsen Mester
31. december 2004 - 22:40 #14
<!-- #include file="../Administration/subrutiner.asp" -->
<html>
<!-- Minus AutoDato -->
<title>Tilføj besked i gæstebog</title>
<head>
<meta name="Generator" content="Stone's WebWriter 4">
<LINK HREF="../Stylesheets/Stylesheet.css" REL="stylesheet" TYPE="text/css">
</head>
<body>
<table width="90%">
<tr>
<td width="95%" align="center"><h1>Tilføj ny besked i Gæstebogen</h1></td>

</tr>
</table>

<FORM METHOD="POST" action="tilfoejigaestebog.asp">
<INPUT TYPE="hidden" NAME="dato" SIZE="50" VALUE="<%=Now()%>"
<table border="0">
<tr>
<td width="50%">
<TABLE BORDER="2" CELLPADDING="0" CELLSPACING="0" BORDERCOLOR="#C0C0C0" BORDERCOLORDARK="#C0C0C0" BORDERCOLORLIGHT="#C0C0C0">
 

<TR>
<TD valign="middle" class="H4"><b>Navn</b></TD>
<TD><INPUT TYPE="text" NAME="navn" SIZE="50" VALUE="<% Response.WRite(snavn) %>"></TD>
</TR>
<TR>
<TD valign="middle" class="H4"><b>Email</b></TD>
<TD><INPUT TYPE="text" NAME="email" SIZE="50" VALUE="<% Response.WRite(semail) %>"></TD>
</TR>
<TR>
<TD valign="middle" class="H4"><b>Hjemmeside</b></TD>
<TD><INPUT TYPE="text" NAME="hpadr" SIZE="50" VALUE="http://<% Response.WRite(shpadr) %>"></TD>
</TR>
<TR>
<TD valign="middle" class="H4"><b>Overskrift</b></TD>
<TD><INPUT TYPE="text" NAME="overskrift" SIZE="50" VALUE="<% Response.WRite(soverskrift) %>"></TD>
</TR>
<TR>
<TD valign="top" class="H4"><b>Besked</b></TD>
<td><textarea name="besked" rows="20" cols="53"><% Response.WRite(sbesked) %></textarea></td>


</TR>
</TABLE>
<BR><BR>
<INPUT TYPE="submit" name="submit" VALUE="Gem"> <INPUT TYPE="reset" Value="Fortryd"><BR>
</FORM>
</td>
</tr>
</table>

<%
response.write "<font color=""#FF0000"">HJÆLP<br>"
Response.Write "Submit? '" & Request.Form("submit") & "'"

If Request.Form("submit") = "Gem" Then
    opencon
    'set rs=Server.CreateObject("ADODB.recordset")
    'call ChooseTable ("Guestbook")
    response.write "<font color=""#FF0000"">HJÆLP2<br>"
    strSQL = "INSERT INTO Guestbook (navn, email, hpadr, overskrift, besked) VALUES('" & Request.Form("navn") & "', '" & Request.Form("email") & "', '" & Request.Form("hpadr") & "', '" & Request.Form("overskrift") & "', '" & Request.Form("besked") & "')"
    response.write "sqlstmt="&strSQL&"<br>"

    Set rs = Conn.Execute(strSQL)
    'rs.open strSQL, connectme, adOpenStatic, adLockOptimistic

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

  'redirect eventuelt til side med bekræftelse af opdatering
end if

%>


</body>
</html>

Fejlen jeg får nu:

HJÆLP
Submit? 'Gem'HJÆLP2
sqlstmt=INSERT INTO Guestbook (navn, email, hpadr, overskrift, besked) VALUES('gggg', 'sf', 'http://', 'sdf', 'ssadf')

ADODB.Recordset fejl '800a0e78'

Operation is not allowed when the object is closed.

/pm/Gaestebog/tilfoejigaestebog.asp, line 71
Avatar billede trekkies Juniormester
31. december 2004 - 22:42 #15
Hvorfor har du "http://" ved
<INPUT TYPE="text" NAME="hpadr" SIZE="50" VALUE="http://<% Response.WRite(shpadr) %>">
Avatar billede trekkies Juniormester
31. december 2004 - 22:44 #16
Hvad står der ved line 71 på side pm/Gaestebog/tilfoejigaestebog.asp???
Avatar billede simsen Mester
31. december 2004 - 22:47 #17
rs.Close
Avatar billede trekkies Juniormester
31. december 2004 - 22:48 #18
Prøv denne sætning som slutning:

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
Set strSQL = nothing
Avatar billede simsen Mester
31. december 2004 - 22:49 #19
Og jow jeg har gjort det erik bad mig om - den er ikke skrivebeskyttet og har fået lavet en IUSR nu også - så ikke der problemet er længere
Avatar billede simsen Mester
31. december 2004 - 22:55 #20
trekkies

Du er bare en engel.......lige der fejlen var - smid et svar og du får points :-)
Avatar billede trekkies Juniormester
31. december 2004 - 22:58 #21
Her er svar :>

Jeg synes at erikjacobsen også skal have lidt ;>

Hav et godt nytår
Avatar billede erikjacobsen Ekspert
31. december 2004 - 23:02 #22
Nej tak, jeg samler slet ikke på point.
Avatar billede simsen Mester
31. december 2004 - 23:02 #23
trekkies

Ok - hvordan gør jeg så det? *møj møj blond* Og hvordan vil I have pointene fordelt?
Avatar billede simsen Mester
31. december 2004 - 23:03 #24
Hmmmmm - sikker Erik - jeg vil ellers gerne give dig nogen også? *SS*
Avatar billede trekkies Juniormester
31. december 2004 - 23:05 #25
Du markere dit navn ude til venstre og klikker på Godkend
Avatar billede simsen Mester
31. december 2004 - 23:08 #26
trekkies

He he - var nu ikke det jeg mente - ved godt hvordan jeg godkender en enkelt til at få points.......bare ikke hvordan jeg splitter pointsene op *GG*
Avatar billede trekkies Juniormester
31. december 2004 - 23:11 #27
Man skal få 2 til at sende svar, og derefter kan man klikke på en knap som lyder næsten sådan "Del point"
Avatar billede apo Praktikant
31. december 2004 - 23:12 #28
Du holder ctrl nede og markerer de navne du vil give points, og godkender...

Godt at du fandt en løsning på problemet, og Godt Nytår :-)

Apo
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