Avatar billede reino Nybegynder
27. februar 2006 - 20:46 Der er 23 kommentarer og
1 løsning

Asp fil til html

Hej,

har ledt efter et script der kan konvertere en asp side til html via fso, ikke xml. Sitets adresse er default.asp?side=test. Denne skal genereres til test.html. Er dette ikke muligt via fso ? Er ved at stirre mig blind på sagen :)
Avatar billede nielle Nybegynder
27. februar 2006 - 20:50 #1
Hvad mener du præcist med at den skal konverteres til HTML?
Avatar billede reino Nybegynder
27. februar 2006 - 20:54 #2
hey, har brug for et script der kan generere et html output, ex. via en side der ex. hedder default.asp?side=test og derefter  gemme det til en fil på samme server via fso. Dvs når man beder scriptet om at grappe førnævnte side og derefter generere en html fil ud af denne.
Avatar billede nielle Nybegynder
27. februar 2006 - 21:03 #3
Skal den køre ASP-filen, eller skal den vise ASP-koden?
Avatar billede reino Nybegynder
27. februar 2006 - 21:04 #4
den skal køre asp filen
Avatar billede nielle Nybegynder
27. februar 2006 - 21:21 #5
Det kan gøres med Request.Redirect:

http://www.w3schools.com/asp/met_redirect.asp

- eller med Server.Transfer:

http://www.w3schools.com/asp/met_transfer.asp
Avatar billede reino Nybegynder
27. februar 2006 - 21:26 #6
hejsa, nej, ikke lige hvad jeg mente, der skal genereres en html fil ud fra en asp fil, ikke en redirect.
Avatar billede nielle Nybegynder
27. februar 2006 - 21:29 #7
Hvad med den anden mulighed - Server.Transfer?
Avatar billede reino Nybegynder
27. februar 2006 - 21:32 #8
tjekker den lige, ligner noget derhen af, men fejler når jeg benytter tegnet ?:

Server object error 'ASP 0173 : 80004005'

Invalid Path Character

/test.asp, line 3

An invalid character was specified in the Path parameter for the MapPath method.

Forsøger med: Server.Transfer("default.asp?side=test")
Avatar billede nielle Nybegynder
27. februar 2006 - 21:37 #9
Der er også Server.Execute:

http://www.w3schools.com/asp/met_execute.asp
Avatar billede nielle Nybegynder
27. februar 2006 - 21:38 #10
Det lader som om at der er en fejl i din test.asp side.
Avatar billede mathiasvestergaard Nybegynder
27. februar 2006 - 21:39 #11
jeg ved ikke hvordan du kan gøre det med fso, men vha. http-sockets kan du connecte til din egen webserver, loade dit output ind i en streng og outputte strengen til en fil.
løsning?
Avatar billede reino Nybegynder
27. februar 2006 - 21:43 #12
nej, ingen fejl i min test.asp side, server brokker sig over default.asp?side=test. Vil godt godtage default.asp, men ingen parametre efter .asp. Får denne fejl: An invalid character was specified in the Path parameter for the MapPath method.
. Kan åbenbart ikke håndtere flere parametre i objektet.
Avatar billede reino Nybegynder
27. februar 2006 - 21:43 #13
mathiasvestergaard, har du et ex eventuelt ?
Avatar billede reino Nybegynder
27. februar 2006 - 21:45 #14
nielle. er der ingen work around omkring den server.execute object, virker ellers som det rigtige ?
Avatar billede mathiasvestergaard Nybegynder
27. februar 2006 - 21:48 #15
det er ret langt:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

  <%

' *** Get a file through HTTP ( GetHttp("www.azero.dk/forside.asp") )
Function GetHttp(strUrl)

  ' Reserve variables
  Dim strHost
 
  ' Start error handling
  On Error Resume Next

  ' Strip off http://
  If LCase(Left(strUrl, 7)) = "http://" Then
    strUrl = Right(strUrl, Len(strUrl) - 7)
  End If
 
  ' Split server address and filename
  If InStr(strUrl, "/") > 0 Then
    strHost = Left(strUrl, InStr(strUrl, "/") - 1 )
    strUrl = Right(strUrl, (Len(strUrl) - InStr(strUrl, "/")) + 1 )
  End If
 
  ' Add port if not included
  If InStr(strHost, ":") = 0 Then
    strHost = strHost & ":80"
  End If
 
  ' Create object
  set Socket = server.CreateObject("Socket.TCP")

  ' Set hostadress
  socket.Host = strHost

  ' Set timeout to 5 seconds
  Socket.TimeOut = 5000

  ' Open connection to host
  Socket.Open

  ' Send getline for content
  Socket.SendLine("GET /" & strUrl & " HTTP/1.0" & Chr(13) & Chr(10) & "Host: " & strHost & Chr(13) & Chr(10))

  ' Wait until content is recieved
  Socket.WaitForDisconnect()

  ' Insert data into function
  GetHttp = Socket.Buffer

  ' Close object
  Socket.Close()

  ' Error
  If Err.Number <> 0 Then
      Response.Write Err& ": " & Err.Description
      Response.Write "<br>Host:[" & strHost & "]<br>Url:[" & strUrl & "]"
      Exit function
  End If
  On Error Goto 0

End Function

' *** Get content within a tag (strS) ( GetHttpData("www.azero.dk/forside.asp", "body") )
Function GetHttpData(strUrl,strStart,strSlut)
  Dim strT
  strT = GetHttp(strUrl)
  strT = Mid(strT, InStr(LCase(strT), "" & LCase(strStart)))
  strT = Mid(strT, InStr(LCase(strT), "") + 0)
  strT = Left(strT, InStrRev(LCase(strT), "" & LCase(strSlut)) -1 )
  GetHttpData = strT
End Function

' *** Get the header from a file through HTTP ( GetHttpHeader("www.azero.dk/forside.asp") )
Function GetHttpHeader(strUrl)
  Dim strT
  strT = GetHttp(strUrl)
  strT = Mid(strT, 1, InStr(strT, Chr(13) & Chr(10) & Chr(13) & Chr(10)))
  GetHttpHeader = strT
End Function

' *** Get the body from a file through HTTP ( GetHttpBody("www.azero.dk/forside.asp") )
Function GetHttpBody(strUrl)
  Dim strT
  strT = GetHttp(strUrl)
  strT = Mid(strT, InStr(strT, Chr(13) & Chr(10) & Chr(13) & Chr(10)) + 4)
  GetHttpBody = strT
End Function


' Hent alt mellem <body> og </body> fra vores bestillingsside og udskriv det
myDataString = GetHttp("http://dit-domæne/test.asp")



' her skal der bare laves kode der skriver myDataString til en fil



%>
Avatar billede nielle Nybegynder
27. februar 2006 - 21:49 #16
I 27/02-2006 21:32:48 har du dette:

"
/test.asp, line 3

An invalid character was specified in the Path parameter for the MapPath method.

Forsøger med: Server.Transfer("default.asp?side=test")
"

Har test.asp da ikke noget at gøre med det "test" som indgår i "side=test"?
Avatar billede reino Nybegynder
27. februar 2006 - 22:11 #17
hej nielle, har en side der hedder: thomas.asp, her har jeg indsat koden:

<%
Server.execute("default.asp")
%>

virker også fint. Den napper siden som den skal, dog hvis jeg indsætter:

<%
Server.execute("default.asp?side=test")
%>

(Default.asp indeholder div. includes) som så viser content ref. til side.

Når jeg benytter tegnet ? i Server.execute statement får jeg så fejlen:

Server object error 'ASP 0173 : 80004005'

Invalid Path Character

/thomas.asp, line 2

An invalid character was specified in the Path parameter for the MapPath method.
Avatar billede reino Nybegynder
27. februar 2006 - 22:12 #18
Mathias, kræves der ikke et komponent installeret for dit script ?
Avatar billede nielle Nybegynder
27. februar 2006 - 22:20 #19
Jeg synes at jeg kan huske at der er nogle problemer med argumenter sammen med Server.execute(). Måske kan du i stedet gemme de ekstra oplysninger i en Session, og så læse denne fra den anden fil.
Avatar billede mathiasvestergaard Nybegynder
27. februar 2006 - 22:31 #20
jo, der kræves W3Sockets.

min udbyder tilbyder det og jeg bruger det. hvis det er no-go, så kan jeg ikke lige hjælpe.
Avatar billede nielle Nybegynder
27. februar 2006 - 22:34 #21
Det er hurtigt at tjekke - bare lav en ASP-fil med koden:

Dim Socket
Set Socket = Server.CreateObject("Socket.TCP")

- og se om den brokker sig eller ej :^)
Avatar billede nielle Nybegynder
06. marts 2006 - 18:42 #22
Hvad med noget respons?
Avatar billede reino Nybegynder
08. marts 2006 - 07:52 #23
hej, har ikke haft tiden til at kigge på det førend nu, jeg har nu selv fundet en måde at gøre dette på. Har en template, kopierer den via fso samt merger med et andet script bagefter. Har ikke mulighed for det med komponentet, desværre.

Har også forsøgt med:

>Jeg synes at jeg kan huske at der er nogle problemer med argumenter sammen med Server.execute(). Måske kan du i stedet gemme de ekstra oplysninger i en Session, og så læse denne fra den anden fil.

Men har ikke fået det til at virke, min metode er måske lidt mere "tung", men det virker fint nu.

Jeg takker ellers mange gange for hjælpen.
Avatar billede reino Nybegynder
12. marts 2006 - 17:02 #24
lukker og slukker, tak for responsen
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