Avatar billede thomas_b Nybegynder
24. juli 2007 - 01:25 Der er 51 kommentarer og
1 løsning

Hvorfor virker HTTPHost ikke ?

Hej...

Hvorfor virker dette script ikke ??
Den tænker tænker og tænker bare...


<%
domain=request.servervariables("HTTP_HOST")
domain = replace(domain,"www.","")

Set Ping = Server.CreateObject("AspPing.Conn")
Ping.RemoteHost = "http://"&domain&"/www/"&domain&"/default.asp"
Ping.PingCount = 1
  if Ping.Ping = "Bad IP Address " & Ping.RemoteHost & "" Then
    response.redirect "http://www.sol.dk/"
  else
    response.redirect "http://"&domain
  end if
Set Ping = nothing
%>
Avatar billede thomas_b Nybegynder
24. juli 2007 - 02:03 #1
Faktisk skulle denne også ind...: 

if Ping.Ping = "Bad IP Address " & Ping.RemoteHost & "" Then
response.redirect "http://www.sol.dk/"
else
<!--#include virtual="http://"&domain"-->
end if
Avatar billede fennec Nybegynder
24. juli 2007 - 08:07 #2
I hvilken forbindelse virker HTTP_HOST ikke?? Får du ikke noget resultat, eller er det forkert resultat eller noget helt andet...
Avatar billede thomas_b Nybegynder
24. juli 2007 - 15:06 #3
Den går bare i stå...
Avatar billede thomas_b Nybegynder
24. juli 2007 - 15:18 #4
Nu har jeg lavet en lille test...:

<%
domain=request.servervariables("HTTP_HOST")
domain = replace(domain,"www.","")

hej2 = "http://"&domain&"/www/"&domain&"/"

Set Ping = Server.CreateObject("AspPing.Conn")
Ping.RemoteHost = "http://"&domain&"/www/"&domain&"/default.asp"
Ping.PingCount = 1
  if Ping.Ping = "Bad IP Address " & Ping.RemoteHost & "" Then
%><script>alert('ikke kennemført -<%=Ping.RemoteHost%>-')</script><%=Ping.RemoteHost%><%
  else
%><script>alert('kennemført -<%=Ping.RemoteHost%>-')</script><%=Ping.RemoteHost%><%
  end if
Set Ping = nothing
%>

Nu lige meget om den pågældene mappe findes eller ej. så skriver den "ikke kennemført"
Avatar billede fennec Nybegynder
24. juli 2007 - 15:23 #5
Drøv at udskrive request.servervariables("HTTP_HOST") så du kan se hvad den indeholder.
Avatar billede thomas_b Nybegynder
24. juli 2007 - 15:34 #6
Den skriver den rigtigt ud... www.mollo.dk
Avatar billede fennec Nybegynder
24. juli 2007 - 15:38 #7
Så er det vel nærmere AspPing der ikke virker...
Avatar billede thesurfer Nybegynder
24. juli 2007 - 15:41 #8
Man skal pinge en host, og ikke en side på host'en, som thomas_b gør her:

Ping.RemoteHost = "http://"&domain&"/www/"&domain&"/default.asp"

Altså:

Ping.RemoteHost = "http://"&domain
Avatar billede thomas_b Nybegynder
24. juli 2007 - 15:42 #9
Ikke scriptet... men komponenten ??

Er der evt. andre måder at lave dette lille julenummer på ?
Evt. som i første script med include fil ??
Avatar billede thesurfer Nybegynder
24. juli 2007 - 15:45 #10
thomas_b> Prøv lige 24/07-2007 15:41:37

Jeg vil foretrække mellemrum før og efter "&"-tegnet.. det andet ser sjusket ud.. :-)

Dvs: Ping.RemoteHost = "http://" & domain
Avatar billede thesurfer Nybegynder
24. juli 2007 - 15:51 #11
Angående brug af variabler i include: Det kan man ikke.

Derfor vil dette ikke virke: <!--#include virtual="http://"&domain"-->
Avatar billede thomas_b Nybegynder
24. juli 2007 - 15:54 #12
Kan man lave det samme nummer på en anden måde ??
Avatar billede thesurfer Nybegynder
24. juli 2007 - 15:57 #13
Så vidt jeg ved, kan man ikke gøre det med vilkårlige (ukendte) data..

Normalt har man nogle bestemte nøgleord, som man bruge en i Select Case..

Eksempel

select case domain
case "eksperten.dk"
%>
<!-- #include virtual="et eller andet med eksperten.dk" -->
<%
case "yahoo.com"
%>
<!-- #include virtual="et eller andet med yahoo.com" -->
<%
...osv.. og til sidst, hvis domain ikke passer de tidligere nøgleord:

case else
%>
<!-- #include virtual="et eller andet standard ting eller fil" -->
<%
end select
%>
Avatar billede thesurfer Nybegynder
24. juli 2007 - 15:57 #14
Har du prøvet 24/07-2007 15:41:37 ?
Avatar billede thomas_b Nybegynder
24. juli 2007 - 16:01 #15
Det virker... men den skal tjekke om der er en undermappe !
Avatar billede thesurfer Nybegynder
24. juli 2007 - 16:04 #16
Så er det ikke ping du skal bruge, men XMLHTTP..
Men XMLHTTP kan du hente en side ind, og kigge på headeren..

Hvis du ikke får kode 200, som betyder at "alt er ok", er det nok fejl.. :-)

Fejl = siden kan ikke findes, serveren har travlt, og hvad der nu kan ske..
Avatar billede thesurfer Nybegynder
24. juli 2007 - 16:06 #17
Avatar billede thomas_b Nybegynder
24. juli 2007 - 16:07 #18
Har lige fundet den her...: http://www.eksperten.dk/spm/234854

Men den kommer med en fejl der hedder:

Error Type:
Server object, ASP 0177 (0x800401F3)
800401f3

På denne linie: "Set Tools = Server.CreateObject("MSWC.Tools")"
Avatar billede thesurfer Nybegynder
24. juli 2007 - 16:10 #19
function loadpage(url)

Dim xml, status
Set xml = Server.CreateObject("Microsoft.XMLHTTP")
xml.Open "GET", url, False

xml.Send

status = xml.Status

Set xml = Nothing

loadpage = status
end function

Kaldes sådan her:

dim stat
stat = loadpage("din adresse her")

if stat = 200 then
' alt ok
else
' noget gik galt
end if
Avatar billede thesurfer Nybegynder
24. juli 2007 - 16:12 #20
Husk at rette "din adresse her" til den rigtige adresse.. :-)

Det er denne linie:

stat = loadpage("din adresse her")

Det ændrer du til f.eks.

stat = loadpage("http://" & domain)
Avatar billede thomas_b Nybegynder
24. juli 2007 - 16:16 #21
Så skal XMLHTTP være installeret på serveren ikke ?
Avatar billede thesurfer Nybegynder
24. juli 2007 - 16:17 #22
Ja, det er XMLHTTP typisk..

Kører du scriptet fra en online server, eller din egen computer via IIS?

XMLHTTP burde virke begge steder..
Avatar billede thomas_b Nybegynder
24. juli 2007 - 16:26 #23
Den kommer med denne fejl...:

Error Type:
msxml3.dll (0x80070005)
Access is denied.
Avatar billede thesurfer Nybegynder
24. juli 2007 - 16:28 #24
Prøv det her:

'Set xml = Server.CreateObject("Microsoft.XMLHTTP")
Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")

Dvs, kommenter den nuværende linie ud, og indsæt den nye linie..
Avatar billede thomas_b Nybegynder
24. juli 2007 - 16:31 #25
Så virker det... hehe

Men kan man lave så det ser ud som man køre siden direkte fra rodmappen... lige meget om siden ligger i en undermappe... på serveren ?
Avatar billede thesurfer Nybegynder
24. juli 2007 - 16:33 #26
Det forstår jeg ikke helt .. giv et eksempel.
Avatar billede thomas_b Nybegynder
24. juli 2007 - 16:37 #27
F.eks. her på eksperten.dk... der kan man se at vi er inde i en mappe der hedder spm og i en der hedder 788699 - det jeg så ville havde lavet er at på trods af at man springer frem og tilbage mellem mapperne bliver man i rodmappen... eks. (www.eksperten.dk/default.asp?artikel=788699) for et eksempel...
Avatar billede thomas_b Nybegynder
24. juli 2007 - 16:40 #28
Det ville løse sig... hvis der var nogen DNS-forward der kunne linkes f.eks. således: www.eksperten.dk/?artikel=788699 til www.eksperten.dk/spm/788699 osv. på hele serveren...
Avatar billede thesurfer Nybegynder
24. juli 2007 - 16:42 #29
Som jeg kan se det, har du nogle sider på dit domæne, og et script der checker om en fil findes, i en bestemt mappe under "www" under domænet..

Det underlige er så, at du indlæser host'en, som altid er den samme..

I stedet kan du f.eks. indstaste en "host" som du har (eller muligvis har) på din server, og checke med den i stedet..

I stedet for domain=request.servervariables("HTTP_HOST"), kan du bruge

Som jeg kan se det, har du nogle sider på dit domæne, og et script der checker om en fil findes, i en bestemt mappe under "www" under domænet..

Det underlige er så, at du indlæser host'en, som altid er den samme..

I stedet kan du f.eks. indstaste en "host" som du har (eller muligvis har) på din server, og checke med den i stedet..

domain = request.querystring("domain")

og kalde scriptet med:

http://www.dinserver.dk/check.asp?domain=eksperten.dk

som så kan kigge i "http://www.dinserver.dk/www/eksperten.dk/default.asp"

Er det noget i den stil du vil have?
Avatar billede thesurfer Nybegynder
24. juli 2007 - 16:47 #30
Det du beskriver i 24/07-2007 16:40:02 kan vist nemt gøres i PHP med .htaccess filen.. jeg ved ikke lige hvordan man gør det i ASP..
Avatar billede thomas_b Nybegynder
24. juli 2007 - 16:50 #31
Selve delen med at chekke fungere nu pefekt... Den behøves ikke ændret...

Men jeg kan måske forklare det lidt bedere...
Jeg kunne godt tænke mig at min rodmappe (www.minserver.dk/)
Automatisk bliver samme rodmappe som (www.minserver.dk/www/etdomæne/

Så når script-inden virker, så hvis man går ind på f.eks. (www.minserver.dk/img/logo.gif)
Går man faktisk skjult ind i mappen (www.minserver.dk/www/etdomæne/img/logo.gif)

Men dette skal dog gøres unden frames...
Avatar billede thesurfer Nybegynder
24. juli 2007 - 16:52 #32
Det kan man godt, hvis man bruger urlen..

Dvs: www.minserver.dk/default.asp?fil=img/logo.gif

Ellers kan man vist ikke..

Men så vil man få en fejl, hvis man går ind på "/img/logo.gif" direkte, da den jo ligger i "etdomæne"-mappen..
Avatar billede thomas_b Nybegynder
24. juli 2007 - 16:54 #33
man vil aldrig kunne skrive: (www.minserver.dk/img/logo.gif) ??
Avatar billede thomas_b Nybegynder
24. juli 2007 - 16:55 #34
så den automatisk bare kapper (www/etdomæne/) af URL'en ?
Avatar billede thomas_b Nybegynder
24. juli 2007 - 16:55 #35
skjule (www/etdomæne/) ikke slette
Avatar billede thesurfer Nybegynder
24. juli 2007 - 17:01 #36
Hvis stien "/img/logo.gif" ligger under mappen "etdomæne", giver det overhovedet ingen mening at skrive ".dk/img/logo.gif", for der ligger filen jo ikke.

Du kunne måske lave noget smart med 404-filen, som bliver loadet, hvis man indtaster en forkert adresse..

Problemet er bare, hvis "etdomæne" er ikke er statisk, dvs, kan have forskellige værdier..

Forklar lige hvad meningen med din struktur er.. hvad er meningen med disse strukture:


www.minserver.dk/www/etdomæne/ ?
http://"&domain&"/www/"&domain&"/default.asp

Der er et eller andet du ikke fortæller mig..
Avatar billede thomas_b Nybegynder
24. juli 2007 - 17:06 #37
Jeg har en masse domæner.. f.eks. www.mollo.dk

Hvis du går ind på mollo.dk nu skriver den "ok"...
Faktisk går den ind i www.mollo.dk/www/mollo.dk/

Det jeg søger er at:
Nu kan jeg ikke gå ind på www.mollo.dk og hente default.asp for den ligger i virkeligheden i mappen (www.mollo.dk/www/mollo.dk/default.asp)
Avatar billede thesurfer Nybegynder
24. juli 2007 - 17:09 #38
Hvis du kun har "mollo.dk" under "www" mappen, hvorfor overhovedet bruge en mappe, til at indeholde dine filer?
Avatar billede thomas_b Nybegynder
24. juli 2007 - 17:09 #39
Det ville virke med include til (www.mollo.dk/www/mollo.dk/default.asp)
Men kan jo ikke lade sig gøre hvis jeg vil ind i kontakt.asp som ligger i samme mappe som default.asp
Avatar billede thomas_b Nybegynder
24. juli 2007 - 17:10 #40
Nej... jeg har mange domæner... og derved mange undermapper under www
Avatar billede thesurfer Nybegynder
24. juli 2007 - 17:13 #41
Er det f.eks. sådan:

minserver.dk/default.asp
minserver.dk/www
minserver.dk/www/mollo.dk
minserver.dk/www/mollo.dk/default.asp
minserver.dk/www/mollo.dk/kontakt.asp
minserver.dk/www/andet.dk
minserver.dk/www/andet.dk/default.asp
minserver.dk/www/andet.dk/kontakt.asp

Eller hvordan?
Avatar billede thomas_b Nybegynder
24. juli 2007 - 17:13 #42
Det er lige netop sådan serveren ser ud...
Avatar billede thesurfer Nybegynder
24. juli 2007 - 17:17 #43
Så langt så godt.. :-)

Hvordan prøver du på at indlæse kontakt.asp der tilhører mollo.dk?
Hvordan prøver du på at indlæse kontakt.asp der tilhører andet.dk?

Er der en default.asp i mollo.dk/default.asp, som indlæser?:
www.mollo.dk/www/mollo.dk/default.asp

Er der en default.asp i andet.dk/default.asp, som indlæser?:
www.mollo.dk/www/andet.dk/default.asp


Læg mærke til, at jeg bruger både "mollo.dk" og "andet.dk" i mine eksempler..

Er disse korrekt?
Avatar billede thomas_b Nybegynder
24. juli 2007 - 17:21 #44
domænet og den sidste mappe har samme navn f.eks.

www.mollo.dk/www/mollo.dk/default.asp
www.andet.dk/www/andet.dk/default.asp
www.minserver.dk/www/minserver.dk/default.asp

Det er forde jeg har en IP-adresse og en masse domæner uden webhotel... så laver jeg DNS-forward på alle domæner til min IP - Så kan det jo lade sig gøre at have alle de sider på som jeg har lyst til...

Sådan hænger det sammen...
Avatar billede thesurfer Nybegynder
24. juli 2007 - 17:29 #45
Ok, men det er stadig ".dk/default.asp" der indlæser "www/DOMÆNE/default.asp" ?
Avatar billede thomas_b Nybegynder
24. juli 2007 - 17:30 #46
Ja... sådan skulle det gerne virke ja
Avatar billede thesurfer Nybegynder
24. juli 2007 - 17:37 #47
Så er det sådan en løsning du skal bruge: 24/07-2007 16:52:27

Du bliver nødt til at fortælle .dk/default.asp, hvilken fil der skal loades..

Eksempel:

.dk/default.asp?fil=kontakt.asp

i kombination med Select Case eksempel:

switch case request.querystring("fil")
case "kontakt.asp"
%>
<!-- #include virtual="/www/DOMÆNE/kontakt.asp" -->
<%
..osv..

case else
%>
<!-- #include virtual="/www/DOMÆNE/default.asp" -->
<%
end select
%>

Problemet er så bare, at du på forhånd skal kende samtlige kombinationer, der kan forekomme i "?fil=NOGET-HER"..
Avatar billede thesurfer Nybegynder
24. juli 2007 - 17:40 #48
Jeg tror at man stadig kan se lokationen af f.eks. billeder, da der jo stadig skal stå:

src="/www/img/logo.gif".

Hvis du ikke vil have at man kan se det, skal du bruge en ASP fil, der tager filnavnet med som parameter, og læser billedet binært, og smider det ud til browseren..

Eksempel:

src="/billede.asp?billede=logo.gif"

som loader og viser "/www/logo/" & request.querystring("billede")

Sådan et script har jeg vist også liggende..
Avatar billede thomas_b Nybegynder
24. juli 2007 - 17:41 #49
man kunne ikke lave tryllenumere med denne ??? : http://activedeveloper.dk/artikler/default.asp?articleid=50
Avatar billede thesurfer Nybegynder
24. juli 2007 - 17:44 #50
Det er jo nøjagtigt hvad jeg skrev helt tilbage i 24/07-2007 15:57:15 (og nu i 24/07-2007 17:37:45).. :-)

Og, nej, der kan stadig ikke trylles med include.. :-)
Avatar billede thomas_b Nybegynder
24. juli 2007 - 18:11 #51
Hmm... overvejer lige hvad jeg skal... men 1.000 tak for hjælpen...
Lægger du lige et svar...
Avatar billede thesurfer Nybegynder
24. juli 2007 - 18:26 #52
Yeps :-)
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