Avatar billede peterkopi Nybegynder
12. november 2002 - 04:17 Der er 23 kommentarer og
1 løsning

Nyhedsscript: Unknown runtime error

Når jeg har logget ind med admin/admin på http://www.peterogdeandrekopier.dk/news/login.asp får jeg flg. fejl:

ADODB.Recordset error '800a0bb9'

Unknown runtime error

/news/login.asp, line 79

? Linje 79: rs.Open strQ, strConn

Se den og hele koden her:


<%
  mode=request("mode")
   
'--- Kontrol ---
  if mode="kontrol" then
     
    set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "Data Source=d:\home\peterogdeandredk\db\db.mdb;Provider=Microsoft.Jet.OLEDB.4.0;"
   
    Set rs = Server.CreateObject("ADODB.RecordSet")
   
'Den slår ens brugernavn og adgangskode op i databasen
    strQ = "SELECT * FROM login WHERE (adgangskode='" & Request.Form("adgangskode") & "')" & _
            " AND (brugernavn = '" & Request.Form("brugernavn") & "');"
   
rs.Open strQ, strConn
   
'Kan den ikke finde en bliver man sendt tilbage med en fejlmeddelelse
If rs.EOF Then
   
    Response.Redirect("login.asp?mode=fejl")
   
'Kan den godt finde en bliver session("Adgang") sat til Godkendt så man kan komme ind til admin.asp
    Else
   
    Session("Adgang") = "Godkendt"
   
    Response.Redirect("admin.asp")
   
    End If
    rs.Close
    Set rs = Nothing
   
    Con.Close
    Set Con = Nothing
   
'--- Forsiden ---
else %>
 
  <table align="center" width="510" border="0" cellspacing="0" cellpadding="0" class="ContentStyle">
    <tr>
    <td width="510" valign="top">
      <table width="510" border="0" bgcolor="#000000" cellspacing="1" cellpadding="2" class="ContentStyle">
      <tr>
        <td bgcolor="#6699CC"">
       
        <form action="login.asp?mode=kontrol" method="post" name="Login">
        <center>
       
        <strong>Login Til Webmaster</strong><br><br>
       
<%
'Når man skriver forkert adgangskode eller forsøger at komme ind på en side hvor man ikke har tilladelse bliver man gjort opmærksom på det her
    Select Case Request.QueryString("mode")
    case "fejl" %><div><font color="#FF0000">Fejl i Brugernavn eller Adgangskode prøv igen...</font><br><br></div><%
    case "forbudt" %><div><font color="#FF0000">Brug dog Login din spade hvad fanden tror du den er der for?</font><br><br></div><%
   
    End Select
%>
        Brugernavn<br>
        <input type="text" name="Brugernavn" size="40" value="admin">
        <br><br>
        Adgangskode<br>
        <input type="password" name="Adgangskode" size="40" value="admin">
        <br><br>
        <input type="submit" value="Login">
        </form>
        </center>
        </td>
      </tr>
      </table>
    </td>
    </tr>
  </table>
  <br>
  <center>
  <a href="nyheder.asp"><strong>Tilbage</strong></a>
  </center>
<% End if %>
</body>
</html>
Avatar billede dk_akj Nybegynder
12. november 2002 - 07:07 #1
set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "Data Source=d:\home\peterogdeandredk\db\db.mdb;Provider=Microsoft.Jet.OLEDB.4.0;"
   
    Set rs = Server.CreateObject("ADODB.RecordSet")
   
'Den slår ens brugernavn og adgangskode op i databasen
    strQ = "SELECT * FROM login WHERE (adgangskode='" & Request.Form("adgangskode") & "')" & _
            " AND (brugernavn = '" & Request.Form("brugernavn") & "');"
   
set rs = conn.execute(strQ)

Du har jo allerede åbnet connection til db en gang, så du kan nøjes med at populere recordset.
//akj
Avatar billede peterkopi Nybegynder
12. november 2002 - 08:00 #2
Hvad? Hvordan? (Jeg er ASP-novice!)
Avatar billede dk_akj Nybegynder
12. november 2002 - 08:05 #3
OK,

Det her (mellem stjernerne)

'*********************************
set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "Data Source=d:\home\peterogdeandredk\db\db.mdb;Provider=Microsoft.Jet.OLEDB.4.0;"
   
    Set rs = Server.CreateObject("ADODB.RecordSet")
   
'Den slår ens brugernavn og adgangskode op i databasen
    strQ = "SELECT * FROM login WHERE (adgangskode='" & Request.Form("adgangskode") & "')" & _
            " AND (brugernavn = '" & Request.Form("brugernavn") & "');"
   
rs.Open strQ, strConn
'********************************

laver du om til

'********************************

set Conn = Server.CreateObject("ADODB.Connection")

  ' åben forbindelse til databasen
Conn.Open "Data Source=d:\home\peterogdeandredk\db\db.mdb;Provider=Microsoft.Jet.OLEDB.4.0;"
   
    Set rs = Server.CreateObject("ADODB.RecordSet")
   
'Den slår ens brugernavn og adgangskode op i databasen
    strQ = "SELECT * FROM login WHERE (adgangskode='" & Request.Form("adgangskode") & "')" & _
            " AND (brugernavn = '" & Request.Form("brugernavn") & "');"

' populer recordset   
set rs = conn.execute(strQ)
'************************************
Avatar billede peterkopi Nybegynder
12. november 2002 - 08:18 #4
NY FEJL:

Microsoft VBScript runtime error '800a01a8'

Object required: ''

/news/admin.asp, line 445


Linje 445 i admin.asp:

444: sql = "SELECT * From nyheder ORDER BY Id DESC"
445:    Set rs =  Con.Execute(Sql)

Hvor skal hvilket objekt sættes ind???
Avatar billede dk_akj Nybegynder
12. november 2002 - 08:19 #5
ret :
Set rs =  Con.Execute(Sql)
til :
Set rs =  Conn.Execute(Sql)
Avatar billede peterkopi Nybegynder
12. november 2002 - 08:28 #6
Tak for hjælpen; det virks! 8-D
Avatar billede dk_akj Nybegynder
12. november 2002 - 08:29 #7
Fint, det er en fornøjelse/let at hjælpe når man får så konkrete fejlmeldinger.

//akj

PS: Er du med i Peter og de andre kopier ??
Avatar billede peterkopi Nybegynder
12. november 2002 - 08:40 #8
Ja, jeg er Peter KOPI - ham med porten midt i ansigtet *S*
Avatar billede peterkopi Nybegynder
12. november 2002 - 08:41 #9
Og nu opretter jeg et nyt spm, for jeg kan ikke få "Kommentar"-funktionen i scriptet til at virke...!
Avatar billede dk_akj Nybegynder
12. november 2002 - 08:42 #10
I har et pisse fedt band :o)

Vi kan bare tage den med kommentaren under dette spørgsmål, det er fint med mig
Avatar billede peterkopi Nybegynder
12. november 2002 - 08:51 #11
Tak for rosen :-) Nu mangler vi bare en pissefed hjemmeside!

Problemet med at tilføje og kunne læse evt. kommentarer skal findes i dette script http://www.peterogdeandrekopier.dk/news/nyheder.asp
Form og layout er ikke bearbejdet endnu - det ta'r jeg til sidst.

nyheder.asp

<% mode=request("mode")
'--- Kommentarer ---
  if mode="kommentarer" then %>

<%
' Connection til database
'Set Conn = Server.CreateObject("ADODB.Connection")
'DBPath = "DBQ=" & server.mappath("../db/db.mdb")
'Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

'NY fra koncert.asp
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Data Source=d:\home\peterogdeandredk\db\db.mdb;Provider=Microsoft.Jet.OLEDB.4.0;"

' Her hiver vi indholdet af databasen ud
sql = "SELECT * From nyheder Where ID = " & Request.Querystring("ID")
    Set rs =  Conn.Execute(Sql)
%>

<table align="center" width="510" cellspacing="0" cellpadding="0" class="ContentStyle">
<tr>
<td width="510" valign="top">
<table width="510" border="0" bgcolor="#000000" cellspacing="1" cellpadding="2" class="ContentStyle">
<tr>
<td bgcolor="#6699CC"><%=(smileys(rs("smiley")))%></td>
<td bgcolor="#6699CC" width="100%"><table border="0" cellspacing="0" cellpadding="0" class="ContentStyle" width="100%">
<tr><td><%=rs("title")%></td><td align="right"><%= FormatDateTime(rs("dato"),1)%> - <%= FormatDateTime(rs("dato"),3)%></td></td></table></td>
</tr>
<tr>
<td bgcolor="#6699CC" colspan="2"><%=rs("nyhed")%><br><br>Postet af <em><%=rs("forfatter")%></em></td>
</tr>
</table>
<tr>
</tr>
</table>
<br>
<center>
<font size="2"><strong>- Kommentarer -</strong></font>
<br>
<%
' Connection til database
'Set Conn = Server.CreateObject("ADODB.Connection")
'DBPath = "DBQ=" & server.mappath("db.mdb")
'Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

'NY fra koncert.asp
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Data Source=d:\home\peterogdeandredk\db\db.mdb;Provider=Microsoft.Jet.OLEDB.4.0;"

' Her hiver vi indholdet af databasen ud
sql = "SELECT * From kommentarer Where nyhedsid = " & Request.Querystring("id")
    Set rs =  Conn.Execute(Sql)
%>
    <br>
  <table width="510" border="0" bgcolor="#000000" cellspacing="1" cellpadding="2" class="ContentStyle">
    <tr>
    <td bgcolor="#6699CC" align="center" colspan="2">
    <hr width="480" color="#000000" size="1">
   
<% Do While Not rs.EOF %>
     
      <table width="480" border="0" cellspacing="0" cellpadding="0" class="ContentStyle">
      <tr>
        <td align="left" valign="top" width="150"><strong>Dato</strong></td><td align="left" valign="top" width="380"><%= FormatDateTime(rs("Dato"),1)%> - <%= FormatDateTime(rs("Dato"),3)%></td>
      </tr>
      <tr>
        <td align="left" valign="top" width="150"><strong>Navn</strong></td><td align="left" valign="top" width="380">
<%
    ' Hvis brugeren ikke har skrevet nogle email skriver den email'en uden det bliver til et link
    If rs("email") = "" Then
      Response.Write rs("navn")
    Else
    Response.Write "<a href="& "mailto:" & rs("email") &">"& rs("navn") &"</a>"
    End If
%>
        </td>
      </tr>
      <tr>
        <td align="left" valign="top" width="150"><strong>ICQ</strong></td><td align="left" valign="top" width="380">
<%
    ' Hvis brugeren ikke har skrevet noget icq nummer skriver den Ingen ICQ
    If rs("icq") = "" Then
      Response.Write "Ingen ICQ"
    Else
    Response.Write "<a href="& "http://msg.mirabilis.com/scripts/contact.dll?msgto="& rs("icq") &">"& rs("icq") &"</a>"
    End If
%>
        </td>
      </tr>
      <tr>
        <td align="left" valign="top" width="150"><strong>Hjemmeside</strong></td><td align="left" valign="top" width="380">
<%
    ' Hvis brugeren ikke har skrevet nogle adresse skriver den Ingen Hjemmeside
    If rs("url") = "http://" Then
      Response.Write "Ingen Hjemmeside"
    Else
    Response.Write "<a href="& rs("url") &" target=""_blank"">"& rs("url") &"</a>"
    End If
%>
        </td>
      </tr>
      <tr>
        <td align="left" valign="top" colspan="2" width="480">     
        <br><%=(smileys(rs("kommentar")))%>
        <hr width="480" color="#000000" size="1"></td>
      </tr>
      </table>
   
<%
rs.MoveNext
Loop
%>

    </td>
    </tr>
  </table>
<br>
  <table width="510" border="0" bgcolor="#000000" cellspacing="1" cellpadding="2" class="ContentStyle">
    <tr>
    <td bgcolor="#6699CC" width="100%" align="center"><strong>Skriv en Kommentar</strong></td>
    </tr>
    <td bgcolor="#6699CC" colspan="2">
      <form action="nyheder.asp?mode=kommentarer&id=<%=Request.Querystring("id")%>" method="post">
      <table width="90%" align="center" border="0" cellspacing="10" cellpadding="0" class="ContentStyle">
      <tr>
    <td align="left" valign="top">
<%
'Åbner connection til databasen
'Set conn = Server.CreateObject("ADODB.Connection")
'Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db.mdb")

'NY fra koncert.asp
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Data Source=d:\home\peterogdeandredk\db\db.mdb;Provider=Microsoft.Jet.OLEDB.4.0;"

'Hvis brugeren har submittet formularen
    if Request.ServerVariables("REQUEST_METHOD") = "POST" then
   
'Tjecker om felterne er udfyld
    if (Request.Form("navn") <> "" AND Request.Form("kommentar")  <> "") then
   
'Tilføjer brugeren til databasen
    Set rs = Server.CreateObject("ADODB.Recordset")
    strSQL = "select * from kommentarer"
    rs.Open strsql, conn, 1, 3
   
'Tilføjer brugeren til databasen og sender ham/hende til login siden
    rs.AddNew
    rs("nyhedsid") = Server.HTMLEncode(Request("nyhedsid"))
    rs("navn") = Server.HTMLEncode(Request("navn"))
    rs("email") = Server.HTMLEncode(Request("email"))
    rs("icq") = Server.HTMLEncode(Request("icq"))
    rs("url") = Server.HTMLEncode(Request("url"))
    rs("kommentar") = Server.HTMLEncode(Request("kommentar"))
    rs("dato") = Now()
    rs.update
   
    Response.Redirect("nyheder.asp?mode=kommentarer&id="& Request.Querystring("id") &"")
   
    rs.Close
    set rs = nothing
   
    else
    Response.Write("<strong><font color='red'>Du mangler at udfylde felter !</font></strong>")
   
    end if
    end if
%>
        </td>
      </tr>
      <tr>
      <input type="hidden" name="nyhedsid" value="<%=Request.Querystring("id")%>">
        <td align="left" valign="top"><b>Dit Navn <font color="#336699">*</font></b></td><td align="right"><input name="navn" type="textbox" class="InputTable" size="40"></td>
      </tr>
      <tr>
        <td align="left" valign="top"><b>Din E-mail</b></td><td align="right"><input name="mail" type="textbox" class="InputTable" size="40"></td>
      </tr>
        <tr>
        <td align="left" valign="top"><b>Dit ICQ Nummer</b></td><td align="right"><input name="icq" type="textbox" class="InputTable" size="40"></td>
      </tr>
        <tr>
        <td align="left" valign="top"><b>Din Hjemmeside</b></td><td align="right"><input name="url" type="textbox" class="InputTable" size="40"></td>
      </tr>
      <tr>
        <td align="left" valign="top"><strong>Kommentar <font color="#336699">*</font></strong></td><td align="right"><textarea cols="39" rows="10" name="kommentar"></textarea></td>
      </tr>
        <tr>
        <td align="left" valign="top"><input name="submit" type="submit" class="Button" value="Tilføj Kommentaren"></td><td align="right"><input name="reset" type="reset" class="Button" value="Slet og Start Forfra"></td>
      </tr>
      </table>
    </td>
    </tr>
  </table>
  </form>
  <a href="nyheder.asp"><strong>Tilbage</strong></a>

<% '--- Forsiden ---
else %>
<%
' Connection til database
'    Set Conn = Server.CreateObject("ADODB.Connection")
'    DBPath = "DBQ=" & server.mappath("../db/db.mdb")
'    Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

'NY fra koncert.asp
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Data Source=d:\home\peterogdeandredk\db\db.mdb;Provider=Microsoft.Jet.OLEDB.4.0;"

' Her hiver vi indholdet af databasen ud, sorterer dem efter dato
    Sql = "SELECT * FROM nyheder ORDER BY dato DESC"
    Set rs =  Conn.Execute(Sql)
%>
<table align="center" bgcolor="#000000" width=""510" cellspacing="1" cellpadding="2">
<tr>
<td bgcolor="6699CC" width="510"><center><strong>Nyheder</strong></center></td>
</tr>
</table>
<br>
<% Do While Not rs.EOF
SQL2 = "select count(*) as antal from kommentarer WHERE nyhedsId = " & rs("id")
Set TheCount = Conn.Execute(Sql2)   
antal = TheCount("antal")
%>
<table align="center" width="510" cellspacing="0" cellpadding="0" class="ContentStyle">
<tr>
<td width="510" valign="top">
<table width="510" border="0" bgcolor="#000000" cellspacing="1" cellpadding="2" class="ContentStyle">
<tr>
<td bgcolor="#6699CC"><%=(smileys(rs("smiley")))%></td>
<td bgcolor="#6699CC" width="100%"><table border="0" cellspacing="0" cellpadding="0" class="ContentStyle" width="100%">
<tr><td><%=rs("title")%> - (<a href="nyheder.asp?mode=kommentarer&id=<%=rs("id")%>"><%=antal%></a>)</td><td align="right"><%= FormatDateTime(rs("dato"),1)%> - <%= FormatDateTime(rs("dato"),3)%></td></td></table></td>
</tr>
<tr>
<td bgcolor="#6699CC" colspan="2"><%=rs("nyhed")%><br><br>Postet af <em><%=rs("forfatter")%></em></td>
</tr>
</table>
<tr>
</tr>
</table>
<br>
<%
rs.MoveNext
Loop
%>
<center>
<a href="login.asp"><strong>Admin</strong></a>
</center>
<% End if %>
</body>
</html>

De ' kommenterede linjer, er originalscript (det er skrevet/redigeret af en Bruno Pedersen, gizmo_192@hotmail.com) som jeg har valgt at lade stå ind til alt virker efter hensigten.
Avatar billede peterkopi Nybegynder
12. november 2002 - 08:53 #12
I øvrigt synes jeg det er underligt, at jeg aldrig har fundet dette her til at fungere:

    Set Conn = Server.CreateObject("ADODB.Connection")
    DBPath = "DBQ=" & server.mappath("../db/db.mdb")
    Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

Men min "gamle conn" fra koncert.asp virker jo, såeh deeeet...!
Avatar billede peterkopi Nybegynder
12. november 2002 - 08:53 #13
fundet = fået
Avatar billede dk_akj Nybegynder
12. november 2002 - 08:54 #14
Hvori ligger fejlen ??
Avatar billede dk_akj Nybegynder
12. november 2002 - 08:57 #15
Jeg har tilladt mig at logge ind på din side og teste, det virker fint for mig.
Kan oprettte nyhed og redigere.
//akj
Avatar billede peterkopi Nybegynder
12. november 2002 - 09:00 #16
Ja, systemet virker til og med at kunne tilføje/redigere/slette nyheder. Men det med at alle skulle kunne skrive en kommentar til de enkelte nyheder - det virker jo ikke, vel?
Avatar billede dk_akj Nybegynder
12. november 2002 - 09:04 #17
Avatar billede peterkopi Nybegynder
12. november 2002 - 09:11 #18
Men hvordan får brugeren, der kommer ind på .../nyheder.asp, mulighed for at klikke på "Tilføj kommentar til nyheden" - og er 'kommentar' ikke knyttet til en unik 'nyhed'? For det synes jeg da den skal være....
Avatar billede peterkopi Nybegynder
12. november 2002 - 09:12 #19
Og så skulle der egentlig også være en "Send nyheden til ven"-funktion. Men der insisterer jeg på at oprette et nyt spm!
Avatar billede dk_akj Nybegynder
12. november 2002 - 09:19 #20
Hvis du lader musen stå ovenpå "tallet efter nyhedsoverskriften" så vil du se i statuslinien (nederst i IE) at id skifter alt efter hvilken ID du holder musen over så kommentaren følger de enkelte nyheder.

Brugeren skal klikke på tallet mellem () efte overskriften, det kunne du jo lave om til noget mere sigende, f.eks, "Skriv kommentar"

Iøvrigt en god ide at jeres fans kan tilføje kommentarer til jeres nyheder.

//akj
Avatar billede peterkopi Nybegynder
12. november 2002 - 09:36 #21
Hvordan og hvor henne på siden implementerer jeg så flg.:

<LI> <FONT SIZE=1><A HREF="http://www.peterogdeandrekopier.dk/news/nyheder.asp?mode=kommentarer&id=??(dynamisk variabel)" STYLE="text-decoration:underline;">Skriv en kommentar til denne nyhed!</A> &nbsp; <B><SPAN STYLE="color:red;">X indlæg!</SPAN></B></B></FONT>

<LI> <FONT SIZE=1><B><A HREF="sendnyhed.asp?nyhed&id=??(dynamisk variabel)" STYLE="text-decoration:underline;">Send denne nyhed til en ven!</A></B></FONT>

Jeg tror rækkefølgen skal være (Oppe fra venstre og nedad):

1. "linje" i tabellen - Evt. smiley + overskrift + #date#
2. -do-              - Nyhed
3. -do-              - Postet af 'forfatter'
4. -do-              - Skriv en kommentar til denne nyhed
5. -do-              - Send denne nyhed til en ven!
Avatar billede dk_akj Nybegynder
12. november 2002 - 09:59 #22
Det må være et sted heri, jeg kan bare ikek helt lure hvor den laver linket.
(x) står jo mellem titel og dato men i koden er den ikke.

Hvordan ser title ud i databasen ??

<tr><td><%=rs("title")%></td><td align="right"><%= FormatDateTime(rs("dato"),1)%> - <%= FormatDateTime(rs("dato"),3)%></td></td></table></td>
</tr>
Avatar billede peterkopi Nybegynder
12. november 2002 - 11:42 #23
Finder ud af det hurtigst. Kan kun åbne Access 97, og det er en 2000. Får den lige konverteret hos én!
Avatar billede peterkopi Nybegynder
14. november 2002 - 01:36 #24
Hej dk akj: Har endnu ikke fået konverteret databasen, men så snart jeg har, poster jeg nogle fler' spm...
- tak for hjælpen, so far!
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