webForumDet fria alternativet

"?" i databas, funkar inte det?

ASP

19 svar · 471 visningar · startad av anders4u

Medlem sedan apr. 2002271 inlägg
Frågan#1

Hej!

jag har länar i en databas som läggs ut på en sida.
men så fort det är ett frågetecken med i länken så funkar det inte.

varför?

vad kan jag göra.

jag jobbar med "frontpage-asp" och access 2002-databas.
tacksam om hjälp.

        / Anders
Medlem sedan juni 200032 967 inlägg
#2

Du får visa kod och felmeddelande, och gärna beskriva mer ingående vad problemet är.

Mvh,

Medlem sedan apr. 2002271 inlägg
#3

Det kanske inte är frågetecknet som är fel men det blir massa % tecken i länken.
i vissa fall fungerar det bra men i vissa fall inte.

om man går in på Linktree.net klickar på bildgallerier och sedan på länken "Webshots Gallery" så ser du hur det ser ut.
:-)

Medlem sedan apr. 2002271 inlägg
#4

nöje måste man klicka på först innan man hittar bildgallerier

Medlem sedan juni 200032 967 inlägg
#5

Gör du något konstigt när du sparar länkar i databasen, Server.HTMLEncode(), och sedan gör det igen när du visar upp länkarna?

Om du tittar direkt i Access, ser url:en rätt ut?

Medlem sedan apr. 2002271 inlägg
#6

databasen ser ut så här.

id, url, description"det som visas när man vilar musen över länken", kategori"för att skilja länkarna åt" och text"det som man ska klicka på så man kommer vidare".

så i gällande årdning står det så här i dabasen:

3, www.picsearch.se, description
En bra sökmotor för bilder!, bilder, text
Picsearch sök bilder.

vet inte om det hjälper så mycket.
jag kan bara lite asp och när frontpage skriver sin egna asp så blir det inte lättare.

Vänlig hällsning, Anders.

Medlem sedan juni 200032 967 inlägg
#7

Hur ser koden ut?
Ser allt rätt ut när du öppnar tabellen i databasen?

Det verkar som om url:en html-kodas dubbelt innan utskrift.

Medlem sedan apr. 2002271 inlägg
#8

nu märkte jag visserligen att länken inte fungerar men problemet med ? kvarstår ändå.

Medlem sedan apr. 2002271 inlägg
#9

auktioner.asp ser ut så här:

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Linktree.net:: Auktioner</title>
<script language="JavaScript">
<!--
function change(html){
description.innerHTML=html
}
//-->
</script>
<base target="_blank">
<link rel="stylesheet" type="text/css" href="../stil/stil.css">
</head>

<body bgcolor="#0D1A00" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF" topmargin="40">

<p><a href="../index.htm" target="_top">startsidan</a></p>
<table border="0" width="100%">
<tr>
<td width="33%">
<table>
<tbody>
<!--webbot bot="DatabaseRegionStart" startspan
s-columnnames="ID,url,description,sokord,kategori,text"
s-columntypes="3,202,202,202,202,202" s-dataconnection="Databas1"
b-tableformat="TRUE" b-menuformat="FALSE" s-menuchoice="text" s-menuvalue="text"
b-tableborder="FALSE" b-tableexpand="FALSE" b-tableheader="FALSE"
b-listlabels="FALSE" b-listseparator="FALSE" i-ListFormat="0"
b-makeform="FALSE" s-recordsource="lankar" s-displaycolumns="text"
s-criteria="[kategori] EQ [auktion] +" s-order="[ID] -"
s-sql="SELECT * FROM lankar WHERE (kategori = 'auktion') ORDER BY ID DESC"
b-procedure="FALSE" clientside SuggestedExt="asp" s-DefaultFields
s-NoRecordsFound="Inga poster returnerades." i-MaxRecords="256"
i-GroupSize="0" BOTID="0" u-dblib="../_fpclass/fpdblib.inc"
u-dbrgn1="../_fpclass/fpdbrgn1.inc"
u-dbrgn2="../_fpclass/fpdbrgn2.inc" tag="TBODY"
local_preview="<tr><td colspan=64 bgcolor="#FFFF00" align="left" width="100%"><font color="#000000">Det går inte att förhandsgranska databasresultatsområden om inte sidan hämtats från en webbserver med en webbläsare. Följande tabellrad upprepas en gång för varje post som returneras av frågan.</font></td></tr>"
preview="<tr><td colspan=64 bgcolor="#FFFF00" align="left" width="100%"><font color="#000000">Det här är början av ett databasresultatsområde.</font></td></tr>" b-WasTableFormat="TRUE" --><!--#include file="../_fpclass/fpdblib.inc"-->
<%
fp_sQry="SELECT * FROM lankar WHERE (kategori = 'auktion') ORDER BY ID DESC"
fp_sDefault=""
fp_sNoRecords="<tr><td colspan=1 align=left width=""100%"">Inga poster returnerades.</td></tr>"
fp_sDataConn="Databas1"
fp_iMaxRecords=256
fp_iCommandType=1
fp_iPageSize=0
fp_fTableFormat=True
fp_fMenuFormat=False
fp_sMenuChoice="text"
fp_sMenuValue="text"
fp_iDisplayCols=1
fp_fCustomQuery=False
BOTID=0
fp_iRegion=BOTID
%>
<!--#include file="../_fpclass/fpdbrgn1.inc"-->
<!--webbot bot="DatabaseRegionStart" i-CheckSum="11410" endspan -->
<tr>
<td><a href="http://<%=FP_FieldURL(fp_rs,"url")%>" onmouseout="javascript:change('')" onmouseover="javascript:change('<%=FP_FieldVAL(fp_rs,"description")%>')"><!--webbot
bot="DatabaseResultColumn" startspan
s-columnnames="ID,url,description,sokord,kategori,text"
s-column="text" b-tableformat="TRUE" b-hasHTML="FALSE" clientside
local_preview="<font size="-1">&lt;&lt;</font>text<font size="-1">&gt;&gt;</font>"
preview="<font size="-1">&lt;&lt;</font>text<font size="-1">&gt;&gt;</font>" --><%=FP_FieldVal(fp_rs,"text")%><!--webbot
bot="DatabaseResultColumn" i-CheckSum="6885" endspan -->
</a></td>
</tr>
<!--webbot bot="DatabaseRegionEnd" startspan b-tableformat="TRUE"
b-menuformat="FALSE" u-dbrgn2="../_fpclass/fpdbrgn2.inc"
i-groupsize="0" clientside tag="TBODY"
local_preview="<tr><td colspan=64 bgcolor="#FFFF00" align="left" width="100%"><font color="#000000">Det här är slutet av ett databasresultatsområde.</font></td></tr>"
preview="<tr><td colspan=64 bgcolor="#FFFF00" align="left" width="100%"><font color="#000000">Det här är slutet av ett databasresultatsområde.</font></td></tr>" --><!--#include file="../_fpclass/fpdbrgn2.inc"-->
<!--webbot bot="DatabaseRegionEnd" i-CheckSum="56926" endspan -->
</tbody>
</table>
<p><nobr></nobr></p>
 </td>
<td width="33%"></td>
<td width="34%"><div id="description" style="text-align: center; font-size: 12pt; font-weight: bold; font-family: Garamond">
<p align="center">Välkommen hit!</div>
</td>
</tr>
</table>

</body>

</html>

Medlem sedan juni 200032 967 inlägg
#10

Hur ser funktionen FP_FieldURL() ut?

Medlem sedan apr. 2002271 inlägg
#11

syntaxen typ eller?
ska det kanske inte vara FP_FieldURL utan FP_FieldVAL i stället?
jag vet inte riktigt hur syntaxen ska vara.

Medlem sedan juni 200032 967 inlägg
#12

Koden till funktionen. Den ligger förmodligen i någon includefil.

Red: Tråden flyttas till ASP-forumet också.

Mvh,

Medlem sedan apr. 2002271 inlägg
#13

global.asa

det är väl includeringsfilen kan man säga
den ser ut så här:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
'==FrontPage Generated - startspan==
Dim FrontPage_UrlVars(1)
'--Project Data Connection
Application("Databas1_ConnectionString") = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=URL=fpdb/lankar.mdb"
FrontPage_UrlVars(0) = "Databas1_ConnectionString"
Application("Databas1_ConnectionTimeout") = 15
Application("Databas1_CommandTimeout") = 30
Application("Databas1_CursorLocation") = 3
Application("Databas1_RuntimeUserName") = ""
Application("Databas1_RuntimePassword") = ""
'--
Application("FrontPage_UrlVars") = FrontPage_UrlVars
'==FrontPage Generated - endspan==
End Sub
Sub Session_OnStart
FrontPage_StartSession '==FrontPage Generated==
End Sub
Sub FrontPage_StartSession
On Error Resume Next
if Len(Application("FrontPage_VRoot")) > 0 then Exit Sub
' discover the VRoot for the current page;
' walk back up VPath until we find global.asa
Vroot = Request.ServerVariables("PATH_INFO")
strG1 = "global.asa"
strG2 = "Global.asa"
iCount = 0
do while Len(Vroot) > 1
idx = InStrRev(Vroot, "/")
if idx > 0 then
Vroot = Left(Vroot,idx)
else
' error; assume root web
Vroot = "/"
end if
if FrontPage_FileExists(Server.MapPath(Vroot & strG1)) then exit do
if FrontPage_FileExists(Server.MapPath(Vroot & strG2)) then exit do
if Right(Vroot,1) = "/" then Vroot = Left(Vroot,Len(Vroot)-1)
iCount = iCount + 1
if iCount > 100 then
' error; assume root web
Vroot = "/"
exit do
end if
loop
' map all URL= attributes in _ConnectionString variables
Application.Lock
if Len(Application("FrontPage_VRoot")) = 0 then
Application("FrontPage_VRoot") = Vroot
UrlVarArray = Application("FrontPage_UrlVars")
for i = 0 to UBound(UrlVarArray)
if Len(UrlVarArray(i)) > 0 then FrontPage_MapUrl(UrlVarArray(i))
next
end if
Application.Unlock
End Sub
Sub FrontPage_MapUrl(AppVarName)
' convert URL attribute in conn string to absolute file location
strVal = Application(AppVarName)
strKey = "URL="
idxStart = InStr(strVal, strKey)
If idxStart = 0 Then Exit Sub
strBefore = Left(strVal, idxStart - 1)
idxStart = idxStart + Len(strKey)
idxEnd = InStr(idxStart, strVal, ";")
If idxEnd = 0 Then
strAfter = ""
strURL = Mid(strVal, idxStart)
Else
strAfter = ";" & Mid(strVal, idxEnd + 1)
strURL = Mid(strVal, idxStart, idxEnd - idxStart)
End If
strOut = strBefore & Server.MapPath(Application("FrontPage_VRoot") & strURL) & strAfter
Application(AppVarName) = strOut
End Sub
Function FrontPage_FileExists(fspath)
On Error Resume Next
FrontPage_FileExists = False
set fs = CreateObject("Scripting.FileSystemObject")
Err.Clear
set istream = fs.OpenTextFile(fspath)
if Err.Number = 0 then
FrontPage_FileExists = True
istream.Close
end if
set istream = Nothing
set fs = Nothing
End Function
</SCRIPT>

Medlem sedan juni 200032 967 inlägg
#14

Jag kan inte hitta koden till funktionen FP_FieldURL som jag letar efter.

I någon includefil finns något som liknar:

Function FP_FieldURL(något här)
   någon kod här
End Function

Det är den koden jag vill åt. Dessutom, hur gör du när du lägger in länkarna i databasen?

Använd gärna wF-s kodtaggar när du postar kod, så blir koden betydligt mer lättläst.

Mvh

Medlem sedan apr. 2002271 inlägg
#15

tack

ska försöka göra det mer lättläst.

tack för all hjälp.

databasen fyller jag helt enkelt i i access.
inget avancerat alls.

ska leta efter det du söker.
vänliga hällsningar Anders.

Medlem sedan apr. 2002271 inlägg
#16

hittat

en fil som hette fpdblib.inc

<%

Function FP_FieldVal(rs, fldname)

    FP_FieldVal = Server.HTMLEncode(FP_Field(rs, fldname))
    if FP_FieldVal = "" then FP_FieldVal = "&nbsp;"

End Function

Function FP_Field(rs, fldname)

    If Not IsEmpty(rs) And Not (rs Is Nothing) and Not IsNull(rs(fldname)) Then 
        Select Case rs(fldname).Type
            Case 128, 204, 205 ' adBinary, adVarBinary, adLongVarBinary
                FP_Field = "[#BINARY#]"
            Case 201, 203 ' adLongVarChar, adLongVarWChar
                if rs(fldname).DefinedSize > 255 then
                    ' check for Access hyperlink fields (only absolute http links)
                    fp_strVal = rs(fldname)
                    fp_idxHash1 = InStr(LCase(fp_strVal),"#[url]http://[/url]")
                    if fp_idxHash1 > 0 then
                        fp_idxHash2 = InStr(fp_idxHash1+1,fp_strVal,"#")
                        if fp_idxHash2 > 0 then 
                            ' this is an Access hyperlink; extract the URL part 
                            fp_strVal = Mid(fp_strVal,fp_idxHash1+1)
                            if Right(fp_strVal,1) = "#" then
                                fp_strVal = Left(fp_strVal,Len(fp_strVal)-1)
                            end if
                        end if
                     end if
                     FP_Field = fp_strVal
                else
                     FP_Field = rs(fldname)
                end if
            Case Else
                FP_Field = rs(fldname)
        End Select
    Else
        FP_Field = ""
    End If

End Function

Function FP_FieldHTML(rs, fldname)

    FP_FieldHTML = Server.HTMLEncode(FP_Field(rs, fldname))

End Function

Function FP_FieldURL(rs, fldname)

    FP_FieldURL = Server.URLEncode(FP_Field(rs, fldname))

End Function

Function FP_FieldLink(rs, fldname)

    FP_FieldLink = Replace(FP_Field(rs, fldname), " ", "%20")

End Function

Sub FP_OpenConnection(oConn, sAttrs, sUID, sPWD, fMSAccessReadOnly)

	Dim sTmp
	Dim sConnStr
	Dim fIsAccessDriver

	fIsAccessDriver = (InStr(LCase(sAttrs), "microsoft access driver") > 0)
	sConnStr = FP_RemoveDriverWithDSN(sAttrs)
	sTmp = sConnStr
	
	On Error Resume Next

	If fMSAccessReadOnly And fIsAccessDriver Then

		sTmp = sTmp & ";Exclusive=1;ReadOnly=1"

		Err.Clear
		oConn.Open sTmp, sUID, sPWD
		If Err.Description = "" Then Exit Sub

	End If

	Err.Clear
	oConn.Open sConnStr, sUID, sPWD

End Sub

Function FP_RemoveDriverWithDSN(sAttrs)

	FP_RemoveDriverWithDSN = sAttrs

	sDrv = "driver="
	sDSN = "dsn="
	sLC = LCase(sAttrs)
	if InStr(sLC, sDSN) < 1 then exit function

	idxFirst = InStr(sLC, sDrv)
	if idxFirst < 1 then exit function
	idxBeg = idxFirst + Len(sDrv)
	if Mid(sLC,idxBeg,1) = "{" then 
		idxEnd = InStr(idxBeg, sLC, "}")
		if idxEnd > 0 and Mid(sLC,idxEnd+1,1) = ";" then 
			idxEnd = idxEnd + 1
		end if
	else
		idxEnd = InStr(idxBeg, sLC, ";")
	end if
	if idxEnd < 1 then idxEnd = Len(sLC)
	
	FP_RemoveDriverWithDSN = Left(sAttrs,idxFirst-1) & Mid(sAttrs,idxEnd+1)

End Function

Sub FP_OpenRecordset(rs)
	
	On Error Resume Next
	rs.Open

End Sub

Function FP_ReplaceQuoteChars(sQry)

	Dim sIn
	Dim sOut
	Dim idx

	sIn = sQry
	sOut = ""

	idx = InStr(sIn, "%%")

	Do While (idx > 0)

		sOut = sOut & Left(sIn, idx - 1)
		sIn = Mid(sIn, idx + 2)
		if (Left(sIn,1) = "%") And (Left(sIn,2) <> "%%") then
			sIn = Mid(sIn, 2)
			sOut = sOut & "%"
		end if
		sOut = sOut & "::"

		idx = InStr(sIn, "%%")
		if idx > 0 then
			sOut = sOut & Left(sIn, idx - 1)
			sIn = Mid(sIn, idx + 2)
			sOut = sOut & "::"
			if (Left(sIn,1) = "%") And (Left(sIn,2) <> "%%") then
				sIn = Mid(sIn, 2)
				sOut = sOut & "%"
			end if
		end if
		
		idx = InStr(sIn, "%%")

	Loop

	sOut = sOut & sIn

	FP_ReplaceQuoteChars = sOut

End Function

Sub FP_Close(obj)

	On Error Resume Next

	obj.Close

End Sub

Sub FP_SetCursorProperties(rs)

	On Error Resume Next

	rs.CursorLocation = 3 ' adUseClient
	rs.CursorType = 3 ' adOpenStatic

End Sub

%>

försökte fet markera just det men lyckades inte.
Function FP_FieldURL finns med ialla fall

Medlem sedan juni 200032 967 inlägg
#17

Jag hade inte gjort Server.URLEncode() såsom Frontpage vill att du ska göra. Prova att byta raden

<td><a href="http://<%=FP_FieldURL(fp_rs,"url")%>" onmouseout="java script:change('')" onmouseover="java script:change('<%=FP_FieldVAL(fp_rs,"description")%>')">

mot

<td><a href="http://<%=fp_rs("url")%>" onmouseout="java script:change('')" onmouseover="java script:change('<%=FP_FieldVAL(fp_rs,"description")%>')">

mvh,

Medlem sedan apr. 2002271 inlägg
#18

Du är en ängel @nders

:bire
nu är livet gott.
det fungerar hur bra som helst.
jag får se till att frontpage inte ändrar tillbaka det sedan.
men du har jag lösningen och det är jag supertacksam för.

tack för att du la ner tid.
Hällsningar Anders.

Medlem sedan juni 200032 967 inlägg
#19

Varsågod!

Om du har intresse och tid så hoppas jag att du lär dig att skriva ASP-koden själv och inte låta Frontpage förstöra för dig. Frontpage stjälper ofta mer än det hjälper, är min uppfattning.

Lycka till, och återkom med frågor! :)

Mvh,

Medlem sedan apr. 2002271 inlägg
#20

japp

jag ska börja internet-teknik på högskolan nu i jönköping så blir det väl lite asp ialla fall.

hoppas att jag kan hjälpa dig någon gång med nått.
/ Anders

283 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
149 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)