[三流君] Top ken3.orgへ [ASP解説] ASPの解説TOP [ASP記事 バックナンバー] 番号順のバックナンバー [SOHO/在宅プログラマー/派遣] 派遣のお話ほか [...サイトマップ(総合案内へ)] 分類別ガイド ADOで[ADO Mdb接続] ,[ADO Excel接続] ,[ADO CSV接続] [ASP Form データのやりとりPOSTとGET] [ASPでTextFile操作] [ASPでVBScriptを使う] [その他サンプル] |
No.1 | 2002/11/13 Response.Writeで遊ぶ |
[ページTOPへ戻る] |
<Response.Writeで遊ぶ> こんにちは、(はじめまして) AB型の変わり者Ken3です。 ^^^^^^^^^^^^^^^^ メルマガの方向性を考えてたら(おいおい、発行申請する時考えとけよ) 発行期間がアイテシマッタ、ゴメンナサイ。 /* * 1.あれ?こんなメルマガ登録したかなぁ(笑) */ 講座形式にしようと、悩んでいたら、発行が遅れてしまい、 読者さんの立場からだと、 あれ?こんなメルマガ登録したかなぁ(笑) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ と忘れられてしまうので、 今回は、 Response.Writeで、遊んでみたいと思います。 /* * 2.ASPって何? */ ASPって何? なんでしょうね? 私もよくわかってないんだけど(オイオイ) サーバー上で処理を行い、その結果(HTML)をクライアントに返す う〜ん、何言ってんだか、、わかんねぇなぁ。 /* * 3.とりあえず、サンプル見ながらやって行くか */ えっと、ファイル名は.aspにするんだぁ、 安易にtest001.aspでイッカな。 で、頭に<script>タグを書くの? <%@ LANGUAGE=VBScript %> あとは、普通にHTMLを書いて、 サーバー側の処理を記述したい場合は、 <% と ここの間がサーバーで処理される %> で囲えばいいんだぁ。 なんか変なの、、、 で作ったのが、下記の test001.asp です。 <%@ LANGUAGE=VBScript %> <html> <head> <title>三流君 ASPで遊ぶ、失敗する No.001</title> </head> <body bgcolor="#ffffff"> <a href="http://www.ken3.org/" target="_top">[ Ken3 HP Topへ ]</a><br> <hr> test001.asp<br> <% Response.Write "なんか変な感じ<br>" Response.Write "こんなんでいいの?<br>" %> </body> </html> http://www.ken3.org/cgi-bin/test/test001.asp を表示すると(が実行されると) [ Ken3 HP Topへ ] ---------------------------------------------------------------------------- test001.asp なんか変な感じ こんなんでいいの? と表示され、HTMLのソースを表示してみると、
<html> <head> <title>三流君 ASPで遊ぶ、失敗する No.001</title> </head> <body bgcolor="#ffffff"> <a href="http://www.ken3.org/" target="_top">[ Ken3 HP Topへ ]</a><br> <hr> test001.asp<br> なんか変な感じ<br>こんなんでいいの?<br> </body> </html> あれ? <% 〜 %> で囲まれた部分が、 キレイに無くなってますね。 これが、 サーバー上で処理を行い、その結果(HTML)をクライアントに返す かぁ、、、 なんとなく、わかったような、わからなかったような、、、 /* * 4.現在の時間を表示(可変の処理) */ 今回の固定の文字表示の処理だと、 サーバー上で処理を行い、その結果(HTML)をクライアントに返す なんてカッコ良く言われてもねぇ、それで?となっちゃうよね。 なので、現在時刻の表示を行ってみました。 <%@ LANGUAGE=VBScript %> <html> <head> <title>三流君 ASPで遊ぶ、失敗する No.001</title> </head> <body bgcolor="#ffffff"> <a href="http://www.ken3.org/" target="_top">[ Ken3 HP Topへ ]</a><br> <hr> test001-2.asp 現在時刻を表示します<br> <% Response.Write "現在の時刻は<br>" '固定の文字 Response.Write now '*1 now関数を使用しただけです Response.Write "です<br>" '固定の文字 %> </body> </html> *1でNow関数を使用しただけでした(笑) 結果は、 http://www.ken3.org/cgi-bin/test/test001-2.asp を見て下さい。 /* * 5.終わりの挨拶 */ で、今日は何が言いたかったの? 初回の挨拶です(笑) 自分で読み返してもわかりにくかったです。 そのうち進歩すると思うので、気長にお付き合いください。 何か質問などあったら、掲示板に書いてもらえるとうれしいです *質問に回答形式だとネタ考えないでいいので、ラクできます(笑) 三流プログラマーのKen3でした。
No.2 | 2002/11/18 ASPファイルを動作させるには? |
[ページTOPへ戻る] |
<ASPファイルを動作させるには?> 今回は、 ・サンプルが動かない ・動作環境は? と質問が来たので、軽く答えてみたいと思います。 /* * 1.サンプルを実行すると、アプリを選択するよう聞いてきます。 */ 下記の質問メールいただきました。 In message "Re: [ASP で遊ぶ No.001] - Response.Write で遊ぶ", Yさん wrote... >サンプルを実行すると、アプリを選択するよう聞いてきます。 >設定方法を教えてください。 > あれ?どうしてだろう? あっ、 エクスプローラー上からファイルを実行しようとすると、ダメなんですよ。 普通のHTMLファイルだと、そのままローカル環境でも実行できるのですが、 ASPファイルを実行するには、 マイクロソフトのIISが動いているマシーン上で動かさないと動作しないんですよ。 動作環境などの詳しい説明が無くって、スミマセンでした。 http://www.microsoft.com/japan/products/iis/default.htm ↑マイクロソフトのIISのページです。のぞいてみてください。 /* * 2.サーバーの動作条件 */ In message "[BBS :2] サーバーの動作条件", H.Iさん wrote... >サーバー側ではどのような条件が整っていればよいのですか? >Windows2000サーバーではIISを利用すると聞いているのですが。 >また、aspはwindows独自の機能と聞いていますがLinuxで同じようなことは実現 >できますか?教えて下さると有り難いです。 と、掲示板に質問の書き込みをいただきました。 書きこみ、どうもです。 > サーバー側ではどのような条件が整っていればよいのですか? XXX.ASPのファイルを実行するには、 WebサーバーでIISが動作していないとダメです。 > Windows2000サーバーではIISを利用すると聞いているのですが。 はい、標準のオプションでWindows2000サーバーをインストールすると、 IISも半強制的にインストールされると聞いたことがあります。 > また、aspはwindows独自の機能と聞いていますがLinuxで同じようなことは実現 > できますか?教えて下さると有り難いです。 ASPはIIS上で動作するので、 Windows独自の機能です。 Linuxで同じようなことをするには、 Perlを使用するのが一般的だと思います。 http://search.mag2.com/reader/Magsearch?keyword=Perl でまぐまぐのPerl関係のメルマガ検索できます。 *おいおい、他店を紹介してどうするんだよ、 プライド無いなぁ。 /* * 3.Windows2000プロフェッショナルにIISをセットアップ */ 個人でサーバー持ってる人って少ないと思うので、 Windows2000プロフェッショナルにIISをセットアップする方法を http://www.ken3.org/asp/iis-win2000pro.html に載せてます。 参考となれば幸いです。 /* * 4.レンタルサーバー */ もう一つの手なのですが、 WindowsNTベースでIISが動作しているレンタルサーバーを借りる方法があります。 http://www.ken3.org/asp/server.html に私が現在使っているレンタルサーバーを紹介してます。 でも練習用なら、一台マシーンを潰して、 IISを社内のマシーンや自宅のマシーンに入れて、 使うほうがいいと思います。 腕があがって、公開できるカッコイイページ作ってからでも遅くないかと。 *私自身はあまり考えないでレンタルしてしまった。 メルマガ書く程度だったら、家庭内のLANでテストがよかったかも。。。 まぁ、サンプルの実行結果を読者が確認できるからイッカ。 /* * 5.終わりの挨拶 */ で、今日は何が言いたかったの? ASPをテストする環境をそろえるのって、意外と大変だと思った。 なんかそれが壁となって挫折する人居そう。 何か質問があったら、気軽に、 メール、掲示板に書き込んでくださいね。 三流プログラマーのKen3でした。
No.3 | 2002/11/19 乱数を使用して今日の運を表示 |
[ページTOPへ戻る] |
<乱数を使用して今日の運を表示> こんにちは、Ken3です。 今回は、変化のあるページを作りたいので、 1から100までの乱数を発生させて、 勝手な今日の幸運度を表示させて見たいと思います。 /* * 1.仕様 */ 1から100までの乱数を発生させ、 その数値を今日の幸運度として、 画面に表示させる。 /* * 2.まず、変数の扱いのテストするか。 */ まず、変数の扱いのテストでもするか。 <%@LANGUAGE=VBScript%> <html> <head> <title>三流君 ASPで遊ぶ、失敗する No.003</title> </head> <body bgcolor="#ffffff"> test003-1.asp 変数で遊ぶ<br> <% Dim n As Integer '(*1)乱数受け取り用 n = 100 Response.Write "nの中身は<br>" '固定の文字 Response.Write n '変数の中身を表示 Response.Write "です<br>" '固定の文字 %> </body> </html> あれ、 HTTP 500.100 - 内部サーバー エラー - ASP エラー インターネット インフォメーション サービス エラー タイプ Microsoft VBScript コンパイル エラー (0x800A0401) ステートメントの末尾が不正です。 /test/test003-1.asp, line 12, column 6 1 2 3 4 .... 12行目っていうと、 Dim n As Integer '(*1)乱数受け取り用 ここかぁ、 えっ、どこが?エラーなの? VBAの経験者だとひっかかるみたいだけど、 As integer As Stringなどと型を指定できないみたいです。 なんかシックリこないけど、 Dim n にする。う〜ん。私の勘違いかそれとも。後で調べよう。 おっ、今度は無事に表示されました。 http://www.ken3.org/cgi-bin/test/test003-1.asp を実行して見て下さい。 /* * 3.乱数を発生させて表示する */ 気を取り直して、 乱数かぁ、 Randomize で乱数系を初期化 Rnd で乱数を発生ですよね。これはVBAと同じだから違和感無いよね。 <%@LANGUAGE=VBScript%> <html> <head><title>三流君 ASPで遊ぶ、失敗する No.003</title></head> <body bgcolor="#ffffff"> test003-2.asp 乱数を発生させる<br> <% Dim n '(*1)乱数受け取り用、変数の型は指定できないみたい Randomize '*2 これでで乱数系を初期化 n = Int(Rnd * 100) + 1 '*3 乱数を発生と代入 Response.Write "今日の幸運度は<br>" '固定の文字 Response.Write n '変数の中身を表示 Response.Write "%です<br>" '固定の文字 %> </body></html> *2と*3みたいな感じで使用しました。 http://www.ken3.org/cgi-bin/test/test003-2.asp を実行すると、毎回値が変わると思います。 だから何?って感じだけどね(笑) /* * 4.HTMLのHRタグを使用してみる */ ASP使ってるとか偉そうなこと言ってるけどたいしたこと無いね。 まぁ、今はたいしたことやってないので。 VBのフォームやAccessのフォームと違って、 画面関係の最終出力はhtmlなんですよね。 それが何か?関係あるの? htmlの表現方法も必要ってことなんですよ。 (今のメモ帳でASP作ってる私みたいな人はね、VB.NETも勉強しないとね) まぁ、画面の出力関係、色の使い方はセンスが必要だけど。 たとえば、文字だけで60%とか表示していたものを HRのタグを使用して、下記のような棒グラフもどきを作ってみるとか、 チョットした小細工や知識も必要なんですよ。 う〜ん、なんかニガテだなぁ見せるページ作りって。。 http://www.ken3.org/cgi-bin/test/test003-3.asp を実行すると、赤い棒グラフが表示されます。 <%@LANGUAGE=VBScript%> <html> <head><title>三流君 ASPで遊ぶ、失敗する No.003</title></head> <body bgcolor="#ffffff"> test003-3.asp <HR>タグを使用して見せる工夫をする<br> <% Dim n '(*1)乱数受け取り用、変数の型は指定できないみたい Randomize '*2 これでで乱数系を初期化 n = Int(Rnd * 100) + 1 '*3 乱数を発生と代入 Response.Write "今日の幸運度は<br>" '固定の文字 Response.Write n & "%です" '数値を表示 '*4 HRで棒グラフもどきにする Response.Write "<HR Size=8 color=red align=left " Response.Write "Width=" & n & "% >" %> </body></html> *4でHRタグを作成し、出力してます。 SIZE COLOR ALIGN WIDTH とパラメーターをセットしてます。 /* * 5.省略形の書き方、好みによるけど */ なんか、ソースファイルが汚いんだけど、 ASPってそんなもんなの? イヤ、何か違う書き方もあると思う。 チョイ探してみると、 Response.Write n は <%=変数%> と書けるみたいです。 えっ、そんな省略形の書き方あるんだぁ。 ってことは。 <%@LANGUAGE=VBScript%> <html> <head><title>三流君 ASPで遊ぶ、失敗する No.003</title></head> <body bgcolor="#ffffff"> test003-4.asp <HR>タグを使用して見せる工夫をする<br> <% Dim n '(*1)乱数受け取り用、変数の型は指定できないみたい Randomize '*2 これでで乱数系を初期化 n = Int(Rnd * 100) + 1 '*3 乱数を発生と代入 %> 今日の幸運度は<br> <%=n%>%です <HR Size=8 color=red align=left Width=<%=n%>% > </body></html> みたいに書けるんだぁ。 なんか不思議。 http://www.ken3.org/cgi-bin/test/test003-4.asp の実行結果はもちろん、同じですよ。 /* * 6.終わりの挨拶 */ で、今日は何が言いたかったの? ・変数宣言As integer As Stringなどと型を指定できない(調査する) ・RandomizeとRndを使った。 ・ASP、ASPと騒ぐ前にHTMLも勉強しておこう ・<%=変数%>と記述することができる。 こんな感じかな。 何か隠してない? ドキッ、、、なんでわかったの? 話し好きなのにハヤクまとめて、逃げようとしてたので。 ほら、ヤッパなんか変だよ。 ここの場所↓↓↓↓ <HR Size=8 color=red align=left Width=<%=n%>% > 行の後ろ、 %>% >となんで、スペース空いてるの? ^^^^^ ヤバ、見つかったか。。。 90%>と%で終わるとスクリプトの終了タグの%>と間違えるので小細工でスペースを。 あっ、それにパラメーターって""で囲ってなかったっけ? <hr width="90%"> とか。 次回は、%の表現方法と””の書き方ですね。 次回のネタ決まったところで、逃げるようにサヨナラです。 オイオイ待ってよ。 またね(笑) 何か質問があったら、気軽に、 メール、掲示板に書き込んでくださいね。 三流プログラマーのKen3でした。
No.4 | 2002/11/21 フォームから値を受け取りたい |
[ページTOPへ戻る] |
<フォームから値を受け取りたい> こんにちは、Ken3です。 今回は、 ファームから値を受けとって処理をしてみます。 /* * 1.仕様 */ html側の処理 フォームを作成して、ASPファイルを呼び出す 入力項目は テキストボックスで 名前、 チェックボックスで、やりたいことをチェックさせ、 □HTMLから詳しく丁寧に □VBScriptをもっと詳しく □ゲーム作ろうよ RADIOボタンで、満足度を選択。 ASP側の処理 単純にパラメーターの値を表示する if文でチェックされた値を確認しメッセージ表示する /* * 2.まず、HTMLのフォームを作るか */ サンプルのソースを下記に載せます HTMLなのでローカルにメモ帳で作成してもいいです。 http://www.ken3.org/cgi-bin/test/test004-1.html でテストできるので、確認してください。 <html> <head> <title>test</title> </head> <body> <h2>フォームに値を入力してASPファイルに渡す</h2> <br> 好きに入力して、送信ボタンを押してください。<br> <FORM ACTION="http://www.ken3.org/cgi-bin/test/test004-1.asp" METHOD="POST"> お名前: <INPUT TYPE="text" SIZE="20" NAME="USER-NAME" VALUE="匿名希望"> <br> <br> このメルマガでやってほしいことにチェックを入れてください<br> <INPUT TYPE="CHECKBOX" NAME="c_1" VALUE="on">HTMLから詳しく丁寧に<BR> <INPUT TYPE="CHECKBOX" NAME="c_2" VALUE="on">VBScriptをもっと詳しく<BR> <INPUT TYPE="CHECKBOX" NAME="c_3" VALUE="on">ゲーム作ろうよ<BR> <br> このメルマガの満足度を5段階で<br> 不満 ------ 満足<br> 1<INPUT TYPE="RADIO" NAME="q_5" VALUE="1"> 2<INPUT TYPE="RADIO" NAME="q_5" VALUE="2"> 3<INPUT TYPE="RADIO" NAME="q_5" VALUE="3"> 4<INPUT TYPE="RADIO" NAME="q_5" VALUE="4"> 5<INPUT TYPE="RADIO" NAME="q_5" VALUE="5"> <br> <br> <br> <INPUT TYPE="submit" VALUE="送 信"> <INPUT TYPE="reset" VALUE="入力し直す"> </FORM> </body> </html> ポイントは、 <FORM ACTION="http://www.ken3.org/cgi-bin/test/test004-1.asp" METHOD="POST"> のACTION=Urlで、フォームの値を渡すASPを設定します。 あとは、みたままなのですが、 <INPUT TYPE="text" SIZE="20" NAME="USER-NAME" VALUE="匿名希望"> でテキスト入力エリアを作成。 <INPUT TYPE="CHECKBOX" NAME="c_1" VALUE="on">HTMLから詳しく丁寧に<BR> は□のチェックボックス。 1<INPUT TYPE="RADIO" NAME="q_5" VALUE="1"> 2<INPUT TYPE="RADIO" NAME="q_5" VALUE="2"> 3<INPUT TYPE="RADIO" NAME="q_5" VALUE="3"> 4<INPUT TYPE="RADIO" NAME="q_5" VALUE="4"> 5<INPUT TYPE="RADIO" NAME="q_5" VALUE="5"> は項目選択のラジオボタン <INPUT TYPE="submit" VALUE="送 信"> で、このボタンが押されると、 <FORM ACTION="url"←を呼び出します。 <INPUT TYPE="reset" VALUE="入力し直す"> はクリアのボタンで、入力値が消えます。 これは、HTMLのソースなので、 アンケート処理などを行っているWebシステムを探りに行って、 ソースの表示などでHTMLソースを表示して、 パクッテ(勉強して)テクを盗みましょう(参考とさせてもらいましょう) /* * 3.ASPでフォームの値を受け取り処理を行う */ 受け取りの基本は簡単で、 Request.Form("フォームの項目名") で受け取れます。 <INPUT TYPE="text" SIZE="20" NAME="USER-NAME" VALUE="匿名希望"> ^^^^^^^^^^^^^^^ NAME="USER-NAME" なので、 受け取る時は(使用する場合は) Request.Form("USER-NAME") で値を参照できます。 下記にサンプルのソースを載せます。 <%@LANGUAGE=VBScript%> <html> <head><title>三流君 ASPで遊ぶ、失敗する No.004</title></head> <body bgcolor="#ffffff"> test004-1.asp フォームから値を受け取る<br><hr> <% 'そのまま、テキストを表示する Response.Write Request.Form("USER-NAME") Response.Write "さん、入力どうもです。<br>" 'チェックボックスonの時メッセージを表示する if Request.Form("c_1") = "on" then Response.Write "HTMLかぁ、ニガテなんだよね<br>" end if if Request.Form("c_2") = "on" then Response.Write "VBScript、まぁ一歩一歩やりましょうよ<br>" end if if Request.Form("c_3") = "on" then Response.Write "えっ、ゲーム作成?ムリムリ<br>" end if 'RADIOボタン、中身表示と値を判断してメッセージ表示 Response.Write "満足度は" Response.Write Request.Form("q_5") Response.Write "かぁ、、、" if Request.Form("q_5") <= 2 then '2以下は不満にする Response.Write "不満かぁ、がんばらないと" end if if Request.Form("q_5") >= 4 then '4以上満足なら Response.Write "よかったぁ〜一安心" end if Response.Write "<br>" %> <br> <HR> 終了で。うまく値がわたりましたか?<br> </body></html> ポイントも得に無く、 ダラダラと Response.Write でブラウザーに表示(ソースを返してます) if 文で少し分岐させてみました。 if Request.Form("c_1") = "on" then とやっているのは、 送り側のhtml側で <INPUT TYPE="CHECKBOX" NAME="c_1" VALUE="on">HTMLから詳しく丁寧に<BR> 上記 NAME="c_1"です、チェックされた時はVALUE="on"文字列のonですよ と指定してるので、チェックの有無を= "on" で判断してます。 1<INPUT TYPE="RADIO" NAME="q_5" VALUE="1"> 2<INPUT TYPE="RADIO" NAME="q_5" VALUE="2"> 3<INPUT TYPE="RADIO" NAME="q_5" VALUE="3"> 4<INPUT TYPE="RADIO" NAME="q_5" VALUE="4"> 5<INPUT TYPE="RADIO" NAME="q_5" VALUE="5"> は、ラジオボタンの選択なので、 q_5の項目名が1つです。 受け取るのは、1〜5の値なので、 if Request.Form("q_5") <= 2 then '2以下は不満にする など、少し遊んでみました。 /* * 4.流れ */ http://www.ken3.org/cgi-bin/test/test004-1.html の HTMLで<From>タグを使用して、入力フォームを作る、 送信ボタン(submit)が押されたら ACTION="http://www.ken3.org/cgi-bin/test/test004-1.asp" 指定のurlを呼び出す。 (フォームの値を渡す) あとは、渡された値を使用して、 test004-1.asp 内で、処理を行う。 今回は、簡単な表示だけだったけど、 通常は、データの検索やデータをファイル/DBに登録など、 データの操作のアクションが書かれると、 HTMLのリンクの紙芝居じゃなく、 おっ、サーバーで動いてるなぁと感じられると思います。 /* * 5.終わりの挨拶 */ で、今日は何が言いたかったの? ・フォームの作り方を簡単にやった ・ASPで値の受け取り方を少々 こんな感じかな。 またね(笑) 何か質問があったら、気軽に、 メール、掲示板に書き込んでくださいね。 三流プログラマーのKen3でした。
三流解説を読んでいただき、どうもです。ここから下は、三流君宛のメッセージ送信や 三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、※質問や感想は、気軽に送ってくださいね。
まぁ、基本はデータの受け取りかなぁ。
・[Form等を使用したデータのやり取り]・・・ASPと言っても、HTMLの入力フォームからデータを受け取ります。POSTやGETでやりとりを押さえますか。
次は、データの入出力 で ADOを使った(ADOで接続) と SQLの解説を少々
・[ADOでMdbファイルを使う]・・・MDBと接続して、簡単な追加・更新・削除を行った。
・[ADOでExcelと接続してみた]・・・.xlsと接続してSQLを使ってみた。
・[ADOでCSVと接続してみた]・・・.CSV テキストを読み出した。※更新・削除はできません
DBが使えるので、あまり使用しないけど、普通のテキストファイル処理
・[テキストファイル処理]・・・ファイルを開いて、書き込む。1行読み込みなどを軽く
VBScriptでFormat関数が無いなど、微妙にVBAと違うけど
[VBScript関数関係の説明]・・・少し、処理を書いてみた。
[その他処理サンプル]・・・あまり良いサンプル作れなかったけど。。。
何かの参考となれば幸いです。
ニガテな環境設定系など
[Win2003 Server に IIS を Setup]・・・ポイントの無い、ほぼ一本道解説だけど。
[IIS 仮想ディレクトの作成とASP動作TEST]・・・Web拡張でASPを有効にしただけです。
Blog:[三流君の作業日記]/ [サンプルコードのゴミ箱]/ 広告-[通販人気商品の足跡]
質問や要望など連絡方法でお互い確認が取りやすく、便利なのが掲示板なのですが、私の対応のまずさから不定期で荒れてしまい、掲示板は現在封鎖中です。(反省しなきゃ)
感想や質問・要望・苦情など 三流君へメッセージを送る。
時間的余裕のある要望・質問・苦情の場合は、下記のフォームからメッセージを送ることができます。