/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Hente oversigt over filer på remote server
Fra : Rune Jensen


Dato : 22-03-08 16:59

Jeg ville gerne kunne hente oversigt over billedfiler fra et directory
på en remote server (dvs. ikke fra mit domæne), men det er (siger min
logik mig så) ikke umiddelbart muligt, der skal vel gives en
permission? Hvad skal ejeren af dette websted sætte, før der er
adgang? Og man kan vel så heller ikke hente den oversigt på "normal"
vis med filesystemobject?

MVH
Rune Jensen


 
 
Michael Weber (23-03-2008)
Kommentar
Fra : Michael Weber


Dato : 23-03-08 02:13

Rune Jensen wrote:
> Jeg ville gerne kunne hente oversigt over billedfiler fra et directory
> på en remote server (dvs. ikke fra mit domæne), men det er (siger min
> logik mig så) ikke umiddelbart muligt, der skal vel gives en
> permission?


På IIS under egenskaber for website, er der et faneblad der hedder "hjemmemappe", hvor der skal sættes et flueben ved punktet
"Gennemsyn af mapper".


>Hvad skal ejeren af dette websted sætte, før der er
> adgang? Og man kan vel så heller ikke hente den oversigt på "normal"
> vis med filesystemobject?


Man kan lave et request til et url via MSXML, hvor man får et respons tilbage, som man reelt bare behandler i asp som en streng.
(se script nedenfor)


>
> MVH
> Rune Jensen



-----------------------------
<%
dim url
dim xmlhttp
dim status
dim userAgent
dim language

userAgent = Request.ServerVariables("HTTP_USER_AGENT")
language = request.servervariables("ALL_RAW")
url = "http://localhost"
set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")

xmlhttp.open "GET", url, false
xmlhttp.setRequestHeader "User-Agent","halihalo"

xmlhttp.send ""

status = xmlhttp.status

if err.number <> 0 or status <> 200 then
if status = 404 then

response.write "404"

elseif status >= 401 and status < 402 then

Response.Write "Access denied (401)."


elseif status >= 500 and status <= 600 then
Response.Write "500 Internal Server Error on remote site."
else
response.write "Dette er skrevet fra asp<br>" & xmlhttp.responseText & " Dette er skrevet fra asp"

end if
else
Response.write "Dette er skrevet fra asp<br>" & xmlhttp.responseText & " Dette er skrevet fra asp"
end if

set xmlhttp = nothing
%>


Jørn Andersen (23-03-2008)
Kommentar
Fra : Jørn Andersen


Dato : 23-03-08 02:13

On Sat, 22 Mar 2008 15:59:20 -0700 (PDT), Rune Jensen
<runeofdenmark@gmail.com> wrote:

>Jeg ville gerne kunne hente oversigt over billedfiler fra et directory
>på en remote server (dvs. ikke fra mit domæne), men det er (siger min
>logik mig så) ikke umiddelbart muligt, der skal vel gives en
>permission? Hvad skal ejeren af dette websted sætte, før der er
>adgang? Og man kan vel så heller ikke hente den oversigt på "normal"
>vis med filesystemobject?

Hvis ejeren tillader directory-listing, og der ikke ligger en index-fil
og spærrer, så kan du bruge en HTTP-forespørgsel.
Ellers skal du få ejeren til at sætte noget serverside op, så du kan
hente det på en serverside-listing, evt. med AJAX.

Bare mit bud

Good luck!

--
Jørn Andersen,
Brønshøj

Rune Jensen (23-03-2008)
Kommentar
Fra : Rune Jensen


Dato : 23-03-08 05:41

On 23 Mar., 02:13, "Michael Weber" <mich...@removemichaelweber.dk>
wrote:
> Rune Jensen wrote:
> > Jeg ville gerne kunne hente oversigt over billedfiler fra et directory
> > på en remote server (dvs. ikke fra mit domæne), men det er (siger min
> > logik mig så) ikke umiddelbart muligt, der skal vel gives en
> > permission?
>
> På IIS under egenskaber for website, er der et faneblad der hedder "hjemmemappe", hvor der skal sættes et flueben ved punktet
> "Gennemsyn af mapper".

Den må jeg lige overveje, men godt at vide.

> >Hvad skal ejeren af dette websted sætte, før der er
> > adgang? Og man kan vel så heller ikke hente den oversigt på "normal"
> > vis med filesystemobject?
>
> Man kan lave et request til et url via MSXML, hvor man får et respons tilbage, som man reelt bare behandler i asp som en streng.
> (se script nedenfor)

Mange tak det lyder som et ganske brugbart svar;) Jeg vil lige
overveje, hvor vigtigt det er, det med settings, men de fleste har
(formoder jeg) en nægtelse af adgang sat til DIRs i disse bot-&-
injection-tider, også selvom der ikke er index fil. Til gengæld kunne
det være sjovt at se scriptet virke, så det vil jeg lege med - man får
en alm. HTML-side med den forespørgsel, ikk? Man kan ikke gå ind og
hente selve filnavnet (som er det interessante lige her) i streamen
(eller hvad det nu hedder)?

Nå, jeg kigger på det;)


MVH
Rune Jensen

Michael Weber (23-03-2008)
Kommentar
Fra : Michael Weber


Dato : 23-03-08 17:34

Rune Jensen wrote:
> On 23 Mar., 02:13, "Michael Weber" <mich...@removemichaelweber.dk>
> wrote:
>> Rune Jensen wrote:
>>> Jeg ville gerne kunne hente oversigt over billedfiler fra et
>>> directory på en remote server (dvs. ikke fra mit domæne), men det
>>> er (siger min logik mig så) ikke umiddelbart muligt, der skal vel
>>> gives en permission?
>>
>> På IIS under egenskaber for website, er der et faneblad der hedder
>> "hjemmemappe", hvor der skal sættes et flueben ved punktet
>> "Gennemsyn af mapper".
>
> Den må jeg lige overveje, men godt at vide.
>
>>> Hvad skal ejeren af dette websted sætte, før der er
>>> adgang? Og man kan vel så heller ikke hente den oversigt på "normal"
>>> vis med filesystemobject?
>>
>> Man kan lave et request til et url via MSXML, hvor man får et
>> respons tilbage, som man reelt bare behandler i asp som en streng.
>> (se script nedenfor)
>
> Mange tak det lyder som et ganske brugbart svar;) Jeg vil lige
> overveje, hvor vigtigt det er, det med settings, men de fleste har
> (formoder jeg) en nægtelse af adgang sat til DIRs i disse bot-&-
> injection-tider, også selvom der ikke er index fil. Til gengæld kunne
> det være sjovt at se scriptet virke, så det vil jeg lege med - man får
> en alm. HTML-side med den forespørgsel, ikk?


Man får al html-koden som man kan se, når man kalder en side via browseren og vælger "Vis kilde".
Hvis man f.eks. sætter url´et til google.dk vil xmlhttp.responseText indeholde :
"<html><head><meta http-equiv="content-type" content="text/html;.....osv."
xmlhttp.responseText kan man så, f.eks. vha. regular expresions, modificerer.
( eksempler på regular expressions f.eks. på http://authors.aspalliance.com/brettb/VBScriptRegularExpressions.asp)

Man skal huske at xmlhttp.responseText indeholder html-kode, hvor stier til filer og links kan være relative og disse
skal ændres.
F.eks. indeholder xmlhttp.responseText fra google.dk linket :

".......<a href=/advanced_search?hl=da>Avanceret søgning</a>....."

som jo er relativt til google.dk og ikke ens eget site.



>Man kan ikke gå ind og
> hente selve filnavnet (som er det interessante lige her) i streamen
> (eller hvad det nu hedder)?


Man kan behandle xmlhttp.responseText som var det enhver anden streng-variabel i asp-kode og pille f.eks ".gif"
ud med InStr()-funktionen.
http://www.w3schools.com/vbscript/func_instr.asp

(Mener også man kan gøre det i regular expressions Regex objektets Execute-metode, hvor man får nogle Matches retur, men jeg er ikke
sikker)


>
> Nå, jeg kigger på det;)


Du kan prøve at sætte url´et til google.com.


>
>
> MVH
> Rune Jensen




Rune Jensen (23-03-2008)
Kommentar
Fra : Rune Jensen


Dato : 23-03-08 06:01

On 23 Mar., 02:13, Jørn Andersen <j...@jorna.dk> wrote:

> Hvis ejeren tillader directory-listing, og der ikke ligger en index-fil
> og spærrer, så kan du bruge en HTTP-forespørgsel.

Det første har jeg ikke erfaring med, så det må blive lidt research.
Men hvordan mener du HTTP-forespørgsel? Med AJAX?

> Ellers skal du få ejeren til at sætte noget serverside op, så du kan
> hente det på en serverside-listing, evt. med AJAX.

Jeg overvejer og tænker... det skal være enkelt, og allerhelst ikke
kræve for meget "præinstallation" eller ændringer af faste
indstillinger. Jeg prøver i første omgang med Michaels script, jeg har
en idé om, hvordan det virker, og også lidt om begrænsningerne. Og så
har jeg ikke leget med AJAX serverside før, så det skal prøves;) (Hov,
så heder det jo heller ikke AJAX mere, men AVAX??)

Tak for dine idéer og også til Michael. Jeg har under alle
omstændigheder noget at arbejde med.


MVH
Rune Jensen

--
Inifinity - Happy

Erik Ginnerskov (23-03-2008)
Kommentar
Fra : Erik Ginnerskov


Dato : 23-03-08 16:43

Rune Jensen wrote:
> Hvad skal ejeren af dette websted sætte, før der er
> adgang?

En asp-side med dette script sidens body viser den aktuelle mappes indhold
af forud specifiserede filtyper (her sat til .asp og .php):
_____

<table class="pd3" summary="">
<caption>asp-filer</caption>
<%
Dim FSO, F, filer, fil
Dim kolonner
kolonner = 4
Dim i
i = 0

Set FSO = CreateObject("Scripting.FileSystemObject")
Set F = FSO.GetFolder(Server.Mappath("."))
Set filer = F.Files
For Each fil In filer

'IF instr(FSO.GetExtensionName(fil), "asp") > 0 Then
If ( lcase(FSO.GetExtensionName(fil)) = "asp") OR (
lcase(FSO.GetExtensionName(fil)) = "php") Then
'Select Case lcase(FSO.GetExtensionName(fil))
'Case "asp", "php"
' Vis filen

If i mod kolonner = 0 Then
%>
<tr> <% End If %>
<td><a href="<%= fil.Name %>" title="Sidst ændret: <%=
fil.DateLastModified %>, oprettet: <%= fil.DateCreated %>" <% If
DateDiff("w", fil.DateLastModified, Now()) < 2 Then %>class="ny"<% End If
%>><%= fil.Name %></a></td>

<%
i = i + 1
If i mod kolonner = 0 Then
%>
</tr>
<% End If
End IF
Next
IF i mod kolonner > 0 Then
%>
</tr>
<% end if
'End Select
%>
</table>
____

Jeg bruger det selv til privat at kunne se en oversigt. Noget lignende kan
laves i php (jeg har et eksempel kørende, hvor udskriften ikke ligger i
tabeldesign men benytter float (til billeder)), men nu spurgte du i
asp-gruppen.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk



Erik Ginnerskov (23-03-2008)
Kommentar
Fra : Erik Ginnerskov


Dato : 23-03-08 16:46

Erik Ginnerskov wrote:

> <td><a href="<%= fil.Name %>" title="Sidst ændret: <%=
> fil.DateLastModified %>, oprettet: <%= fil.DateCreated %>" <% If
> DateDiff("w", fil.DateLastModified, Now()) < 2 Then %>class="ny"<%
> End If %>><%= fil.Name %></a></td>

Skulle måske lige tilføje, at ovenstående skal være på en lang linje med
mellemrum mellem hvad her vises på flere linjer.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk



Jørn Andersen (23-03-2008)
Kommentar
Fra : Jørn Andersen


Dato : 23-03-08 17:27

On Sun, 23 Mar 2008 16:46:24 +0100, "Erik Ginnerskov"
<erik.ginnerskov@live.dk> wrote:

>Erik Ginnerskov wrote:
>
>> <td><a href="<%= fil.Name %>" title="Sidst ændret: <%=
>> fil.DateLastModified %>, oprettet: <%= fil.DateCreated %>" <% If
>> DateDiff("w", fil.DateLastModified, Now()) < 2 Then %>class="ny"<%
>> End If %>><%= fil.Name %></a></td>
>
>Skulle måske lige tilføje, at ovenstående skal være på en lang linje med
>mellemrum mellem hvad her vises på flere linjer.

Man kan sagtens have det på flere linier - også selv om man gerne vil
have den resulterende HTML på samme linie.

<td><a href="<%
= fil.Name
%>" title="Sidst ændret: <%
= fil.DateLastModified
%>, oprettet: <%
= fil.DateCreated
%>" <%
If DateDiff("w", fil.DateLastModified, Now()) < 2 Then
%>class="ny"<%
End If
%>><%
= fil.Name
%></a></td>


En mere overskuelig måde at kode på kunne være:
strFileName = fil.Name
strTitle = " title=""Sidst ændret: " & fil.DateLastModified & "," & _
" oprettet: " & fil.DateCreated & """"

If DateDiff("w", fil.DateLastModified, Now()) < 2 Then
strClass = " class=""ny"""
Else
strClass = ""
End If

Resposense.Write "<td><a href=""" & strFileName & """" & _
strTitle & strClass & ">" & strFileName & "</a></td>"

Undskyld - kunne ikke lade være


Mvh. Jørn

--
Jørn Andersen,
Brønshøj

Jørn Andersen (23-03-2008)
Kommentar
Fra : Jørn Andersen


Dato : 23-03-08 17:44

On Sun, 23 Mar 2008 17:26:40 +0100, Jørn Andersen <jorn@jorna.dk> wrote:

>Resposense.Write "<td><a href=""" & strFileName & """" & _
>strTitle & strClass & ">" & strFileName & "</a></td>"

Skal naturligvis være:
Response.Write "<td><a href=""" & strFileName & """" & _
strTitle & strClass & ">" & strFileName & "</a></td>"


Mvh. Jørn

--
Jørn Andersen,
Brønshøj

Rune Jensen (23-03-2008)
Kommentar
Fra : Rune Jensen


Dato : 23-03-08 18:16

On 23 Mar., 16:43, "Erik Ginnerskov" <erik.ginners...@live.dk> wrote:
> Rune Jensen wrote:
> > Hvad skal ejeren af dette websted sætte, før der er
> > adgang?
>
> En asp-side med dette script sidens body viser den aktuelle mappes indhold
> af forud specifiserede filtyper (her sat til .asp og .php):

Som sagt, så er det rent psykologisk, jeg ikke (i første omgang i
hvert fald) vil bede folk om at uploade et script, som giver adgang
udover det normale (det kan blive interessant senerehen), men tanken
er god nok


> Set F = FSO.GetFolder(Server.Mappath("."))

Jeg roder lidt med nogle problemer med mapPath i øjeblikket... normalt
bruger jeg / i MaPath, men du bruger så punktum - hvad er forskellen?


>   'Select Case lcase(FSO.GetExtensionName(fil))
>     'Case "asp", "php"

vil i hvert fald kunne bruges til at optimere mit nuværende script.
Jeg læser og lærer


> Jeg bruger det selv til privat at kunne se en oversigt. Noget lignende kan
> laves i php (jeg har et eksempel kørende, hvor udskriften ikke ligger i
> tabeldesign men benytter float (til billeder)), men nu spurgte du i
> asp-gruppen.

Det har mere noget at gøre med, jeg ikke vil strække mig for bredt ud,
jeg ikke tager PHP med, for det kunne man godt, sådan set, og der
ville heller ikke være noget i vejen for at lave en -net udgave. Men
foreløbig holder jeg det i ASP for simpelthedens skyld... men kommer
det til at virke i ASP, er det jo sådan set "bare" at "oversætte"

Tak for svaret;)


MVH
Rune Jensen

Jørn Andersen (24-03-2008)
Kommentar
Fra : Jørn Andersen


Dato : 24-03-08 02:34

On Sun, 23 Mar 2008 17:15:39 -0700 (PDT), Rune Jensen
<runeofdenmark@gmail.com> wrote:

>> Set F = FSO.GetFolder(Server.Mappath("."))
>
>Jeg roder lidt med nogle problemer med mapPath i øjeblikket... normalt
>bruger jeg / i MaPath, men du bruger så punktum - hvad er forskellen?

Prøv fx at skrive "dir" fra en kommando-prompt (DOS-prompt), så vil du
se, at de to øverste "entries" er:
..
...
- hvorefter du har resten af mapperne og filerne.

"." betyder aktuelle mappe/directory/folder
".." - mappen et step tættere på rodem



Mvh. Jørn

--
Jørn Andersen,
Brønshøj

Stig Johansen (24-03-2008)
Kommentar
Fra : Stig Johansen


Dato : 24-03-08 13:15

Jørn Andersen wrote:

> On Sun, 23 Mar 2008 17:15:39 -0700 (PDT), Rune Jensen
> <runeofdenmark@gmail.com> wrote:
>
>>> Set F = FSO.GetFolder(Server.Mappath("."))
>>
>>Jeg roder lidt med nogle problemer med mapPath i øjeblikket... normalt
>>bruger jeg / i MaPath, men du bruger så punktum - hvad er forskellen?
>
> Prøv fx at skrive "dir" fra en kommando-prompt (DOS-prompt), så vil du
> se, at de to øverste "entries" er:
> .
> ..
> - hvorefter du har resten af mapperne og filerne.
>
> "." betyder aktuelle mappe/directory/folder
> ".." - mappen et step tættere på rodem

Muligvis normal viden, men jeg kan tilføje, at det samme gør sig gældende på
Linux og Unix varianter.

--
Med venlig hilsen
Stig Johansen

Jørn Andersen (25-03-2008)
Kommentar
Fra : Jørn Andersen


Dato : 25-03-08 02:50

On Mon, 24 Mar 2008 13:14:41 +0100, Stig Johansen <wopr.dk@gmaill.com>
wrote:

>> "." betyder aktuelle mappe/directory/folder
>> ".." - mappen et step tættere på rodem
>
>Muligvis normal viden, men jeg kan tilføje, at det samme gør sig gældende på
>Linux og Unix varianter.

Muligvis for nogen, men mit gæt er, at de fleste under 30 er startet med
et grafisk interface og kun modstræbende er blevet trukket hen til en
kommandolinie

PS: Gider du tage et kig på:
<url: http://www.usenet.dk/netikette/citatteknik.html>

--
Jørn Andersen,
Brønshøj

Stig Johansen (25-03-2008)
Kommentar
Fra : Stig Johansen


Dato : 25-03-08 05:17

Jørn Andersen wrote:

> PS: Gider du tage et kig på:
> <url: http://www.usenet.dk/netikette/citatteknik.html>

Pointen var at *både*:
> Set F = FSO.GetFolder(Server.Mappath("."))
> 'dos' promptet

gør sig gældende på *nix, og dermed også chiliASP og PHP.
Derfor det lange citat - for ikke at miste contexten.

--
Med venlig hilsen
Stig Johansen

Jørn Andersen (26-03-2008)
Kommentar
Fra : Jørn Andersen


Dato : 26-03-08 13:22

On Tue, 25 Mar 2008 05:17:16 +0100, Stig Johansen <wopr.dk@gmaill.com>
wrote:

>Derfor det lange citat - for ikke at miste contexten.

Det var en fejl fra min side (har den liggende som en af flere
standard-signaturer og havde klikket forkert) - sorry!


Mvh. Jørn

--
Jørn Andersen,
Brønshøj

Rune Jensen (23-03-2008)
Kommentar
Fra : Rune Jensen


Dato : 23-03-08 18:20

On 23 Mar., 17:26, Jørn Andersen <j...@jorna.dk> wrote:

> Man kan sagtens have det på flere linier - også selv om man gerne vil
> have den resulterende HTML på samme linie.

Ja, jeg bruger det selv med _ fordi det giver bedre overskuelighed.
Jeg er ikke så god til lange linjer, men klart det fylder mindre så.
Det er vel en smagssag;)


MVH
Rune Jensen

Rune Jensen (23-03-2008)
Kommentar
Fra : Rune Jensen


Dato : 23-03-08 18:32

On 23 Mar., 17:34, "Michael Weber" <mich...@removemichaelweber.dk>
wrote:

> Man får al html-koden som man kan se, når man kalder en side via browseren og vælger "Vis kilde".
> Hvis man f.eks. sætter url´et til google.dk vil xmlhttp.responseText  indeholde :
> "<html><head><meta http-equiv="content-type" content="text/html;.....osv."

OK, det var nogenlunde, som jeg forventede;)


> xmlhttp.responseText  kan man så, f.eks. vha. regular expresions, modificerer.
> ( eksempler på regular expressions f.eks. påhttp://authors.aspalliance..com/brettb/VBScriptRegularExpressions.asp)

Det kan måske nok blive interessant. Noget helt andet er, at man jo på
den måde vel kan include en Google søgeside i sit eget design - et
spørgsmål, jeg har overvejet før. Ved bare ikke, om det er lovligt.
Altså strippe alt væk udenfor <body> og </body>


> Man kan behandle xmlhttp.responseText som var det enhver anden streng-variabel i asp-kode og pille f.eks ".gif"
> ud med InStr()-funktionen.http://www.w3schools.com/vbscript/func_instr.asp

Jeg er så heldig, jeg har en "musthave" tekststreng i starten af
filnavnet, så det burde være til at finde ud af udfra det du skriver.
Det er også kun filnavnet, som er interessant, for har man først det,
kan filen jo tilgås/hentes udefra.


> (Mener også man kan gøre det i regular expressions Regex objektets Execute-metode, hvor man får nogle Matches retur, men jeg er ikke
> sikker)

Ja, idéen er der, men det skal nok tages lidt ad gangen. Det giver mig
da stof til et stykke tid fremover;)


> > Nå, jeg kigger på det;)
>
> Du kan prøve at sætte url´et til google.com.

Ja, en god idé


MVH
Rune Jensn

Michael Weber (25-03-2008)
Kommentar
Fra : Michael Weber


Dato : 25-03-08 08:01

Rune Jensen wrote:
> On 23 Mar., 17:34, "Michael Weber" <mich...@removemichaelweber.dk>
> wrote:
>
>> Man får al html-koden som man kan se, når man kalder en side via
>> browseren og vælger "Vis kilde".
>> Hvis man f.eks. sætter url´et til google.dk vil xmlhttp.responseText
>> indeholde : "<html><head><meta http-equiv="content-type"
>> content="text/html;.....osv."
>
> OK, det var nogenlunde, som jeg forventede;)
>
>
>> xmlhttp.responseText kan man så, f.eks. vha. regular expresions,
>> modificerer. ( eksempler på regular expressions f.eks.
>> påhttp://authors.aspalliance.com/brettb/VBScriptRegularExpressions.asp)
>
> Det kan måske nok blive interessant. Noget helt andet er, at man jo på
> den måde vel kan include en Google søgeside i sit eget design - et
> spørgsmål, jeg har overvejet før. Ved bare ikke, om det er lovligt.
> Altså strippe alt væk udenfor <body> og </body>


Ved faktisk ikke, men tror det er ulovligt,men hvis det klart fremgår af din side at resultaterne er Googles søgeresultater og
overholder
f.eks. deres AJAX API´s Term Of Use (deres logo skal på, logoet må ikke være det største logo, siden på ikke vise ulovligt
indhold...yadda yadda yadda...).
Men derfor kan man da fint prøve det af.


>
>
>> Man kan behandle xmlhttp.responseText som var det enhver anden
>> streng-variabel i asp-kode og pille f.eks ".gif"
>> ud med
>> InStr()-funktionen.http://www.w3schools.com/vbscript/func_instr.asp
>
> Jeg er så heldig, jeg har en "musthave" tekststreng i starten af
> filnavnet, så det burde være til at finde ud af udfra det du skriver.
> Det er også kun filnavnet, som er interessant, for har man først det,
> kan filen jo tilgås/hentes udefra.
>
>
>> (Mener også man kan gøre det i regular expressions Regex objektets
>> Execute-metode, hvor man får nogle Matches retur, men jeg er ikke
>> sikker)
>
> Ja, idéen er der, men det skal nok tages lidt ad gangen. Det giver mig
> da stof til et stykke tid fremover;)
>
>
>>> Nå, jeg kigger på det;)
>>
>> Du kan prøve at sætte url´et til google.com.
>
> Ja, en god idé
>
>
> MVH
> Rune Jensn


Nedenfor et Google-søgescript til inspiration.
Scriptet illustrerer ganske fint at man skal tjekke, hvorfra forespørgsler kommer.
Dette gør google tilsyneladende ikke.
I asp gøres det ved at tjekke url´et i Request.Servervariables("HTTP_REFERER").
http://www.w3schools.com/asp/coll_servervariables.asp



-------------------------------
<%
dim url
dim xmlhttp
dim status
dim urlTilDenneFil
urlTilDenneFil = "google.asp" 'url til denne fil på site
%>

<IMG SRC="http://www.google.com/intl/da/logos/powered_by_google_135x35.gif" />

<form method=GET action=<% Response.Write urlTilDenneFil %> >

<input type=text name=q size=41 maxlength=2048 value="" title="Søg">
<input type=submit name=btnG value="Søg">
</form>

<IMG SRC="http://www.google.com/intl/da/logos/powered_by_google_135x35.gif" />

<%

Response.Write Request.QueryString("q")
'Google søgning på regular+expressions


if Request.QueryString("q") <> "" then
url = "http://www.google.com/search?q="&Request.QueryString("q")


set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")

xmlhttp.open "GET", url, false
xmlhttp.setRequestHeader "User-Agent","Google-ripper - Probably Illigal Use Of Google SearchEngine"

xmlhttp.setRequestHeader "Accept-Language" , Request.Servervariables("HTTP_ACCEPT_LANGUAGE")
xmlhttp.send ""

status = xmlhttp.status

if err.number <> 0 or status <> 200 then
if status = 404 then

response.write "404"

elseif status >= 401 and status < 402 then

Response.Write "Access denied (401)."


elseif status >= 500 and status <= 600 then
Response.Write "500 Internal Server Error on remote site."
else
FindSearchResults( xmlhttp.responseText )

end if
else

FindSearchResults( xmlhttp.responseText )
end if

set xmlhttp = nothing



end if


' Finder alle søgeresultater.
' Hver søgeresultat er omsluttet af et <div class=g ....</div>
Function FindSearchResults( ResponseText )

dim regex, searchResult, searchResults

set regex = New RegExp


regex.Pattern = "<div class=g\b[^>]*>(.*?)</div>"
regex.IgnoreCase = True
regex.Global = True
set searchResults = regex.Execute( ResponseText )

for each searchResult in searchResults

'Stripper links til Cached- og Lignende-links, der vises under hver søgeresultat
Response.Write Replace( searchResult.Value ) &"<br>"

next

set regex = nothing

End Function



'Stripper links til Cached- og Lignende-links, der vises under hver søgeresultat
Function Replace( SearchResult )

' denne skal nok ud i global scope i stedet for at oprette et objekt ca. 10 (antal søgeresultater pr. side)
set regex = New RegExp

regex.Pattern = "<nobr\b[^>]*>(.*?)</nobr>"
regex.IgnoreCase = True
regex.Global = False

Replace = regex.Replace( SearchResult, "" )

set regex = nothing


End Function

%>
<IMG SRC="http://www.google.com/intl/da/logos/powered_by_google_135x35.gif" />


Søg
Reklame
Statistik
Spørgsmål : 177458
Tips : 31962
Nyheder : 719565
Indlæg : 6408158
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste