情報アプリケーション1 2008年 11月 19日 第二回資料 担当 重定 如彦 .

Slides:



Advertisements
Similar presentations
1 実技演習1 2008/01/28,29 JaLTER Morpho 講習会. 2 起動・接続 各自、コンピュータを起動してネットワーク に接続してください。 各自、コンピュータを起動してネットワーク に接続してください。 IP アドレス自動取得 IP アドレス自動取得 無線 LAN 使用可 無線.
Advertisements

1 エクセル (3) の目次 ②参照演算子と演算子参照演算子と演算子 ③参照セルの表示法参照セルの表示法 ④セルの参照方法セルの参照方法 ⑤エラーについてエラーについて ⑥シグマ( Σ )関数シグマ( Σ )関数 ⑦条件付書式条件付書式 ⑧問題 (1)問題 (1) ⑨問題 (2)問題 (2) ⑩問題.
情報アプリケーション1 2006 年 10 月 12 日 第四回資料 担当 重定 如彦. 目次 データの送信とフォーム クイズ CGI 複数のパーツのデータの分割方法 配列変数.
第5章 JMPのインストールと基本操作 廣野元久
情報基礎演習I(プログラミング) 第9回 6月22日 水曜5限 江草由佳
情報処理演習 (秋学期・樋口担当) 2回目 10/1 日本工業大学 コンピュータリテラシーII.
初年次セミナー 第8回 データの入力.
エクセル(1)の目次 起動法、ブック、シート、セル ブックの開き方 エクセル画面 マウスポインターの種類 シート数の調節 データの入力法
エクセル(7)の目次 関数の書式 関数ウィザードの使い方 四捨五入/切り上げ/切り捨て IF関数 問題(1) 問題(2) 問題(3)
情報処理 第12回.
プログラミング入門 電卓番外編 ~エクセルで関数表示~.
初年次セミナー 第4回 整数と実数の取り扱い.
ファイルやフォルダを検索する ①「スタート」→「検索」→「ファイルとフォルダ」とクリックする。
ウェブページ制作の基礎 タグの直接入力によるウェブページの制作 次のスライドへ進んだり,戻ったりしたい時は,右下のボタンをクリック。 次へ.
第2章 数値の入力と変数 scanfと変数をやります.
法人e名刺 ブログ運用マニュアル 社外秘 目次 □ブログ運用ルール
数値計算及び実習 第3回 プログラミングの基礎(1).
エクセル(1)の目次 起動法、ブック、シート、セル ブックの開き方 エクセル画面 マウスポインターの種類 シート数の調節 データの入力法
プログラミング入門2 第1回 導入 情報工学科 篠埜 功.
文献管理ソフトRefWorksの利用.
構造体.
4-3.基本的なPHPスクリプト 2004年6月24日(木) 大北高広 01T6010F.
9 Microsoft Word(1).
HTTPプロトコルとJSP (1) データベース論 第3回.
【トップページ-TOPICSの登録・編集】
平成22年度に実施を予定するインターネットを 用いた研修システムによる研修 ライブ配信受講手順書
情報アプリケーション1 2008年 12月 3日 第四回資料 担当 重定 如彦 .
情報工学科 二宮 洋・鈴木 誠 小林 学・高畠俊徳 火曜日 1コマ目
初年次セミナー 第2回 文字の出力.
第5回 統計処理(2) 塩浦 昭義 東北大学全学教育科目 情報基礎 A 1セメスター 木曜1,3講時 経済学部・法学部
スクリプト言語を用いたPHITSの連続実行
データベース設計 第9回 Webインタフェースの作成(1)
情報アプリケーション1 2006年 10月 5日 第三回資料 担当 重定 如彦 .
10 Microsoft Word(1) 10.1 Microsoft Word v.Xの概要 起動 終了
第8章 Web技術とセキュリティ   岡本 好未.
情報処理3 第5回目講義         担当 鶴貝 達政 11/8/2018.
第2回 Microsoft Visual Studio C++ を使ってみよう
Borland Delphi 6 でビジュアルプログラミング
プログラミング応用 printfと変数.
プログラミング入門 電卓を作ろう・パートIV!!.
アルゴリズムとプログラミング (Algorithms and Programming)
初期設定マニュアル コナミスポーツクラブ情報ダイヤル 【お問い合わせ先】 0120-919-573 受付時間
制作技術ー3 双方向通信 : CGIシステムと環境変数
第7回 条件による繰り返し.
2019/2/24 情報処理 第13回.
情報アプリケーション1 2006年 10月 19日 第四回資料 担当 重定 如彦 .
コンピュータ プレゼンテーション.
スイッチを入れる前に… 講習を受けていない人は、まだスイッチを入れないこと。 まず講習を受けてセットアップを行ってください 注意.
地域情報学 C言語プログラミング 第1回 導入、変数、型変換、printf関数 2016年11月11日
プログラミング基礎B 文字列の扱い.
Htmlの基本.
コンピュータ プレゼンテーション.
PHP 概要 担当 岡村耕二 月曜日 2限 平成22年度 情報科学III (理系コア科目・2年生)
情報基礎演習I(プログラミング) 第11回 7月12日 水曜5限 江草由佳
C言語 はじめに 2016年 吉田研究室.
統計ソフトウエアRの基礎.
高度プログラミング演習 (01).
基礎プログラミング演習 第6回.
第6回レポート解説 条件1 条件2 条件3 月の入力 月、日、曜日の表示 日の入力 曜日の入力
Webページに動きを持たせるJavascript言語について 例題のプログラムを通して体験的に理解することとします。
vc-1. Visual Studio C++ の基本操作 (Visual Studio C++ の実用知識を学ぶシリーズ)
標準入出力、変数、演算子、エスケープシーケンス
プログラミング基礎a 第3回 C言語によるプログラミング入門 データ入力
エクセル(3)の目次 参照演算子と演算子 参照セルの表示法 セルの参照方法 エラーについて シグマ(Σ)関数 条件付書式 問題(1)
例題のプログラムを通して JavaScriptの仕組みを理解することとします。
printf・scanf・変数・四則演算
第2章 数値の入力と変数 scanfと変数をやります.
復習 いろいろな変数型(2) char 1バイト → 英数字1文字を入れるのにぴったり アスキーコード → 付録 int
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
第1章 文字の表示と計算 printfと演算子をやります.
Presentation transcript:

情報アプリケーション1 2008年 11月 19日 第二回資料 担当 重定 如彦 

目次 CGIとプログラム言語 Perlの基礎知識1-5 サンプルCGI CGIのアップロード 占いCGI Perlの基礎知識6-13

CGIとプログラム言語   CGIを作成する為にはプログラムを記述する必要がある プログラム言語には様々な種類があるが、CGIには一般的にPerlやPHPというプログラム言語が良く使われている PerlはCGIを作成する際に頻繁に必要となる文字列の処理の記述が得意なプログラム言語で、法政大学だけでなく、 多くのプロバイダでサポートされている この授業でもPerlを使ってCGIを作成する

Perlの基礎知識1   PerlをCGIで使う場合、1行目にCGIを設置するウェブサーバ上にインストールされているPerlの実行ファイルのパスを #! の後に記述する(すべて半角で記述すること)   法政大学の場合は、   #!/usr/local/bin/perl   と1行目に記述すれば良い 他のプロバイダでPerlを使ってCGIを記述する場合に何を記述するかはそのプロバイダのCGIに関する解説文章を参照すること(Windowsと異なりパスでは \ ではなく / を使う点に注意)

Perlの基礎知識2 プログラムの記述と実行順序 基本的に、1行に一つずつ命令を記述する 各行の最後に ; (セミコロン)を記述する 各行の最後に ; (セミコロン)を記述する 基本的に、上の行から順番に1行ずつ プログラムは実行される (ただし、1行目の#!/usr/local/bin/perl は実行されない) プログラムを記述する際にはテキストエディタ(メモ帳や Emeditorなど)を使用すること。ワープロ(Wordや一太郎)を 使ってプログラムを記述すると余計なデータが保存されて しまうため、プログラムがうまく記述できない

Perlの基礎知識3 文字に関する注意事項 基本的に、半角文字しか使えない 特に全角のスペースを記述しないように注意! 以下の場合のみ全角文字を使っても良い “ と ” (ダブルクオーテーション)記号で囲まれた部分 “ と ” で囲まれた部分は文字列として認識される  # 記号(半角)より後ろに記述された文字 #の後ろに記述された文字はコメント(注釈)とみなされ、 プログラムの実行に影響を与えない (注:“ と ”の間に記述された # は除く) 例えば #!/usr/local/bin/perl は注釈なので実行されない

Perlの基礎知識4 関数 Perlでは、プログラムで利用することが可能な、 様々な動作を行ってくれる道具が用意されている 関数には名前があり、名前を記述することで利用できる 関数名の後に () を記述する ( と )の間に関数に渡すデータを記述することができる。このデータのことを引数(ひきすう)と呼ぶ 引数が複数ある場合は、引数と引数の間を , で区切る Perlの場合、()を省略することも可能(以下省略する) 注意: () や , はすべて半角で記述すること

Perlの基礎知識5 print関数 print 出力する文字列;  のように記述する printは文字を出力する関数であり、()の中に出力する文字列を引数として 記述する。CGIでprint関数を実行した場合は、ウェブブラウザに送り返す 返信メッセージに文字列が出力(書き込まれる)される。 文字列は基本的に “ ” 記号の間に記述する 記述例: print “こんにちは”; 上記の行が実行されると、  こんにちは  という文字列が出力される

サンプルCGIその1 画面にこんにちはと表示するCGIプログラム例 以下の作業を行うこと メモ帳を実行する 下記のプログラムをそのまま入力する 注: \n は改行を表す記号 「renshuu1.cgi」という名前でファイルをデスクトップに保存する 注意:URLには基本的に半角文字しか使えないという決まりがあるので、 CGIを記述したファイルの名前は必ず半角文字でつけること 以下の3行がプログラム #!/usr/local/bin/perl print "Content-Type: text/html; charset=sjis\n\n"; print "こんにちは"; CGIが作ったデータがHTML形式で、 文字コードがShift-JISであることを表す補足情報 \n\n は返信データの中の ヘッダと本体を分ける空白行

CGI実行時の処理その1 ウェブサーバがCGIを実行した場合、以下のような処理が行われる CGIを無事実行できた? YES NO   ウェブサーバがCGIを実行した場合、以下のような処理が行われる                 CGIを無事実行できた? YES NO ウェブサーバはまず、ウェブページのデータを正しく返信できたことを表す 返信メッセージのヘッダの途中までを 作成し、その後に、CGIがPrint関数で 出力した文字列を付け加え、それを 送り返す ウェブサーバはエラーが起きた ことを表す返信メッセージを 作成し、それを送りかえす

CGI実行時の処理その2 先ほどのCGIが無事に実行できた場合の処理 CGIが無事に実行できたので 返信ヘッダの一部を作成する   先ほどのCGIが無事に実行できた場合の処理 CGIが無事に実行できたので 返信ヘッダの一部を作成する 1.で作成したヘッダに、CGIの print関数が出力した文字列を 追加し、できたものを返信メッ セージとして送り返す HTTP/1.1 200 OK ・・・(省略)・・・ ここまではウェブサーバが 自動的に作ってくれる この部分が返信メッセージの ヘッダ部分 HTTP/1.1 200 OK ・・・(省略)・・・ Content-Type: text/html; charset=sjis こんにちは ヘッダと本文を分ける空白行 この部分をウェブラウザが 表示する

CGIプログラムのアップロード(1)   法政大学の場合、Gドライブのwwwフォルダに作成した CGIのファイルをコピーすれば良いが、一般的なプロバイダにCGIをアップロードするには一般にFTPと呼ばれるソフトを 使用する。そこで本授業ではFTPを使ったアップロードの 方法を紹介する  FTPソフトには様々な種類があるが、本授業では演習室のコンピュータにインストールされているFFFTP(フリーソフト)というソフトを使用する  FFFTPを家で利用したい人は法政大学市ヶ谷情報センター 利用ガイドを参照すると良いだろう

CGIプログラムのアップロード(2) 以下の手順でアップロードを行う FFFTPを実行する   以下の手順でアップロードを行う FFFTPを実行する ホスト一覧の中からファイルをアップロードするホストを選択し、接続ボタンをクリックする 法政大学の場合は  cs1.edu.i.hosei.ac.jp プロバイダのウェブサーバにアップロードする場合は、 新規ホストボタンを押して設定を行えば良い パネルにユーザIDとパスワードを入力する 法政大学の場合はログイン時のものと同じ

CGIプログラムのアップロード(3) FFFTPの基本説明 アップロードの方法 右のフォルダをアップロードしたいフォルダに変更し、 アップロードしたいファイルを右のフォルダにドラッグする ダウンロードの方法 右のフォルダをダウンロードしたいファイルがあるフォルダに変更 左のフォルダをダウンロードしたいファイルを保存したいフォルダに変更右のフォルダからダウンロードしたいファイルを左のフォルダにドラッグ

CGIプログラムのアップロード(4) アップロード手順の続き   アップロード手順の続き 右のフォルダのwwwをダブルクリックし、ファイルの アップロード先であるwwwフォルダを表示する デスクトップの renshuu1.cgi をFFFTPの右のフォルダに ドラッグする(これでアップロード完了) 右のフォルダに表示されているrenshuu1.cgiの上にマウスカーソルを移動し、右クリックして表示されるメニューで 「属性変更」をクリックする パネルの中で「実行」と表示されている3つのボタンをすべてクリックしてチェックをONにし、OKボタンをクリックする

CGIプログラムのアップロード(5) 属性変更の意味   ウェブサーバのコンピュータのように、不特定多数の人間が利用する場合、そのコンピュータに保存されている各ファイルに対して、「誰が」、「どのような」操作を行うことができるかに ついて以下のような設定を行うことができる これをファイルのアクセス権限と呼ぶ 誰が? どのような? オーナー ファイルの作者 呼出 読み込み可能 グループ 特定のグループ 書込 書込み可能 その他 上記以外の人 実行 ファイルを実行可能

CGIプログラムのアップロード(6) 属性の設定 通常の設定 CGIの場合の設定 オーナー グループ その他 呼出 ○ 書込 × 実行

CGIプログラムの実行と確認   ウェブブラウザを開いて以下のアドレスを入力し、以下のようなウェブページが表示されれば成功 http://www.edu.i.hosei.ac.jp/~ユーザID/renshuu1.cgi また、メニューで「表示」→「ソース」を実行して、このウェブページのソースが どのようになっているか確認すること

占いCGI   先ほどのCGIは単に「こんにちは」と表示するだけで、あまりCGIっぽくなかった。そこで次は、アクセスする毎に「大吉」「中吉」「小吉」「凶」のいずれかを表示するCGIを作成する このようなCGIを作るには以下のような知識が必要である 乱数の発生方法 乱数とはサイコロの出目のように出たらめな数のこと 上記の占いをつくるには1から4までの乱数を発生させる必要がある 変数 変数とはプログラムで使用する数字などのデータを格納する入れ物のこと このCGIでは発生させた乱数を変数に格納して後で利用する 条件分岐 条件(このCGIの場合は発生させた乱数の数字)によって異なる動作を行う プログラムの書き方のことを条件分岐と呼ぶ

Perlの基礎知識6  変数と代入  Perlに限らず一般的なプログラム言語では、数字や文字など のデータを変数と呼ばれる入れ物に格納することができる Perlの変数の特徴は以下のとおり 変数には好きな名前をつけることができる(半角英数字を使用可) なお、変数名はその変数に何を入れるかがわかるような 名前をつけるのが一般的である(注:一部使用できない記号あり) 変数は名前の前に $ 記号をつける決まりがある 変数には、数字や文字列を代入することができる。代入は、            $変数名 = 式; のように記述する 式には + - * / のような四則演算記号を使うことができる 式には変数や関数を記述することもできる その場合、変数の中身や関数の計算結果を使って式の計算が行われる

Perlの基礎知識7  変数の代入の記述例  $width = 5; $height = 10; $menseki = $width * $height;   上記の3行のプログラムを実行すると、mensekiという変数に 5*10=50 が代入される   $myname = “重定”;  文字列を代入する場合は、“ ” 記号で囲む必要がある

Perlの基礎知識8  乱数の発生方法  乱数を発生させるにはrandという関数を使う rand(式)        randは 0 から 式 未満までの乱数を発生させる $ransuu = rand(4); 上記のようなプログラムを実行すると $rannsuu という変数に 0以上4未満の数字が代入される ただし、randは小数点以下の値も含むので上記の プログラムでは、 1.234 や 2.345 のような整数ではない 数字が$rannsuuという変数に代入されてしまう 注:引数が数字の場合は()がないと   間違えやすいので()をつけている

Perlの基礎知識9  整数の乱数の発生方法  発生させた乱数を整数に変換するにはintという関数を使う int(式) intは 式の値を切り捨てるという操作を行う $ransuu = int(rand(4)); 上記のようなプログラムを実行すると、右辺のrand(4)が 実行された後、その結果をintが整数に変換するので結果 として0,1,2,3のいずれかの数字が $rannsuu に代入される 0,1,2,3ではなく、1,2,3,4の乱数を発生させたい場合は   $ransuu = int(rand(4)) + 1; と記述すれば良い

Perlの基礎知識10 条件分岐 条件によって実行する内容を変化させるには、条件分岐と 呼ばれる方法を使う。条件分岐は以下のように記述する なお、{ から } の間には何行プログラムを記述しても良い if (条件式) {   条件式が真(正しい)の場合に実行するプログラム } else {   条件式が偽(正しくない)場合に実行するプログラム   }

Perlの基礎知識11 条件式の書き方 条件式の部分は以下のように記述する 式1 比較演算子 式2 比較演算子には以下のものがある 条件式の書き方 条件式の部分は以下のように記述する 式1 比較演算子 式2 比較演算子には以下のものがある 数値の比較 > 式1が式2より大きい場合に真となる >= 式1が式2以上の場合に真となる < 式1が式2より小さい場合に真となる <= 式1が式2以下の場合に真となる == 式1が式2と等しい場合に真となる <> 式1が式2と等しくない場合に真となる 文字列の比較 eq 式1と式2が同じ文字列の場合に真となる ne 式1と式2が同じ文字列でない場合に真となる

Perlの基礎知識12 条件分岐の記述例 下記のプログラムは変数$scoreの中身が50以上の場合は$seisekiという変数に 合格 、そうでなければ 不合格 という文字列を代入する if ($score >= 50) {   $seiseki = “合格”; } else {   $seiseki = “不合格”;   }

Perlの基礎知識13 3つ以上の条件分岐 3つ以上の条件分岐を行いたい場合は以下のように記述する if (条件式1) {   条件式1が真の場合に実行するプログラム } elsif (条件式2) {   これより上の条件式がすべて偽で、   条件式2が真の場合に実行するプログラム   } elsif (条件式3) {   これより上の条件式がすべて偽で、   条件式3が真の場合に実行するプログラム   }             ・・・      注: elsif の部分は必要なだけ記述できる             ・・・ else {   上記のすべての条件式が偽の場合に実行するプログラム }

占いCGI(1) メモ帳を実行し、以下のプログラムを記述し、「uranai.cgi」という名前でファイルをデスクトップに保存すること #!/usr/local/bin/perl print "Content-Type: text/html; charset=sjis\n\n"; $ransuu = int(rand(4)) + 1; If ($ransuu == 1) { print "大吉"; } elsif ($ransuu == 2) { print "中吉";    ・・・次のスライドに続く・・・

占いCGI(2) 入力が完了したら、ファイルをFTPでウェブサーバにアップロードし、   ・・・プログラムの続き・・・ elsif ($ransuu == 3) { print "小吉"; } else { print "凶"; 入力が完了したら、ファイルをFTPでウェブサーバにアップロードし、 ファイルの属性を変更し、ウェブブラウザでCGIが正しく動作しているか 確認すること