VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 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かと。

知識不足で対処出来ない状況です。
お手数をお掛けします。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -