読者です 読者をやめる 読者になる 読者になる

三流君のソースコード置き場

三流プログラマーが作成したコードが置いてあります。あまり参考にならないと思いますがヨロシクお願いします。

復習で一言コメント入力の処理を作る

ASP


元の三流解説は、
三流君ASP:復習で一言コメント入力の処理を作る
↑を見て、笑ってやってください。
ブログに過去のソースコードをアップして、ブログの検索機能で利用してます(利用予定です)
※古くさいコードが多いです・・・



ソースコード

<%@LANGUAGE=VBScript%>
<% Response.CacheControl = "no-cache" %>
<% Response.AddHeader "Pragma", "no-cache" %>
<% Response.Expires = -1 %>
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis">
<title>SQL INSERT INTO文を使用して、コメント書込み</title>
</head>
<body>
<h1>SQL INSERT INTO文を使用して、コメント書込み</h1>
'SQL文を作る<br>
strSQL = "<b>INSERT INTO</b> KANSOU (F_KUBUN, F_NO, F_MEMO, WriteTime) VALUES ("<br>
~と文字列でSQL文を作成して、<br>
db.Execute(strSQL)<br>
でSQL文を発行してます<br>
<hr>
<Font Color="red">ASPプログラムのコメントはRemか'シングルコーテーションです<br>
&lt;-- XXX --&gt;はhtmlのコメントです</font><br>
※検索で ASP コメント とすると間違ってこのページが表示されるので(笑)
<!-- コメントですよ(笑) -->
test029-2.asp<br>
<hr>

<%  '頭で、入力パラメーターの文字数をチェックする
  If Len(Request.Form("MEMO")) = 0 Or Len(Request.Form("MEMO")) > 20 Then
    Response.Write "<b>エラー 文字数が0 または 20文字を超えました</b><br>" 'エラーメッセージの表示
%>
  <p>感想を書き込んでください。</p>
  <FORM ACTION="test029-2.asp" METHOD="POST" NAME="inputTEST" id="test029">
  <INPUT TYPE="HIDDEN" NAME="NO" VALUE="0">
  <b>メルマガ区分選択:</b><br>
  <INPUT TYPE="RADIO" NAME="KUBUN" VALUE="ASP" CHECKED>ASPで遊ぶ、失敗する<br>
  <INPUT TYPE="RADIO" NAME="KUBUN" VALUE="VBA" >VBAで楽しく<br>
  <INPUT TYPE="RADIO" NAME="KUBUN" VALUE="GUCHI" >愚痴系メルマガ<br>
  <INPUT TYPE="RADIO" NAME="KUBUN" VALUE="24H" >コンビニのオモテとウラ<br>
  <b>感想(MAX20文字):</b>
  <% Randomize : zz = Chr(&h22) & "TEST DATA " & Int(Rnd * 100) & Chr(&h22) %>
  <INPUT TYPE="TEXT" NAME="MEMO" SIZE=60 VALUE=<%=zz%>><br>
  <br>
  <INPUT TYPE="SUBMIT" NAME="btnSUBMIT" VALUE="書 込">
  <INPUT TYPE="RESET" NAME="btnRESET" VALUE="クリア">
  </FORM>
<%
  Else 'データが入力されていたら、
    '書き込み関数を呼ぶ(外側に出したかったので)
    Call TEST_WRITE()
  End If   'If文もここで終わり
%>

<HR>
終了です。<br>
<s><font color="red"><b>※最近、英語の連続書き込みが多いので、スペース/空白を詰めてます。</b></font></s><br>
<hr>
<A href="test029-1.asp">再度データを登録する</a><br>

</body>
</html>

<% 'データを受け取り、DBへ書き込むつもり
Sub TEST_WRITE()

  'ADO DB Connection オブジェクトを作成する、英文そのままじゃん
  Set db=Server.CreateObject("ADODB.Connection")

  '.Provider?プロバイダー?通信会社?じゃなくって
  'データアクセスにはJet.OLEDB.4.0を使うことを設定
  db.Provider = "Microsoft.Jet.OLEDB.4.0"

  '次に、接続DBの位置を渡すので、Server.MapPathで変換して渡す
  db.ConnectionString = Server.MapPath("db029.mdb")

  'やっとデータベースを開ける
  db.open

  'あまり意味無いけど、変数に代入
  strKUBUN = Left(Request.Form("KUBUN"), 5)
  strNO    = Left(Request.Form("NO"), 3)
  'HTMLEncodeで文字を変換して書き込む、2重変換に注意だけど、テストだからイッカな
  strMEMO  = Server.HTMLEncode(Left(Request.Form("MEMO"),18)) 'Max18文字にする

  '英語の連続書き込みが最近多いので、スペースをつぶす
  'strMEMO = Replace(strMEMO, " ", "")   'スパムの嵐が過ぎ去ったので?コメントにする。
  '↑この処理は、普通は使わないので、、、※スペースを削除して英文スパムをテストデータに(笑)

  'SQL文を作る
  strSQL = "INSERT INTO KANSOU (F_KUBUN, F_NO, F_MEMO, WriteTime) VALUES ("
  strSQL = strSQL & "'" & strKUBUN & "'"  '区分
  strSQL = strSQL & ", " & strNO          '番号
  strSQL = strSQL & ", '" & strMEMO & "'" '感想メモ
  strSQL = strSQL & ", #" & now & "#)"     '現在時刻、日付型は#で囲む

  'SQL文を発行
  db.Execute(strSQL)

  'オマケで画面にデータ表示
  Response.Write "<hr>発行する(した)SQL文は<br><B><font color='green'>"
  Response.Write strSQL & "</font></B><br>です<hr>"

  'データベースも閉じようよ
  db.Close

  'お行儀よくオブジェクトも開放しましょう(通常は自動的に解放されるけど)
  Set db = Nothing

End Sub
%>

↑をテスト実行する→ http://www.ken3.org/cgi-bin/test/test029-2.asp実行する


コードの三流解説は、
三流君ASP:復習で一言コメント入力の処理を作る
↑を見て、笑ってやってください。