04. juni 2000 - 23:50
Der er
12 kommentarer og
3 løsninger
Vis kildekode
Hejsa allesammen
Jeg vil gerne have det lavet sådan at folk kan gå ind og se mine koder, hvordan ??
sa
Nybegynder
04. juni 2000 - 23:56
#1
Hvis du mener kilderne til selve ASP-scriptene. Det bliver nok list svært, da de jo udføres på serveren med det samme. Hvis filer ikke har efternavnet *.asp, vil de ikke blive eksekveret, så du kunne evt. lægge en kopi til download eller i nogle *.html dokumenter.
Hvis folk skal kunne se din ASP kode skal du bare gemme disse som TXT filer og lægge dem på serveren
ARGAHRGAHRAH!!!! 7 sekunder!!!! :)
Du kan også lave en include i et asp dokument, der tager den fil du vil vise som input.
Så kan du fx lave en hurtig linienummerering osv samtidigt (gør det også lidt sværere at kopiere sourcen uden videre).
sa
Nybegynder
05. juni 2000 - 00:00
#5
I teorien ville det også være muligt at lave et script, der kunne hente fra de øvrige asp-filer og vise indholdet som tekst, hvis du vil slippe for at lave kopier, men det bliver straks langt mere kompliceret.
Hvis du har mange filer, du ønsker at lave kopier af, kan du evt. bruge en dos-kommando inden opload i retning af
xcopy *.asp *.txt
jae eller du kunne lave en HTMLencode og ligge det hele i der som output
Skal det være i ASP, jeg har nemlig lavet det i PHP3.
Så hvis det er OK, så har jeg en løsning til dig!
hvis PHP ikke er OK, så sig lige til... så kan jeg forhåbentligt hurtigt strikke noget sammen i ASP!
sa
Nybegynder
05. juni 2000 - 01:07
#9
Ja, HTMLencode var netop en af mulighederne jeg havde i tankerne i det ovenstående. Det vil dog kræve, at du indsætter et stykke kode, der henviser til den fil, du ønsker at vise kildekoden til. Hvis du eks. laver et link på følgende måde:
vis.asp?fil=script.asp
kan du opbygge vis.asp som noget i retning af:
<%
Set filesys = CreateObject("Scripting.FileSystemObject")
Set txtfile = _
filesys.OpenTextFile("" & Request.ServerVariables("APPL_PHYSICAL_PATH") & "\" & request.querystring("fil") & "",1, 0)
indhold = txtfile.ReadAll
txtfile.Close
response.write "" & replace(Server.htmlencode(indhold),"" & vbcrlf & "","<br>") & ""
%>
Vær opmærksom på, at filen, der ønskes vist i dette tilfælde skal ligge i roden. Dette kan dog blot ændres i selve linket eller i vis.asp, hvis filen ligger i en undermappe.
05. juni 2000 - 02:19
#10
Her er en funktion (sub), som gør noget lign. som overstående svar, men checker også samtidig om filen eksistere, så brugeren i stedet får en anden besked (samt at man stadig får ens eget design frem) end den standard i serveren:
<%
Sub VisSource(sFilnavn)
Set fsObj = CreateObject("Scripting.FileSystemObject")
If fsObj.FileExists(Server.Mappath(sFilnavn)) Then
Set fsFile = fsObj.OpenTextFile(Server.Mappath(sFilnavn), 1, False)
Response.Write Replace("" & Server.HTMLEncode("" & fsFile.ReadAll), vbCrLf, "<BR>" & vbCrLf)
fsFile.Close
Set fsFile = Nothing
Else
Response.Write "Filen blev ikke fundet!<BR>" & vbCrLf
End If
Set fsObj = Nothing
End Sub
%>
For at få den vist, skriver du blot:
<% VisSource("fil.asp") %>
// Stingbat
05. juni 2000 - 02:30
#11
Mens man nu var igang med at lave ekstra funktioner til source-viseren, kunne man jo også få den til at beskytte indholdet af bestemte filer, indeholdende "private"/hemlige oplysninger (f.eks. passwords til databaser og lign.):
<%
Sub VisSource(sFilnavn)
Set fsObj = CreateObject("Scripting.FileSystemObject")
sCheckFil = fsObj.GetFileName(Server.Mappath(sFilnavn))
If sCheckFil <> "hemlig1.asp" AND sCheckFil <> "hemlig2.asp" Then
If fsObj.FileExists(Server.Mappath(sFilnavn)) Then
Set fsFile = fsObj.OpenTextFile(Server.Mappath(sFilnavn), 1, False)
Response.Write Replace("" & Server.HTMLEncode("" & fsFile.ReadAll), vbCrLf, "<BR>" & vbCrLf)
fsFile.Close
Set fsFile = Nothing
Else
Response.Write "Filen kunne ikke indlæses (blev ikke fundet)!<BR>" & vbCrLf
End If
Else
Response.Write "Sourcen er desværre beskyttet!<BR>" & vbCrLf
End If
Set fsObj = Nothing
End Sub
%>
// Stingbat
05. juni 2000 - 08:12
#12
05. juni 2000 - 09:56
#13
Eller hvad med
kald på filen
visfil.asp?fil=visfil.asp
Koden
<HTML>
<HEAD><TITLE>Filviser</TITLE>
<STYLE>
BODY { font-family: tahoma; font-size: 10pt }
</STYLE>
</HEAD>
<BODY BGCOLOR="#000000" TEXT="#FFFFFF">
<%
Set fso = CreateObject("Scripting.FileSystemObject")
Set fil = fso.OpenTextFile(Server.MapPath(Request("fil")) , 1, True)
if fil.AtEndOfStream then%>
<font face="Tahoma" size="2" color="#FFFFFF">Filen er tom eller findes ikke!</font>
<%
else
do until fil.AtEndOfStream %>
<% Response.write (replace(Replace(server.htmlencode(Fil.ReadLine), "%>", "%></font>"), "<%", "<font color=CC0000><%")) & "<br>" & chr(13) %>
<%
loop
fil.Close
Set fil = Nothing
end if
%>
</BODY>
</HTML>
05. juni 2000 - 14:37
#14
Eller du kunne tage hele koden og smække den i "normal" i en frontpage 2000 side, så er det nemmere at overskue ;O)
05. juni 2000 - 20:34
#15
Hejsa Allesammen, må sige at jeg bedst kan lide netsrac´s forslag, men de andre er nu også meget gode.
Manke Tak for hjælpen.
Kurser inden for grundlæggende programmering