Avatar billede tidsrejse-frede Nybegynder
03. august 2003 - 13:21 Der er 14 kommentarer og
1 løsning

Printevenlig hovedpine

Hej alle!
Jeg sidder og fumler med et ASP-script, som kan lave en printevenlig side ved hjælp af HTTP_REFERER.... Indtil videre har det kun givet mig grå hår i hovedet, hovedpine, og begyndende mavesår....

Det kører på min hjemmeserver: http://80.196.148.230/theme/printpage.asp

Mit problem er at jeg får en kompileringsfejl  ved linien
<% option explicit %>

hele scriptet ser således ud:

----------------------------------------------

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<% @Language=VBScript %>

<% option explicit %>

<% dato=now() %>

<html>
<head>
<link rel="stylesheet" type="text/css" href="http://80.196.148.230/theme/ou_print.css">
<title>print<title>
</head>
<body>

<table class="hovedbox" width="560">
  <tr>
    <td width="100%">
    <table width="100%" height="184">
      <tr>
        <td class="hovedtekst" width="100%" colspan="3" height="105">
        <img border="0" src="http://80.196.148.230/theme/print_banner.jpg" width="555" height="100"></td>
      </tr>
      <tr>
        <td class="hovedtekst" width="30%" height="15"><% Response.Write dato %></td>
        <td class="hovedtekst" width="55%" height="15"><% Request.ServerVariables("HTTP_REFERER") %> </td>
        <td class="hovedtekst" width="15%" height="15"><a href="java script:window.print();">
        <img border="0" src="http://80.196.148.230/theme/print.gif" width="16" height="16">Print Siden</a></td>
      </tr>
      <tr>
        <td class="hovedindhold" width="100%" colspan="3">


<%
Const ForReading = 1

Dim strReferrer, objFSO, objOpenFile, strLine
strReferrer = Request.QueryString("REF")

If Len(strReferrer) > 1 then
    strReferrer = Request.ServerVariables("HTTP_REFERER")
   
    If Len(strReferrer) < 1 then
      Response.Write "Egad!  An Error occurred!  We could not" & _
        " determine what page you wanted to view the source for..."
      Response.End
    Else
      'With the HTTP_REFERER, the entire URL is passed along... we
      'need to hack out the part
      strReferrer = Right(strReferrer,len(strReferrer)-7)
      strReferrer = Right(strReferrer,len(strReferrer) - _
                          instr(1,strReferrer,"/")+1)
    End If
   
  End If
 
  Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
  Set objOpenFile = objFSO.OpenTextFile(Server.MapPath(strReferrer), - _
                                                    ForReading)
 
  'Output each line of the file...
  Do Until objOpenFile.AtEndOfStream
    strLine = objOpenFile.ReadLine
    Response.Write  strLine & vbCrLf
  Loop
 
  objOpenFile.Close
  Set objOpenFile = Nothing
  Set objFSO = Nothing
%>
        </td>
      </tr>
    </table>
    </td>
  </tr>
</table>

</body>

</html>
Avatar billede moskjaer Nybegynder
03. august 2003 - 13:25 #1
Avatar billede and_ Nybegynder
03. august 2003 - 13:26 #2
Når du kører med option explicit skal du huske at alle dine variabler skal navngives før du kan benytte dem:

Dette:

<% option explicit %>

<% dato=now() %>


Bliver til:

<%
option explicit

Dim dato as long
dato = now()

%>
Avatar billede and_ Nybegynder
03. august 2003 - 13:26 #3
svar
Avatar billede tidsrejse-frede Nybegynder
03. august 2003 - 13:34 #4
ahaa!! det prøver jeg lige....
Avatar billede tidsrejse-frede Nybegynder
03. august 2003 - 13:37 #5
and:

Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0400)
En sætning var ventet
/theme/printpage.asp, line 5 (som er option explicit)
Avatar billede and_ Nybegynder
03. august 2003 - 13:39 #6
Prøv at rive option explicit ad h..... til

<%
'option explicit
dato = now()
%>

Prøv dette...
Avatar billede erikjacobsen Ekspert
03. august 2003 - 13:42 #7
Er option explicit linie 5 står den jo heller ikke først
Avatar billede tidsrejse-frede Nybegynder
03. august 2003 - 13:47 #8
moskjaer:

Hvis jeg sætter option explicit øverst på siden, får jeg en fejl med at @language=VBscript altid skal stå øverst i en ASPside!
Avatar billede tidsrejse-frede Nybegynder
03. august 2003 - 13:52 #9
erikjacobsen: Det er fordi at jeg prøvede and's løsning først...

and: jeg har prøvet at mane option explicit i jorden, men jeg tror den skal bruges... vi kan lige prøve at gøre det...
Avatar billede tidsrejse-frede Nybegynder
03. august 2003 - 13:53 #10
and:

Parameteren for stien skal angives for metoden MapPath.
/theme/printpage.asp, line 71

Dette er linien:


Set objOpenFile = objFSO.OpenTextFile(Server.MapPath(strReferrer),
Avatar billede tidsrejse-frede Nybegynder
03. august 2003 - 13:55 #11
pt. ser toppen af kransekagen således ud:

<% @Language=VBScript %>
<%
'option explicit

'Dim dato as long
dato = now()

%>


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
Avatar billede erikjacobsen Ekspert
03. august 2003 - 13:57 #12
Du kan roligt som de første 3 linier

<% @Language=VBScript
    option explicit %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Avatar billede avacore Nybegynder
03. august 2003 - 14:20 #13
Problemmet er linieenw:
If Len(strReferrer) > 1 then
    strReferrer = Request.ServerVariables("HTTP_REFERER")

Der bør læse:
If Len(strReferrer) < 1 then
    strReferrer = Request.ServerVariables("HTTP_REFERER")
Avatar billede tidsrejse-frede Nybegynder
16. august 2003 - 21:39 #14
Ok, problemet er at der dannes en infinitiv recursion i forbindelse med indlæsningen af forrige side...

Lukker nu...
Avatar billede tidsrejse-frede Nybegynder
16. august 2003 - 21:40 #15
svar
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