Avatar billede peterkopi Nybegynder
29. oktober 2002 - 13:49 Der er 8 kommentarer og
1 løsning

Hjælp til problemer med link-script

Jeg har dette linkscript http://www.peterogdeandrekopier.dk/KONTAKT/links.asp, som jeg ikke har lavet - jeg har kun redigeret i DSNless conn. til databasen der ligger i rootmappen /db.

*******************************************

<% response.buffer = true %>
<html>

<head>
<title>Links</title>
<META NAME="Generator" CONTENT="Stone's WebWriter 3.5">
<link rel="stylesheet" type="text/css" href="../defaultpage.css">
</head>

<body>
<%
strMode = Request.Querystring("mode")
select case strMode
case "id"

Response.Buffer = True

' Her opdateres hits når brugeren bliver sendt til et link
Set myConn = Server.CreateObject("ADODB.Connection")
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\home\peterogdeandredk\db\links.mdb;"
If Request.QueryString("id") <> "" Then
    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "SELECT * FROM links WHERE (ID = " & Request.QueryString("id") & ")"
    rs.Open strSQL, myConn, 1, 3
    If Not (rs.BOF Or rs.EOF) Then
        rs("Hits") = rs("Hits") + 1
        strURL = rs("URL")
        rs.Update
        rs.Close
        myConn.Close
        Set rs = Nothing
        Set myConn = Nothing
        Response.Clear
        Response.Redirect(strURL)
    End If
End If
%>
<% case "search"
' Siden med søgeresultater

' Database connection
Set myConn = Server.CreateObject("ADODB.Connection")
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\home\peterogdeandredk\db\links.mdb;"
' Henter søgeorden fra formularen
strKeyword = Trim(Request.Form("søgeord"))

If Len(strKeyword) = 0 Then
' Hvis der ikke er skrevet i formularen sendes brugeren tilbage
    Response.Clear
    Response.Redirect ("links.asp?mode=søg")
Else
    strKeyword = Replace(strKeyword,"'","''")
End If

' Opbygger en dynamisk SQL streng
strSQL = "SELECT * FROM links WHERE"
strSQL = strSQL & " (godkendt = 'ja') AND ("
strSQL = strSQL & " (id LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (navn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (url LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (beskrivelse LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (hits LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (søgeord LIKE '%" & strKeyword & "%'))"

    Response.Write "<table width=""500"" cellspacing=""1"" cellpadding=""3"">"
        Response.Write "<tr><td width=""100%"" colspan=""2"" bgcolor=""#E5E5E5""><font size=""1""><b>Links</b> » <b>Søgeresultater for " & strKeyword & "</b></font></td></tr>"
        Response.Write "<tr><td bgcolor=""#CCCCCC""><font size=""1""><b>Navn/beskrivelse</b></font></td><td bgcolor=""#CCCCCC""><font size=""1""><b>Hits</b></font></td></tr>"

' Skaber et recordset udfra SQL strengen
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
' Hvis søgningen gav resultat
    Do While Not rs.EOF
If farve=1 Then
bg="#FCFCFC"
Farve= Farve + 1
Else
bg="#E5E5E5"
farve=1
End If
        Response.Write "<tr><td valign=top bgcolor=" & bg & "><font size=2><b><a href=""links.asp?mode=id&id=" & rs("ID") & """ target=""_blank"">" & rs("Navn") & "</a></b><br>" & rs("Beskrivelse") & "</font></td>"
        Response.Write "<td valign=top align=center width='30' bgcolor=" & bg & "><font size=2>" & rs("Hits") & "</font></td></tr>"
        rs.MoveNext
    Loop

Else
' Hvis ingen poster passede på søgordene
        Response.Write "<tr><td align=center width=""100%"" colspan=""2"" bgcolor=#e5e5e5><font size=""2""><b>Ingen sider passede på søgeordet</b></font></a></td></tr>"
End If
response.write "<tr><td align=""right"" colspan=""2"" bgcolor=""#CCCCCC""><font size=""1""><b><a href=""links.asp"" class=""menu"">» Oversigt</a>&nbsp;&nbsp;&nbsp;<a href=""links.asp?mode=søg"" class=""menu"">» Søg igen</a>&nbsp;&nbsp;&nbsp;<a href=""links.asp?mode=add"" class=""menu"">» Tilføj links</a></b>&nbsp;&nbsp;</font></td></tr></table></td></tr>"
    Response.Write "</table><br><br>"
%>
<% case "søg"
' Søgeformularen
Response.write "<form method=POST action=links.asp?mode=search><table width=""500"" cellspacing=""1"" cellpadding=""3"" border=""0"">"
Response.write "<tr><td bgcolor=""#E5E5E5""><font size=""1""><b>Links</b> » <b>Søg</b></font></td></tr>"
Response.write "<tr><td bgcolor=""#FCFCFC""><input type=""text"" name=""søgeord"" size=""60""></td></tr>"
Response.write "<tr><td bgcolor=""#E5E5E5""><input type=""submit"" value=""  søg  "" name=""send""></td></tr>"
response.write "<tr><td align=""right"" bgcolor=""#CCCCCC""><font size=""1""><b><a href=""links.asp"" class=""menu"">» Oversigt</a>&nbsp;&nbsp;&nbsp;<a href=""links.asp?mode=add"" class=""menu"">» Tilføj links</a></b>&nbsp;&nbsp;</font></td></tr></table></td></tr>"
%>
<% case "update"
' Sender resultaterne fra tilføj links til databasen
' Database connection
Set Conn = Server.CreateObject("ADODB.Connection")
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\home\peterogdeandredk\db\links.mdb;"
' Opbygger SQL streng
SQLstmt = "INSERT INTO links (navn,url,beskrivelse,hits,søgeord,kategori,godkendt)"
SQLstmt = SQLstmt & " VALUES ('" & request.form("navn") & "','" & request.form("url") & "','" & replace(request.form("beskrivelse"),"'","''") & "','" & request.form("hits") & "','" & request.form("søgeord") & "','" & request.form("kategori") & "','nej')"

response.write sqlstmt

Conn.Execute (SQLstmt)

conn.Close
Set conn = nothing
Set SQLstmt = nothing

' Sender brugeren tilbage til links når databasen er opdateret
response.redirect ("links.asp")
%>
<% case "add"
' tilføj links
%>

<form method="POST" action="links.asp?mode=update">
  <input type="hidden" name="hits" value="0"><table border="0" width="500" cellpadding="3"
  cellspacing="1">
    <tr>
      <td colspan="2" bgcolor="#E5E5E5"><font face="verdana" size="1"><b>Links</b></font></td>
    </tr>
    <tr>
      <td colspan="2" bgcolor="#CCCCCC"><font face="verdana" size="1"><b>Tilføj link</b></font></td>
    </tr>
    <tr>
      <td width="35%" bgcolor="#E5E5E5"><b><font face="Verdana" size="2">Navn</font></b></td>
      <td width="65%" bgcolor="#E5E5E5"><input type="text" name="navn" size="32"></td>
    </tr>
    <tr>
      <td width="35%" bgcolor="#FCFCFC"><font face="Verdana" size="2"><b>url</b></font></td>
      <td width="65%" bgcolor="#FCFCFC"><input type="text" name="url" value="http://" size="32"></td>
    </tr>
    <tr>
      <td width="35%" bgcolor="#E5E5E5" valign="top"><font face="Verdana" size="2"><b>Beskrivelse</b></font></td>
      <td width="65%" bgcolor="#E5E5E5"><textarea name="beskrivelse" cols="32" rows="5"></textarea></td>
    </tr>
    <tr>
      <td width="35%" bgcolor="#FCFCFC" valign="top"><font face="Verdana" size="2"><b>Kategori</b></font></td>
      <td width="65%" bgcolor="#FCFCFC"><select name="kategori" size="1">
<%
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM kategorier ORDER BY kategori"
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\home\peterogdeandredk\db\links.mdb;"
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
  Do until rs.EOF = True
        Response.Write "<option value='" & rs("id") & "'>" & rs("kategori") & vbCrLf
  rs.MoveNext
  Loop
End If
rs.Close
Set rs = Nothing
%>      </select></td>
    </tr>
    <tr>
      <td width="35%" bgcolor="#E5E5E5" valign="top"><font face="Verdana" size="2"><b>Søgeord</b><br>
      Adskilles med komma!</font></td>
      <td width="65%" bgcolor="#E5E5E5"><input type="text" name="søgeord" size="32"></td>
    </tr>
    <tr>
      <td width="100%" bgcolor="#FCFCFC" colspan="2"><input type="submit" value="Send"
      name="send" style="background-color:#E5E5E5"> <input type="reset" value="Annuller"
      name="anuller" style="background-color:#E5E5E5"></td>
    </tr>
    <tr>
      <td colspan="2" align="right" bgcolor="#CCCCCC"><font size="1"><b><a href="links.asp"
      class="menu">» Links</a>&nbsp;&nbsp;&nbsp;<a href="links.asp?mode=søg" class="menu">»
      Søg i links</a></b>&nbsp;&nbsp;</font></td>
    </tr>
  </table>
</form>
<% case "vis"
' Hvis der ikke er valgt noget mode vises alle links

' Paging
intPage = Request("page")
rpage = "&page=" & request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
  rpage = "&page=1"
End If

orderby = request("orderby")
if request("orderby") <> "" then
orderby = request("orderby")
else
orderby = "navn"
end if

Set Conn = Server.CreateObject("ADODB.Connection")
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\home\peterogdeandredk\db\links.mdb;"
Set kat = Conn.Execute("SELECT kategori FROM kategorier WHERE id=" & request("kat") & "")
katg = kat("kategori")
Set kat = nothing
Conn.Close
Set Conn = Nothing

' Database connection

    Response.Write "<table width='500' cellspacing='1' cellpadding='3'>"

Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM links WHERE kategori='" & request("kat") & "' AND godkendt='ja' ORDER BY " & orderby & ""
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\home\peterogdeandredk\db\links.mdb;"
rs.Open strSQL, strDSN, 1
    Response.Write "<tr><td width='100%' colspan=""2"" bgcolor=""#E5E5E5""><font size=""1""><b>Links</b> » <b>" & katg & "</b></font></td></tr>"
If Not (rs.BOF Or rs.EOF) Then
    Response.Write "<tr><td bgcolor=""#CCCCCC""><font size=""1""><b><a href=""links.asp?mode=vis&kat=" & request("kat") & rpage & "&orderby=navn"" class=""menu"">Navn/beskrivelse</a></b></font></td><td bgcolor=""#CCCCCC"" align=""center""><font size=""1""><b><a href=""links.asp?mode=vis&kat=" & request("kat") & rpage & "&orderby=hits"" class=""menu"">Hits</a></b></font></td></tr>"
  rs.PageSize = 5
  rs.AbsolutePage = intPage
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount
  Do While Not rs.EOF And intRecCount > 0

If farve=1 Then
bg="#FCFCFC"
Farve= Farve + 1
Else
bg="#E5E5E5"
farve=1
End If

        Response.Write "<tr><td valign=top bgcolor=" & bg & "><font size=2><b><a href=""links.asp?mode=id&id=" & rs("ID") & """ target=""_blank"">" & rs("Navn") & "</a></b><br>" & rs("Beskrivelse") & "</font></td>"
        Response.Write "<td valign=top align=center width='30' bgcolor=" & bg & "><font size=2>" & rs("Hits") & "</font></td></tr>"

  intRecCount = intRecCount - 1
  rs.MoveNext
  Loop
else
response.write "<tr><td colspan=""2"" align=""center""><font size=""1""><b>Der er ingen links i denne kategori!</b></font></td><tr>"
End If
rs.Close
Set rs = Nothing

' Navigering mellem siderne med paging
Response.Write "<tr><td colspan=""2"" bgcolor=""#CCCCCC"">"
Response.Write "<table border=""0"" cellspacing=""0"" cellpadding=""0"" width=""100%""><tr><td bgcolor=""#CCCCCC""><font size='1'>"

If Clng(intPage) > 1 Then
  Response.Write "<a href=links.asp?mode=vis&kat=" & request("kat") & "&page=" & intPage - 1 & "&orderby=" & request("orderby") & " class=""menu"">[<<]</a>&nbsp;"
Else
  Response.Write ""
End If

Response.Write ""
For intNum = 1 To intPageCount
  Response.Write "&nbsp;<a href=links.asp?mode=vis&kat=" & request("kat") & "&page=" & intNum & "&orderby=" & request("orderby") & " class=""menu""><b>" & intNum & "</b></a>&nbsp;"
Next

If Clng(intPage) < Clng(intPageCount) Then
  Response.Write "&nbsp;<a href=links.asp?mode=vis&kat=" & request("kat") & "&page=" & intPage + 1 & "&orderby=" & request("orderby") & " class=""menu"">[>>]</a>"
Else
  Response.Write ""
End If

Response.write "</b> Side <b>" & intPage & "</b> af " & intPageCount & "</font></td><td align=""right""><font size=""1""><b><a href='links.asp' class=""menu"">» Oversigt</a>&nbsp;&nbsp;&nbsp;<a href='links.asp?mode=søg' class=""menu"">» Søg i links</a>&nbsp;&nbsp;&nbsp;<a href='links.asp?mode=add' class=""menu"">» Tilføj links</a></b>&nbsp;&nbsp;</font></td></tr></table></td></tr></table>"

case else


' Database connection
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM kategorier ORDER BY kategori"
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\home\peterogdeandredk\db\links.mdb;"

rs.Open strSQL, strConnect, 1
If Not (rs.BOF Or rs.EOF) Then
    Response.Write "<table width='500' cellspacing='1' cellpadding='3'>"
        Response.Write "<tr><td width='100%' bgcolor=""#E5E5E5""><font size=""1""><b>Links</b></font></td></tr>"
        Response.Write "<tr><td width='100%' bgcolor=""#CCCCCC""><font size=""1""><b>Kategorier</b></font></td></tr>"
  Do until rs.EOF = True

If farve=1 Then
bg="#FCFCFC"
Farve= Farve + 1
Else
bg="#E5E5E5"
farve=1
End If

        Response.Write "<tr><td width='100%' bgcolor=""" & bg & """><font size=""2""><a href='links.asp?mode=vis&kat=" & rs("id") & "&orderby=navn'><b>" & rs("kategori") & "</b></a></font></td></tr>"
  rs.MoveNext
  Loop
End If
        Response.Write "<tr><td align=""right"" bgcolor=""#CCCCCC""><font size=""1""><b><a href='links.asp?mode=søg' class=""menu"">» Søg i links</a>&nbsp;&nbsp;&nbsp;<a href='links.asp?mode=add' class=""menu"">» Tilføj links</a></b>&nbsp;&nbsp;</font></td></tr>"
    Response.Write "</table>"
rs.Close
Set rs = Nothing


end select %>
</body>
</html>

********************************************

1) Når jeg klikker på "Søg" får jeg flg. fejl:
ADODB.Connection error '800a0e78'
Unknown runtime error

/KONTAKT/links.asp, line 70

line 70 i scriptet:
Set rs = myConn.Execute(strSQL)

2) Hvis jeg vil tilføje et link, er der 2 problemer. 2.1 Den henter ikke kategorier fra databasen
2.2 Der er ingen submit-knap, selvom funktionen ER med i scriptet.
Avatar billede eagleeye Praktikant
29. oktober 2002 - 17:55 #1
så vidt jeg kan se manger du at åbne for connection til database.

Så tilføj dennne linie:
myConn.Open strConnect


Og det den placeres sådan her:
<% case "search"
' Siden med søgeresultater

' Database connection
Set myConn = Server.CreateObject("ADODB.Connection")
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\home\peterogdeandredk\db\links.mdb;"
myConn.Open strConnect              '<-----------------HER
Avatar billede eagleeye Praktikant
29. oktober 2002 - 19:09 #2
Det samme gælder for "update"


<% case "update"
' Sender resultaterne fra tilføj links til databasen
' Database connection
Set Conn = Server.CreateObject("ADODB.Connection")
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\home\peterogdeandredk\db\links.mdb;"
Conn.Open strConnect                      '<------------- MANGLER OGSÅ HER
Avatar billede jespernaur Nybegynder
29. oktober 2002 - 19:48 #3
Hvor har du fået scriptet fra, og er der der en beskrivelse af hvordan det burde virke?
Avatar billede peterkopi Nybegynder
30. oktober 2002 - 00:44 #4
eagleeye: Har indsat 'Conn.Open strConnect' de 2 steder.
1) Søg: Fejl - Siden kan ikke vises (HTTP 500 - Intern serverfejl); stadig forkert, men dog bedre end den første fejl ;-)
2)2.1 - Den henter stadig ikke kategorier fra databasen, og 2.2 - der er stadig INGEN submitknap!

Har du lyst til at komme med nogle flere, måske point-udløsende svar?
Avatar billede eagleeye Praktikant
30. oktober 2002 - 15:12 #5
Til 1. hvis du får den fejl så prøv dette for at få en bedre fejl beskrivelse:

slå denne fra: funktioner -> internetindstillinger -> avanceret -> fjern kryds i "ved meddelelse om uskadelige http-fejl"
Avatar billede eagleeye Praktikant
30. oktober 2002 - 15:26 #6
Dette laver din kategori liste så vidt jeg kan se, jeg ville sætte en </option> ind efter hver option i selecten:

<select name="kategori" size="1">
<%
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM kategorier ORDER BY kategori"
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\home\peterogdeandredk\db\links.mdb;"
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
  Do until rs.EOF = True
    Response.Write "<option value='" & rs("id") & "'>" & rs("kategori") & "</option>" & vbCrLf
  rs.MoveNext
  Loop
End If
rs.Close
Set rs = Nothing
%> </select>

Hvis listen er tom er det nok fordi tabellen kategorier  er tom.:
strSQL = "SELECT * FROM kategorier ORDER BY kategori"
Avatar billede peterkopi Nybegynder
30. oktober 2002 - 17:08 #7
Det hjælper ikke! Og den forsvundne submit-knap lader stadig vente på sig!
Avatar billede eagleeye Praktikant
30. oktober 2002 - 19:08 #8
Har du prøvet view souce og kigge HTML koden på siden igennem om de ikke skulle være der men stylen gør de er "usynlige" på siden?

Submit knappen bliver sat ind i ren HTML kode...
Avatar billede peterkopi Nybegynder
03. februar 2003 - 14:10 #9
Der er en fejl i scriptet!

Takker for jeres hjælp - og hvis nogen vil lave et der virker, så mail mig på peter@peterogdeandrekopier.dk for beskrivelse af opgaven og nærmere info.
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