Avatar billede brianb Nybegynder
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>
Avatar billede brianb Nybegynder
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...
Avatar billede ellebaek Nybegynder
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 ;-)
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