Avatar billede rar_jacobsen Nybegynder
02. marts 2006 - 08:25 Der er 10 kommentarer og
1 løsning

Direkte sti til includefil

Hej -

Det må altså kunne lade sig gøre at kunne linke direkte til en include fil. Ikke nødvendigvis med "include file" / "include virtual" hvor det er med ../../include.inc eller /include.inc

som f.eks.
<--#include virtual"http://www.domæne.dk/include.inc"-->
Avatar billede rar_jacobsen Nybegynder
02. marts 2006 - 08:27 #1
Er der nogen som kan hjælpe mig
Avatar billede softspot Forsker
02. marts 2006 - 08:50 #2
Du kan evt. lave et HTTP-Request med MSXML2.XMLHTTP til en URL og så indsætte resultatet i din side. Dette vil dog være en statisk stump kode som ikke kan fortolkes eller noget...

Du kan lave din egen fortolker som omsætter ASP-tags, i en fil du indlæser fra et andet domæne, til nogle kommandoer der bliver udført på din egen server. Der findes et (mindst) eksempel på hvordan man gør dette her på sitet, som er postet indenfor de sidste 2 uger - jeg kan desværre ikke huske hvor det var (men det afgrænser da din søgning væsentligt).

De to teknikker kan jo så kombineres.
Avatar billede rar_jacobsen Nybegynder
02. marts 2006 - 09:07 #3
okay ... jeg vil forsøge at finde det
Avatar billede softspot Forsker
02. marts 2006 - 09:13 #4
Den kode med HTTP request kunne se således ud:

  set objXML = Server.CreateObject("MSXML2.XMLHTTP")
  objXML.open "GET", addr, false
  objXML.send
  res = objXML.responseText
  set objXML = nothing

res vil så indeholde resultatet af dit request, dvs. hvis du kalder en ASP-side, så er det naturligvis den oversatte side du får, men hvis du kalder en inc-side vil den nok blive opfattet som klartekst af serveren du kalder. Det er i princippet det samme som at inkludere den fra din lokale server - når altså du kombinerer den med den anden teknik med at fortolke kode selv.
Avatar billede softspot Forsker
02. marts 2006 - 11:54 #5
Jeg har lige prøve at lege lidt med en ASP-konverteringsfunktion, der tager en streng med blandet HTML og ASP-kode og omsætter det til ASP, hvorefter den udfører det. Det er et udgangspunkt for en mere komplet udgave (denne kan f.eks. ikke håndtere include-filer og pagedirectives). Koden ser således ud:

<%@ language="vbscript" %>
<%
Server.ScriptTimeout = 5
aspStartTAG = "<" & "%"
aspEndTAG = "%" & ">"

function ExpandASP(strHTML)
  dim resHTML
  dim htmlStart, aspStart, aspEnd
 
  aspEnd = 0
  htmlStart = 1
  aspStart = 1
  do
    aspStart = instr(aspStart, strHTML, aspStartTAG)
    if aspStart > 0 then
      ' Der er fundet en ASP-sektion i teksten, så den skal udtages og behandles
      if htmlStart < aspStart then
        ' hvis der er HTML-kode imellem det forrige ASP-tag og det nye, så skal den bare udskrives med response.write
        resHTML = resHTML & "Response.Write """ & replace(mid(strHTML, htmlStart, aspStart - htmlStart),"""","""""") & """" & vbCrLf
      end if
     
      ' Find slutningen af ASP-sektionen
      aspEnd = instr(aspStart+2, strHTML, aspEndTAG)
      if aspEnd > htmlStart then
        htmlStart = aspEnd + 2
      else
        htmlStart = len(strHTML)
      end if
      'response.Write "htmlStart: " & htmlStart & " / " & len(strHTML) & "<br>" & vbCrLf
     
      ' Udtag den aktuelle ASP-kode fra strengen
      strASP = trim(mid(strHTML, aspStart+2, aspEnd-aspStart-2))
      if left(strASP,1) = "=" then
        strASP = "Response.Write " & mid(strASP, 2, len(strASP) - 1)
      end if
      resHTML = resHTML & strASP & vbCrLf
      aspStart = aspEnd + 2
     
    else
      ' Der er ikke mere ASP-kode tilbage, så resten skal bare udskrives
      resHTML = resHTML & "Response.Write """ & replace(mid(strHTML,htmlStart,len(strHTML)),"""","""""") & """" & vbCrLf
      htmlStart = len(strHTML)
    end if
  loop while htmlStart < len(strHTML)

  ExpandASP = resHTML
end function

s = "<b>" & aspStartTAG & "=Session.Timeout" & aspEndTAG & "</b><br>" & _
    "<u>" & aspStartTAG & "For i = 1 to 10" & vbCrLf & "Response.Write ""Looper lige lidt i en for-løkke<br>"" & vbCrLf" & vbCrLf & "Next" & aspEndTAG & "</u>" & _

%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
  <head>
    <title>ASPfortolker</title>
  </head>
  <body>
   
<%
Execute ExpandASP(s)
'Response.Write Replace(Server.HTMLEncode(ExpandASP(s)),vbCrLf,"<br>" & vbCrLf)
%>
   
  </body>
</html>
Avatar billede rar_jacobsen Nybegynder
02. marts 2006 - 14:33 #6
øhhh okay, så bliver min asp viden vidst lige sat på en prøve, men jeg må jo bare sige til hvis der er noget jeg ikke er med på. Men prøver at kigge på det
Avatar billede softspot Forsker
02. marts 2006 - 14:38 #7
Ja, du spørger bare ind :)
Avatar billede kimborg Nybegynder
04. marts 2006 - 14:34 #8
Prøv med:

<!--#include virtual="/include.inc"-->

Du kan ikke skrive hele adressen, men ved at sætte starte med / i "/include.inc" fortæller du serveren at den skal inkludere filen: http://www.domæne.dk/include.inc

Håber dette var svar nok ellers kan du læse mere her:

http://www.activeserverpages.dk/artikler/default.asp?articleid=78

/Kimborg
Avatar billede rar_jacobsen Nybegynder
04. marts 2006 - 22:15 #9
Virtual er forsøgt, men jeg glemte vist lige at fortælle det er fordi jeg skal includere filer på både www.domæne.dk og sub.domæne.dk, sorry

softspot: hvis du lige smider et svar så vil jeg sende lidt point i din retning
Avatar billede softspot Forsker
04. marts 2006 - 22:20 #10
Det skal jeg hermed gøre :)
Avatar billede softspot Forsker
05. marts 2006 - 17:38 #11
Tak for point :)
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