18. januar 2007 - 17:38
Der er
2 kommentarer
Fejl i mit nyhedsscript
Hejsa jeg har lidt er problem, jeg får en fejl i linie 32 i følgende kode, jeg vil gerne skrive til en database, fra en form, jeg kan ikke selv finde fejlen
Fejlen:
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
Koden:
<link href="css/style.css" rel="stylesheet" type="text/css">
<head>
<html>
<meta name="Generator" content="Stone's WebWriter 4">
</head>
<table width="500" border="0" align="center">
<tr>
<td>
Velkommen til brian's artikeldatabase, her tilføjer du artikler, du skal udfylde alle felter, med mindre der står noget i forvejen, så kan du lade det stå med mindre du har noget andet du hellere vil tilføje.
</td>
</tr>
</table>
<%
Response.Buffer = True
Overskrift = Request("Overskrift")
Undertekst = Request("Undertekst")
Forfatter = Request("Forfatter")
Dato = Request("Dato")
Email = Request("Email")
Artikel = Request("Artikel")
Image = Request("Image")
Billedtekst = Request("Billedtekst")
Const adOpenKeyset = 1
Const adLockOptimistic = 8
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("mailliste.mdb")
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "Select * From Nyheder"
rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
%>
<% if Request.ServerVariables("REQUEST_METHOD") = "POST" then
' Skriver fejl, hvis der ikke er indtastet en oplysning.
if Overskrift = "" then
Response.Write("Du mangler en overskrift<br></font>")
end if
if Undertekst = "" then
Response.Write("Du mangler en undertekst<br></font>")
end if
if Forfatter = "" then
Response.Write("Du mangler at skrive dit navn<br></font>")
end if
if Dato = "" then
Response.Write("Du mangler at skrive en dato<br></font>")
end if
if Email = "" then
Response.Write("Du mangler at skrive din@mail.dk<br></font>")
end if
if Artikel = "" then
Response.Write("Du mangler noger i artiklen<br></font>")
end if
if Image = "" then
Response.Write("Du mangler at tilføje et billede<br></font>")
end if
if Billedetekst = "" then
Response.Write("Du mangler at skrive en billedtekst<br></font>")
end if
' opretter brugeren i databasen
if Overskrift <> "" AND Undertekst <> "" AND Forfatter <> "" AND Dato <> "" AND Email <> "" AND Artikel <> "" AND Image <> "" AND billedtekst <> "" then
rs.AddNew
rs("Overskrift") = Request.form("Overskrift")
rs("Undertekst") = Request.form("Undertekst")
rs("Forfatter") = Request.form("Forfatter")
rs("Dato") = Request.form("Dato")
rs("Email") = Request.form("Email")
rs("Artikel") = Request.form("Artikel")
rs("Image") = Request.form("Image")
rs("Billedtekst") = Request.form("Billedtekst")
rs.update
Response.Redirect("brian2.asp")
end if
end if %>
<table width="500" border="0">
<tr>
<td>
<form method="post" action="brian2.asp" id=form name=form>
<table border="0" cellpadding="0" cellspacing="0" width="403">
<tr>
<td> Skriv en Overskrift <br>
<input type="text" name="Overskrift" value="" maxlength="50" class="bottom" size="23"></td>
</tr>
<tr>
<td>Skriv en undertekst som omhandler artikel, en såkaldt appetitvækker, hvad handler
artiklen om? Bare ca. 200 tegn max 225<br>
<textarea rows="11" name="Undertekst" cols="30" type="text"></textarea></td>
</tr>
<tr>
<td> Skriv en Dit navn som fx Jens Jensen <br>
<input type="text" name="Forfatter" value="" maxlength="50" class="bottom" size="23"></td>
</tr>
<tr>
<td> Skriv dags dato, eller hvornår artikel skulle have været publiceret (dd-mm-åååå) <br>
<input type="text" name="Dato" value="" maxlength="50" class="bottom" size="23"></td>
</tr>
<tr>
<td> Email - Din@mail.xxx <br>
<input type="text" name="Overskrift" value="" maxlength="50" class="bottom" size="23"></td>
</tr>
<tr>
<tr>
<td> Skriv selve artikel, <font color="#FF0000">bemærk</font> at den er HTML baseret <br>
<textarea rows="11" name="tekst" cols="30" type="text"></textarea>
</td>
</tr>
<tr>
<td> Skriv Billednavn, som fx. billede001 uden endelse (.jpg, .gif) <br>
<input type="text" name="Overskrift" value="" maxlength="50" class="bottom" size="23"></td>
</tr>
<tr>
<td> Skriv billedtekst, <font color="#FF0000">bemærk</font> at den er HTML baseret <br>
<textarea rows="5" name="tekst" cols="30" type="text"></textarea>
</td>
</tr>
<td><br> <input type="submit" value="Indsend artiklen" class="bottom"> </td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</body>
</html>
18. januar 2007 - 21:39
#1
Er der ingen der kan svare??
Fejlen ligger her et sted
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "Select * From Nyheder"
rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
%>
Håber der er en venlig sjæl derude som kan hjælpe mig videre...
24. januar 2007 - 23:17
#2
først og fremmest, så er der en del fejl i din form...
Du har 3 felter der hedder overskrift, 2 der hedder tekst... Det kommer i hvert fald ikke til at du....
En anden ting... lav først din request.form efter du har konstateret at der er benyttet method="post" (denne linie: <% if Request.ServerVariables("REQUEST_METHOD") = "POST" then)
Herudover kan det ikke betale sig at lave en variabel med en værdi af request.form hvis du kalder request.form en gang mere... benyt variables i stedet...
Og endelig, så kan du ikke lave en response.redirect hvis du har skrevet noget på skærmen allerede, derfor har jeg smidt selve indsættelsen af siden op i toppen af din kode.
Her har jeg lavet en del om i din kode, herefter burde det forhåbentlig funge...
<%
Response.Buffer = True
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("mailliste.mdb")
%>
<% if Request.ServerVariables("REQUEST_METHOD") = "POST" then
Overskrift = Request("Overskrift")
Undertekst = Request("Undertekst")
Forfatter = Request("Forfatter")
Dato = Request("Dato")
Email = Request("Email")
Artikel = Request("Artikel")
Image = Request("Image")
Billedtekst = Request("tekst")
' Skriver fejl, hvis der ikke er indtastet en oplysning.
if Overskrift = "" then
Response.Write("Du mangler en overskrift<br></font>")
end if
if Undertekst = "" then
Response.Write("Du mangler en undertekst<br></font>")
end if
if Forfatter = "" then
Response.Write("Du mangler at skrive dit navn<br></font>")
end if
if Dato = "" then
Response.Write("Du mangler at skrive en dato<br></font>")
end if
if Email = "" then
Response.Write("Du mangler at skrive din@mail.dk<br></font>")
end if
if Artikel = "" then
Response.Write("Du mangler noger i artiklen<br></font>")
end if
if Image = "" then
Response.Write("Du mangler at tilføje et billede<br></font>")
end if
if Billedetekst = "" then
Response.Write("Du mangler at skrive en billedtekst<br></font>")
end if
' opretter brugeren i databasen
if Overskrift <> "" AND Undertekst <> "" AND Forfatter <> "" AND Dato <> "" AND Email <> "" AND Artikel <> "" AND Image <> "" AND billedtekst <> "" then
sql = "INSERT INTO Nyheder(overskrift, undertekst, forfatter, dato, email, artikel, image, billedtekst) VALUES('"&Overskrift&"','"&Undertekst&"','"&Forfatter&"','"&Dato&"','"&Email&"','"&Artikel&"','"&Image&"','"&Billedtekst&"')"
conn.execute(sql)
Response.Redirect("brian2.asp")
end if
end if %>
<link href="css/style.css" rel="stylesheet" type="text/css">
<head>
<html>
<meta name="Generator" content="Stone's WebWriter 4">
</head>
<table width="500" border="0" align="center">
<tr>
<td>
Velkommen til brian's artikeldatabase, her tilføjer du artikler, du skal udfylde alle felter, med mindre der står noget i forvejen, så kan du lade det stå med mindre du har noget andet du hellere vil tilføje.
</td>
</tr>
</table>
<table width="500" border="0">
<tr>
<td>
<form method="post" action="brian2.asp" id=form name=form>
<table border="0" cellpadding="0" cellspacing="0" width="403">
<tr>
<td> Skriv en Overskrift <br>
<input type="text" name="Overskrift" value="" maxlength="50" class="bottom" size="23"></td>
</tr>
<tr>
<td>Skriv en undertekst som omhandler artikel, en såkaldt appetitvækker, hvad handler
artiklen om? Bare ca. 200 tegn max 225<br>
<textarea rows="11" name="Undertekst" cols="30" type="text"></textarea></td>
</tr>
<tr>
<td> Skriv en Dit navn som fx Jens Jensen <br>
<input type="text" name="Forfatter" value="" maxlength="50" class="bottom" size="23"></td>
</tr>
<tr>
<td> Skriv dags dato, eller hvornår artikel skulle have været publiceret (dd-mm-åååå) <br>
<input type="text" name="Dato" value="" maxlength="50" class="bottom" size="23"></td>
</tr>
<tr>
<td> Email - Din@mail.xxx <br>
<input type="text" name="Email" value="" maxlength="50" class="bottom" size="23"></td>
</tr>
<tr>
<tr>
<td> Skriv selve artikel, <font color="#FF0000">bemærk</font> at den er HTML baseret <br>
<textarea rows="11" name="Artikel" cols="30" type="text"></textarea>
</td>
</tr>
<tr>
<td> Skriv Billednavn, som fx. billede001 uden endelse (.jpg, .gif) <br>
<input type="text" name="Image" value="" maxlength="50" class="bottom" size="23"></td>
</tr>
<tr>
<td> Skriv billedtekst, <font color="#FF0000">bemærk</font> at den er HTML baseret <br>
<textarea rows="5" name="tekst" cols="30" type="text"></textarea>
</td>
</tr>
<td><br> <input type="submit" value="Indsend artiklen" class="bottom"> </td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</body>
</html>
Det var en ordentlig omgang... men håber koden virker, kan jo ikk rigtig teste den ;-)