投稿日 | : 2003/06/30(Mon) 14:58 |
投稿者 | : nobu |
Eメール | : |
URL | : |
タイトル | : Re^2: cgi ページのダウンロード |
魔界の仮面弁士 さん、早速ありがとうございます。
長文で見難いかも知れませんが、必要かと思われる箇所を転記します。
> どれの事でしょう?(^_^;)
以前のものを修正して下記の様なものです。(一部のみ抜粋)
「認証」関係 === 認証は出来て検索画面が出る。
「検索画面」が出て「認証」と同じ「Submit」ボタンを押しても
検索結果は「WebBrowser1」画面に表示されます。
検索キーが最初のUNAMEでも該当しますので。
勿論UNAMEを変えて「認証」と同じ「Submit」ボタンを押せば
新キーの検索結果が表示されます。
この表示中に「HTMLのダウンロード」を実行すると
「エラー」のcgiが保存されます。
ダウンロードのコーディングの仕方で表示は正しい結果でも
保存内容はエラー、または表示もエラーになる事もあります。
(保存関係を色々と試行錯誤している状態です)
Private Sub Text1_Change(Index As Integer)
On Error Resume Next
Dim T As HTMLInputElement
Set T = Choose(Index + 1, UNAME, UPASSWD)
If T Is Nothing Then
Exit Sub
End If
With Text1(Index)
If .Tag = "" Then
.Tag = "@"
T.Value = .Text
.Tag = ""
End If
End With
End Sub
Private Sub IE_DocumentComplete(ByVal pDisp As Object, URL As Variant)
On Error Resume Next
If MYURL = URL Then
Set document = pDisp.document
Set UNAME = document.getElementsByName("UNAME")(0)
Set UPASSWD = document.getElementsByName("UPASSWD")(0)
Set frm = document.Forms(0)
Text1(0).Text = UNAME.Value
Text1(1).Text = UPASSWD.Value
End If
End Sub
> パスワード認証にも、いろいろな方法があります。
> フォーム認証、Kerberos認証、BASIC認証など…。
> 今回の場合、おそらく、フォーム認証だとは思いますが、その場合、
> 何というパラメータを渡しているのかが分からないと、回答できません。
これはどこを書けば良いのか分からないのですが、
-------- loginsrch.cgi 認証----------
<SCRIPT language=JavaScript>
function chkUname() {
data1 = document.LGIN.UNAME.value.match(/([^0-9|^a-z])/gi);
if (data1 || !document.LGIN.UNAME.value) {
alert('コールサインの入力が正しくありません\nコールサインは半角の英数字で入力してください');
document.LGIN.UNAME.focus();
return false;
}
return true;
}
function chkUpasswd() {
data1 = document.LGIN.UPASSWD.value.match(/([^0-9|^a-z])/gi);
if (data1 || !document.LGIN.UPASSWD.value) {
alert('パスワードの入力が正しくありません\nパスワードは半角の英数字で入力してください');
document.LGIN.UPASSWD.focus();
return false;
}
return true;
}
function sendData() {
if (document.LGIN.UNAME.value == "") {
alert ("コールサインを入力して下さい");
document.LGIN.UNAME.focus();
return false;
}
if (document.LGIN.UPASSWD.value == "") {
alert ("パスワードを入力して下さい");
document.LGIN.UPASSWD.focus();
return false;
}
return true;
}
</SCRIPT>
<META content="MSHTML 6.00.2800.1170" name=GENERATOR></HEAD>
<BODY leftMargin=0 topMargin=0 onload=focus() marginheight="0" marginwidth="0">
...省略
<FORM name=LGIN onsubmit="return sendData()" action=""
method=post>
...省略
<DIV align=right><FONT size=-2>コールサイン:</FONT></DIV></TD>
<TD><FONT size=-1><INPUT maxLength=10
onchange="return chkUname()" size=30 name=UNAME> <FONT
size=-2>(会員、准員のコールサイン:半角)</FONT></FONT> </TD></TR>
<TR>
<TD>
<DIV align=right><FONT size=-2>パスワード:</FONT></DIV></TD>
<TD><FONT size=-1><INPUT type=password maxLength=8
onchange="return chkUpasswd()" name=UPASSWD> <FONT
size=-2>(登録されたパスワード)</FONT></FONT> </TD></TR>
<TD><INPUT type=submit value=" 送 信 " name=SEND> <INPUT type=reset value=画面クリア name=RESET> <INPUT onclick=JavaScript:history.back() type=reset value=" 戻 る " name=BACK>
<INPUT readOnly type=hidden value=1 name=UKEYWORD>
...省略
IEにて手動で保存した内容の抜粋
-------- srchrslt.cgi 検索結果 成功時 ----------
<form name="USRVIEW">
<table width="640" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td colspan="2">
<div align="center"><br>
<font color="#339933"><b><font size="+1">検索結果</font></b></font></div>
...省略
<div align="center"><B>「 ***** 」</B>は、登録されています。<br>
...省略
<input type="button" value=" 戻 る " name="BACK22" onClick="JavaScript:history.back()">
<input type="button" value=" 閉じる " name="CLOSE2" onClick="JavaScript:window.close()">
<input type="hidden" name="UKEYWORD" value="%%%%%%%/" readonly>
...省略
******* , %%%%%%%% は固有名詞なので伏せ字とさせていただいてあります。
<div align="center"><B>「 ***** 」</B>は、登録されています。<br>
の「登録されています」にてOK、NGの判別をしたいのです。
> とりあえず、「横取り丸(+InetSpy)」などのフリーソフトをインストールして、
> どのような内容が、cgiとの間でやりとりされているのかを、眺めて見ては如何でしょう。
これは入手して試して見ます。
> > WebBrowser1 に表示されている内容をそのまま保存する、
> documentオブジェクトをIPersistFileインターフェイス型の変数に代入して、
> Saveメソッドで保存すればOKかと。
知識不足で対処出来ない状況です。
お手数をお掛けします。