Avatar billede ml Nybegynder
18. marts 2002 - 22:29 Der er 14 kommentarer og
1 løsning

"falsk" bibliotek som her på siden (/spørgsmål_id)

Hvordan laver man "falske" biblioteker som eksperten gør med /123456 hvor 123456 er spørgsmålets id ?

For de laver vel ikke et bibliotek til hvert spørgsmål ;]
Avatar billede netsrac Praktikant
18. marts 2002 - 22:31 #1
Det kan man gøre hvis man kører med Apache som webserver og da ASP ikke lige kører så godt på Apache er det nok ikke at anbefale.
Avatar billede erikjacobsen Ekspert
18. marts 2002 - 22:33 #2
Nu ved jeg ikke lige med ASP/IIS, men med PHP/apache kan man
sagtens lave    ..../script.asp/37468
og så bare aflæse og dekode hele url-en
Avatar billede ml Nybegynder
18. marts 2002 - 22:35 #3
Skal være ASP/IIS :|
Avatar billede erikjacobsen Ekspert
18. marts 2002 - 22:39 #4
Kan du så ikke bruge  ../script.asp/12345 ??
Avatar billede ml Nybegynder
18. marts 2002 - 22:40 #5
hmmm.. prøver lige :)
Avatar billede ml Nybegynder
18. marts 2002 - 22:48 #6
zzZz selvfølgelig virker det ikke, den siger jo bare siden ikke fundet, for biblioteket findes jo ikke... Ex. www.url.dk/fakedir/123456 - som det skal se ud :) (virker heller ikke med default.asp/123456)
Avatar billede ml Nybegynder
18. marts 2002 - 22:49 #7
Man skulle tro det var noget man kunne sætte op på serveren så... (Bruger Windows 2000 server)
Avatar billede erikjacobsen Ekspert
18. marts 2002 - 22:58 #8
Det var da ondt af Microsoft. Man kan sagtens kalde en .asp fil
på den måde, men der er tilsyneladende ingen måde at få
teksten efter .asp - med mindre den starter med et "?"

Jeg har kigget på request.servervariables - og har ikke fundet noget.
Avatar billede bojohansen Nybegynder
18. marts 2002 - 23:14 #9
Jeg har længe ledt efter en sådanne løsning til IIS - ASP.
Jeg kan kun sige at det ikke kan lade sig gøre, ikke engang med 'Custom Error pages' hvor man så bare omskriver 404.asp siden.
Det vil så sige at det godt kan lade sig gøre hvis du ville kalde en statisk side (Htm - Html), men i det øjeblik du kalder en .asp side omskriver IIS hele Url'en til først at kalde 404 siden efterfulgt af den asp side du kaldte først.
Har haft det oppe at vende på nogle forskellige Forums verden over, men uden held :-(
Avatar billede erikjacobsen Ekspert
18. marts 2002 - 23:16 #10
Jeg får ingen fejl på ../script.asp/12345, men kan blot ikke se 12345.
Får I fejl på sådan en børge?
Avatar billede ml Nybegynder
18. marts 2002 - 23:26 #11
erikjacobsen > ja den får jeg fejl på.

Har lige været inde i IIS og lege lidt med dir Properties, man man bruge wildcard, men kan ikke få det til at virke med biblioteker, kun filer.. F.eks. *;*.stm;/default.stm
Avatar billede bojohansen Nybegynder
19. marts 2002 - 00:47 #12
Har ikke lige testet det til ende, men hvis du opretter en mappe i din rod mappe af serveren og kalder den 'errorpages' (eller hvad du nu har lyst til) kopiere filen :
C:\WINNT\help\iisHelp\common\404b.htm
ind i mappen og omdøber den til '404b.asp'
Gå nu ind i MMC og egenskaber for dit website og gør som på dette screenshot :
http://bo-johansen.adsl.dk/eksperten/186893/

Så kan du bruge 'Request.ServerVariables("HTTP_URL")' til at modtage original URL'en, feks. som dette
http://bo-johansen.adsl.dk/spoergsmoel/12345

lav en formatering på strengen for at se om 'spoergsmoel' indgår i strengen, hvis ja så rens 'spoergsmoel' fra og tag kun nummeret og lav opslag i DB'en og smid det ud på siden, hvis ikke 'spoergsmoel' indgår i strengen så smid standart koden for 404 fejlen på siden.
Fik lige tanken da det jeg skulle bruge den gang jeg rodede med det var falske .asp sider, men det kan ikke lade sig gøre uden at IIS ødelægger querystringen af. Eks. :
http://bo-johansen.adsl.dk/spoergsmoel/12345.asp

prøv at lege lidt med det, så lykkedes det sikkert :-)
Avatar billede bojohansen Nybegynder
19. marts 2002 - 01:26 #13
<%
link = Request.ServerVariables("HTTP_URL")
If instr(link,"spm") then
SpmNr = MID(link, 6 , 20) '20 som står sidst i strengen angiver hvor mange tal der skal medtages
'
Response.write "" & SpmNr &"<br>"
Response.write "yep"
else
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html dir=ltr>

<head>
<style>
a:link            {font:8pt/11pt verdana; color:FF0000}
a:visited        {font:8pt/11pt verdana; color:#4e4e4e}
</style>

<META NAME="ROBOTS" CONTENT="NOINDEX">

<title>The page cannot be found</title>

<META HTTP-EQUIV="Content-Type" Content="text-html; charset=Windows-1252">
</head>

<script>
function Homepage(){
<!--
// in real bits, urls get returned to our script like this:
// res://shdocvw.dll/http_404.htm#http://www.DocURL.com/bar.htm

    //For testing use DocURL = "res://shdocvw.dll/http_404.htm#https://www.microsoft.com/bar.htm"
    DocURL = document.URL;
       
    //this is where the http or https will be, as found by searching for :// but skipping the res://
    protocolIndex=DocURL.indexOf("://",4);
   
    //this finds the ending slash for the domain server
    serverIndex=DocURL.indexOf("/",protocolIndex + 3);

        //for the href, we need a valid URL to the domain. We search for the # symbol to find the begining
    //of the true URL, and add 1 to skip it - this is the BeginURL value. We use serverIndex as the end marker.
    //urlresult=DocURL.substring(protocolIndex - 4,serverIndex);
    BeginURL=DocURL.indexOf("#",1) + 1;
   
    urlresult=DocURL.substring(BeginURL,serverIndex);
               
    //for display, we need to skip after http://, and go to the next slash
    displayresult=DocURL.substring(protocolIndex + 3 ,serverIndex);

    document.write('<A HREF="' + urlresult + '">' + displayresult + "</a>");
}
//-->
</script>

<body bgcolor="FFFFFF">

<table width="410" cellpadding="3" cellspacing="5">

  <tr>   
    <td align="left" valign="middle" width="360">
    <h1 style="COLOR:000000; FONT: 13pt/15pt verdana"><!--Problem-->The page cannot be found</h1>
    </td>
  </tr>
 
  <tr>
    <td width="400" colspan="2">
    <font style="COLOR:000000; FONT: 8pt/11pt verdana">The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.</font></td>
  </tr>
 
  <tr>
    <td width="400" colspan="2">
    <font style="COLOR:000000; FONT: 8pt/11pt verdana">

    <hr color="#C0C0C0" noshade>
   
      <p>Please try the following: </p>
      <ul>
        <li>If you typed the page address in the Address bar, make sure that it
          is spelled correctly.<br>
        </li>
        <li>Open the
          <script>
      <!--
      if (!((window.navigator.userAgent.indexOf("MSIE") > 0) && (window.navigator.appVersion.charAt(0) == "2")))
      {
          Homepage();
      }
      //-->
      </script>
          home page, and then look for links to the information you want.</li>
        <li>Click the <a href="java script:history.back(1)">Back</a> button to
          try another link.</li>
      </ul>
      <h2 style="font:8pt/11pt verdana; color:000000">HTTP 404 - File not found<br>
        Internet Information Services<BR>
      </h2>
      <hr color="#C0C0C0" noshade>
      <p>Technical Information (for support personnel)</p>
      <ul>
        <li>More information:<br>
          <a href="http://www.microsoft.com/ContentRedirect.asp?prd=iis&sbp=&pver=5.0&pid=&ID=404&cat=web&os=&over=&hrd=&Opt1=&Opt2=&Opt3=" target="_blank">Microsoft
          Support</a> </li>
      </ul>
      </font></td>
  </tr>
 
</table>
</body>
</html>
<%
end if
%>

Sådan, det funger. Så skal du bare proppe dit Recordset ind :-)
Avatar billede bojohansen Nybegynder
19. marts 2002 - 01:29 #14
Avatar billede ml Nybegynder
19. marts 2002 - 09:59 #15
Takker, det virker :)
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