programming-examples/asp/Components/Universal URL check.asp
2019-11-18 14:25:58 +01:00

87 lines
2.0 KiB
Plaintext

'<INPUT type="text" name="url">
' Assumes:There are 3 pages:
'check.asp To post the url and receive the result of the check.
'checkurl.asp this page will Do the check
'checkdone.asp; this page will post the results back To the referer.
'
' Side Effects:In order to make this scr
' ipt work you server should have IE 5+ in
' stalled.
'
'****** check.asp ****
'part 1: the post form
'*********************
<%
strFrom=Request.Form("result")
strResult=Request.Form("url")
%>
<HTML>
<HEAD>
<TITLE>URL check</TITLE>
</HEAD>
<BODY>
<FORM method="post" action="checkurl.asp">
<P><Input Type="text" name="url"></P>
<P><Input Type="submit" value="submit" name="submit"></P>
</FORM>
<P><%= strFrom %></P>
<P><%= strResult %></P>
</BODY>
</HTML>
'****** checkurl.asp ****
'part 2: the actual check
'************************
<%
strURL=Request.Form("url")
If strURL<>"" Then
If Left(LCase(strURL),7)<>"http://" Then
strURL="http://" & strURL
End If
On Error Resume Next
Dim objHTTP
Dim sHTML
Set objHTTP = Server.CreateObject ("Microsoft.XMLHTTP")
objHTTP.open "GET", strURL, False
objHTTP.send
sHTML=objHTTP.statusText
If err Or sHTML<>"OK" Then
sTxt="fail"
Else
sTxt="ok"
End If
Set objHTTP=Nothing
Else
sTxt="fail"
End If
strFrom=Request.ServerVariables("HTTP_REFERER")
p=InStr(1,strFrom,"?")
If p>0 Then
strFrom=Left(strFrom,p-1)
End If
Response.Redirect "checkdone.asp?result=" & sTxt & "&ref=" & strURL & "&return=" & strFrom
%>
'****** checkdone.asp ****
'part 3: post the results back to the re
' ferer
'************************
<%
strRes=Request.QueryString("result")
strRef=Request.QueryString("ref")
strRet=Request.QueryString("return")
%>
<HTML>
<HEAD>
</HEAD>
<SCRIPT>
Function postit(){
myform.submit();
}
</SCRIPT>
<BODY onLoad="postit()">
<FORM method="post" action="<%= strRet %>" name="myform">
<Input Type="hidden" name="result" value="<%= strRes %>">
<Input Type="hidden" name="url" value="<%= strRef %>">
</FORM>
</BODY>
</HTML>