Avatar billede clauso Nybegynder
22. maj 2001 - 22:56 Der er 12 kommentarer og
1 løsning

Linkscript på Freepaq uden response.redirect

Dette Access script ønskes brugt på Freepaq´s MySQL
server som ikke understøtter response.redirect - et
bud på \"oversættelse\"?

http://www.asp.dk/sources.asp?mode=view_source&id=1130&tech_id=1
Avatar billede smurfen Nybegynder
22. maj 2001 - 23:57 #1
Den klodsede måde ville være at bruge:
%>
<SCRIPT>
document.all.location.href = <%=strUrl%>
</SCRIPT>
<%

Men da asp understøtter desværre ikke rigtigt andre muligheder, hvor klienten involveres, så er man nok nødt til at snyde.
Avatar billede bojohansen Nybegynder
23. maj 2001 - 01:39 #2
Hmmmmmmmm så skulle linket(på link siden) laves så det åbner et nyt vindue med den URL som koden originalt skulle Response.Redirect\'e og link vinduet skulle linke til en anden side som ligge adder +1 til databasen, men så virker selve counteren kun hvis der klikkes på linket direkte på link siden, og du kan ikke feks. sende en mail ud hvor du har indsat det engentlige track link og derved registrere hvor mange der har klikket på linket ud fra mailen.

Men du kunne manuelt oprette en side feks.
www.domain.dk/mail_link.asp?link=1234

og så på mail_link.asp lægge noget ligende dette ind

link = Request.Querystring(\"link\")

Set Conn = Server.CreateObject(\"ADODB.Connection\")
  Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=D:\\sti\\link.mdb\"

Set RsLinkInfo= conn.Execute(\"Select LinkAdresse, hitsNummer From TabelNavn Where Link = \'\" & Link & \"\' \")

Hit = RsLinkInfo(\"hitsnummer\") + 1

Set RsUpdateLinkInfo = Conn.Execute(\"Update TabelNavn Set hitsnummer = \'\" & Hit & \"\' Where Link = \'\" & Link & \"\' \")

Response.Write \"<META HTTP-EQUIV=\'REFRESH\' CONTENT=\'0;URL=\" & LinkAdresse & \"\'></HTML>\"
Avatar billede bojohansen Nybegynder
23. maj 2001 - 01:42 #3
Linkadresse skal så selvfølgelig være en komplet adresse

http://www.domaine.dk

hvis det kun er www.domaine.dk så laver du bare dette

Response.Write \"<META HTTP-EQUIV=\'REFRESH\' CONTENT=\'0;URL=http://\" & LinkAdresse & \"\'></HTML>\"
Avatar billede bojohansen Nybegynder
24. maj 2001 - 00:36 #4
På siden der hedder links.asp, i toppen udkifter du bare :

\' Her opdateres hits når brugeren bliver sendt til et link
Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"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


Med dette :


\' Her opdateres hits når brugeren bliver sendt til et link
Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"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.Write \"<META HTTP-EQUIV=\'REFRESH\' CONTENT=\'0;URL=http://\" & strURL & \"\'></HTML>\"
    End If
End If

Så simpelt er det.

Response.Write \"<META HTTP-EQUIV=\'REFRESH\' CONTENT=\'0;URL=http://\" & strURL & \"\'></HTML>\"

gør simpelthen det at serveren ikke laver en Response.Redirect men klientens browser \'Refesher\' sig selv med den nye URL som jo er strURL taget fra databasen.
Avatar billede bojohansen Nybegynder
24. maj 2001 - 00:39 #5
Upssssssssss så først lige at det er absolutte URL\'s der ligger i databasen så udskift med dette i stedet for :


\' Her opdateres hits når brugeren bliver sendt til et link
Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"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.Write \"<META HTTP-EQUIV=\'REFRESH\' CONTENT=\'0;URL=\" & strURL & \"\'></HTML>\"
    End If
End If
Avatar billede bojohansen Nybegynder
24. maj 2001 - 00:51 #6
Avatar billede clauso Nybegynder
24. maj 2001 - 20:37 #7
>>>Bo Johansen:
Jeg kunne måske godt gætte på hvordan response.redirect nr. 2 herunder skulle skrives, men da det er 400 p. må jeg vist hellere bede om dem begge som er senere i scriptet:
Response.Redirect (\"links.asp?mode=søg\")
response.Redirect (\"links.asp\")
Avatar billede bojohansen Nybegynder
24. maj 2001 - 20:58 #8
Hvad hedder dit domain navn??

Så fikser vi det :-)
Avatar billede bojohansen Nybegynder
24. maj 2001 - 20:59 #9
Avatar billede bojohansen Nybegynder
24. maj 2001 - 21:12 #10
Eller ændre selv linkene så de passer til din server:

<html>
<head>
<title>Links</title>
<style type=\"text/css\">
<!--
body {margin: 5;font-family:verdana}
a.menuitem {text-decoration:none;color:#000000}
a.menuitem:hover {text-decoration:none;color:#FF0000}
a {text-decoration:none;color:#3366FF}
a:hover {text-decoration:underline;color:#333333}
INPUT
{
    BACKGROUND-COLOR: #FFFFFF;
    COLOR: #000000;
    FONT-FAMILY: verdana, helvetica, sans-serif;
    FONT-SIZE: 12px;
    FONT-STYLE: normal;
    border: 1 solid #000000;
}
Textarea
{
    BACKGROUND-COLOR: #FFFFFF;
    COLOR: #000000;
    FONT-FAMILY: verdana, helvetica, sans-serif;
    FONT-SIZE: 12px;
    FONT-STYLE: normal;
    border: 1 solid #000000;
}
-->
</style>
</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\")
myConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"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.Write \"<META HTTP-EQUIV=\'REFRESH\' CONTENT=\'0;URL=\" & strURL & \"\'></HTML>\"
    End If
End If
%>

<% case \"search\"
\' Siden med søgeresultater

\' Database connection
Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"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.Write \"<META HTTP-EQUIV=\'REFRESH\' CONTENT=\'0;URL=http://bo-johansen.adsl.dk/link_sys/links.asp?mode=søg\'></HTML>\"
Else
    strKeyword = Replace(strKeyword,\"\'\",\"\'\'\")
End If

\' Opbygger en dynamisk SQL streng
strSQL = \"SELECT id, navn, url, beskrivelse, hits, søgeord  FROM links WHERE\"
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 & \"%\')\"


\' Skaber et recordset udfra SQL strengen
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
\' Hvis søgningen gav resultat
    Response.Write \"<table width=\'500\' cellspacing=1 cellpadding=1 style=\'border-bottom: 1 solid #C0C0C0\'>\"
        Response.Write \"<tr><td align=center width=\'100%\' colspan=2><font size=2><b>Søgeresultater for \" & strKeyword & \"</b></font></td></tr>\"
    Do While Not rs.EOF
        Response.Write \"<tr><td valign=top width=\'100%\' colspan=2 bgcolor=#e5e5e5><font size=2><b><a href=links.asp?mode=id&id=\" & rs(\"ID\") & \">&nbsp;\" & rs(\"Navn\") & \"</b></font></a></td></tr>\"
        Response.Write \"<tr><td valign=top width=\'80%\' bgcolor=#efefef><font size=2>\" & rs(\"Beskrivelse\") & \"</font></a></td>\"
        Response.Write \"<td valign=top width=\'20%\' bgcolor=#e5e5e5><font size=2>&nbsp;Hits: \" & rs(\"Hits\") & \"</font></td></tr>\"
        Response.Write \"<tr><td width=\'100%\' colspan=2 bgcolor=#efefef>&nbsp;</td></tr>\"
        rs.MoveNext
    Loop
    Response.Write \"<tr><td width=\'100%\' colspan=2 align=right style=\'border-top: 1 solid #C0C0C0\'><font size=\'2\'><a href=\'links.asp\'>Links</a> | <a href=\'links.asp?mode=søg\'>Søg igen</a> | <a href=\'links.asp?mode=add\'>Tilføj links</a></font></td></tr>\"
    Response.Write \"</table><br><br>\"
Else
\' Hvis ingen poster passede på søgordene
    Response.Write \"<table width=\'500\' cellspacing=1 cellpadding=1 style=\'border-bottom: 1 solid #C0C0C0\'>\"
        Response.Write \"<tr><td align=center width=\'100%\'><font size=2>Søgeresultater for \" & strKeyword & \"</font></td></tr>\"
        Response.Write \"<tr><td align=center width=\'100%\' bgcolor=#e5e5e5><font size=2>Ingen sider passede på søgeordet</font></a></td></tr>\"
    Response.Write \"<tr><td width=\'100%\' colspan=2 align=right style=\'border-top: 1 solid #C0C0C0\'><font size=\'2\'><a href=\'links.asp\'>Links</a> | <a href=\'links.asp?mode=søg\'>Søg igen</a> | <a href=\'links.asp?mode=add\'>Tilføj links</a></font></td></tr></table><br><br>\"
End If %>

<% case \"søg\"
\' Søgeformularen
Response.write \"<table width=\'500\' style=\'border-bottom: 1 solid #C0C0C0\'><tr><td><font size=\'2\'><b>Søg</b></font></td></tr>\"
Response.write \"<tr><td><form method=POST action=links.asp?mode=search><input type=text name=søgeord size=30></td></tr>\"
Response.write \"<tr><td><input type=submit value=\'  søg  \' name=send>&nbsp;<input type=button onclick=\'history.go(-1)\' value=tilbage name=tilbage></td></tr>\"
Response.Write \"<tr><td width=\'100%\' align=right style=\'border-top: 1 solid #C0C0C0\'><font size=\'2\'><a href=\'links.asp\'>Links</a> | <a href=\'links.asp?mode=add\'>Tilføj links</a></font></td></tr></table></form>\"
%>
<% case \"update\"
\' Sender resultaterne fra tilføj links til databasen
\' Database connection
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"links.mdb\")
\' Opbygger SQL streng
SQLstmt = \"INSERT INTO links (navn,url,beskrivelse,hits,søgeord)\"
SQLstmt = SQLstmt & \" VALUES (\'\" & request.form(\"navn\") & \"\',\'\" & request.form(\"url\") & \"\',\'\" & request.form(\"beskrivelse\") & \"\',\'\" & request.form(\"hits\") & \"\',\'\" & request.form(\"søgeord\") & \"\')\"

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.Write \"<META HTTP-EQUIV=\'REFRESH\' CONTENT=\'0;URL=http://bo-johansen.adsl.dk/link_sys/links.asp\'></HTML>\"
%>

<% case \"add\"
\' tilføj links
%>
<form method=\"POST\" action=\"links.asp?mode=update\">
        <table border=\"0\" width=\"500\" cellpadding=\"0\" style=\'border-bottom: 1 solid #C0C0C0\'>
        <tr><td colspan=\"2\"><font face=\"verdana\" size=\"2\"><b>Tilføj links</b></font></td></tr>
            <tr>
              <td width=\"35%\"><font face=\"Verdana\" size=\"2\"><b>Navn</font></td>
              <td width=\"65%\">
                  <p><input type=\"text\" name=\"navn\" size=\"32\"></p>
              </td>
            </tr>
            <tr>
              <td width=\"35%\"><font face=\"Verdana\" size=\"2\"><b>url</b></font></td>
              <td width=\"65%\"><input type=\"text\" name=\"url\" value=\"http://\" size=\"32\"></td>
            </tr>
            <tr>
              <td width=\"35%\" valign=\"top\"><font face=\"Verdana\" size=\"2\"><b>beskrivelse</b></font></td>
              <td width=\"65%\"><textarea name=\"beskrivelse\" cols=\"32\"></textarea></td>
            </tr>
            <tr>
              <td width=\"35%\" valign=\"top\"><font face=\"Verdana\" size=\"2\"><b>Søgeord</b><br>Adskilles med komma!</font></td>
              <td width=\"65%\"><input type=\"text\" name=\"søgeord\" size=\"32\"></td>
            </tr>
            <tr>
              <td width=\"100%\" colspan=\"2\"><input type=\"hidden\" value=\"0\" name=\"hits\"><input type=\"submit\" value=\"Send\" name=\"send\">
                <input type=\"reset\" value=\"Annuller\" name=\"anuller\"> <input type=\"button\" onclick=\"history.go(-1)\" value=\"Tilbage\" name=\"Tilbage\"></td>
            </tr>
<tr><td width=\'100%\' colspan=2 align=right style=\'border-top: 1 solid #C0C0C0\'><font size=\'2\'><a href=\'links.asp\'>Links</a> | <a href=\'links.asp?mode=søg\'>Søg i links</a></font></td></tr></table>
</form>

<% case else
\' Hvis der ikke er valgt noget mode vises alle links

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

\' Database connection
Set rs = Server.CreateObject(\"ADODB.RecordSet\")
strSQL = \"SELECT * FROM links ORDER BY navn\"
strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"links.mdb\")
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
  rs.PageSize = 25
  rs.AbsolutePage = intPage
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount
    Response.Write \"<table width=\'500\' cellspacing=\'2\' cellpadding=\'0\'>\"
  Do While Not rs.EOF And intRecCount > 0
        Response.Write \"<tr><td valign=top width=\'100%\' colspan=2 bgcolor=#e5e5e5><font size=2><b><a href=links.asp?mode=id&id=\" & rs(\"ID\") & \">\" & rs(\"Navn\") & \"</a></b></font></td></tr>\"
        Response.Write \"<tr><td valign=top width=\'80%\' bgcolor=#efefef><font size=2>\" & rs(\"Beskrivelse\") & \"</font></a></td>\"
        Response.Write \"<td valign=top width=\'20%\' bgcolor=#e5e5e5><font size=2>&nbsp;Hits: \" & rs(\"Hits\") & \"</font></td></tr>\"
        Response.Write \"<tr><td width=\'100%\' colspan=2 bgcolor=#efefef>&nbsp;</td></tr>\"
  intRecCount = intRecCount - 1
  rs.MoveNext
  Loop
End If
    Response.Write \"</table>\"
rs.Close
Set rs = Nothing

\' Navigering mellem siderne med paging
Response.Write \"<table width=\'500\' style=\'border-top: 1 solid #C0C0C0;border-bottom: 1 solid #C0C0C0\'><tr>\"
If Clng(intPage) > 1 Then
  Response.Write \"<td><font size=\'2\'><a href=links.asp?page=\" & intPage - 1 & \" class=paging>[<<]</a></td>\"
Else
  Response.Write \"<td></td>\"
End If

Response.Write \"\"
For intNum = 1 To intPageCount
  Response.Write \"<td valign=\'top\'><font size=\'2\'><a href=links.asp?page=\" & intNum & \">\" & intNum & \"</a></font></td> \"
Next

If Clng(intPage) < Clng(intPageCount) Then
  Response.Write \"<td><font size=\'2\'><a href=links.asp?page=\" & intPage + 1 & \" class=paging>[>>]</a></td>\"
Else
  Response.Write \"<td></td>\"
End If

Response.write \"<td><font size=\'2\'>Side <b>\" & intPage & \"</b> af \" & intPageCount & \"</font></td><td><p align=\'right\'><font size=\'2\'><a href=\'links.asp?mode=søg\'>Søg i links</a> | <a href=\'links.asp?mode=add\'>Tilføj links</a></font></p></td></tr></table>\"

end select %>
</body>
</html>
Avatar billede clauso Nybegynder
26. maj 2001 - 22:48 #11
Tak Bo Johansen. Har lige checket på Freepaq. Dog
ville jeg gerne have der blev åbnet et nyt vindue når der bliver klikket på linket, men det må vel bare være at sætte target?
Avatar billede clauso Nybegynder
26. maj 2001 - 22:53 #12
Det nye vindue skulle selvfølgelig også gerne være
fri af Freepaq´s reklamebar i toppen, som kommer med nu.
Avatar billede bojohansen Nybegynder
27. maj 2001 - 02:25 #13
target=\"_blank\"

det adder du bare der hvor du syntes.

Er det inde mit i noget asp kode skal du skrive target=\'_blank\'

asp lave så selv \' om til \" mens det skriver siden til klienten.
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