PowerPoint プレゼンテーション

Similar documents
PowerPoint プレゼンテーション

Si 知識情報処理

Microsoft PowerPoint - 第3回目.ppt [互換モード]

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

Method(C 言語では関数と呼ぶ ) メソッドを使うと 処理を纏めて管理することができる 処理 ( メソッド ) の再実行 ( 再利用 ) が簡単にできる y 元々はC 言語の関数であり 入力値に対する値を 定義するもの 数学では F(x) = 2x + 1 など F(x)=2x+1 入力値 (

プログラミング入門1

演算増幅器

Microsoft PowerPoint - prog03.ppt

Microsoft PowerPoint - prog04.ppt

PowerPoint プレゼンテーション

ファイル入出力

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

Prog1_12th

2006年10月5日(木)実施

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

ファイル入出力

◎phpapi.indd

プログラミング実習I

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

PowerPoint プレゼンテーション

ソフトウェア基礎 Ⅰ Report#2 提出日 : 2009 年 8 月 11 日 所属 : 工学部情報工学科 学籍番号 : K 氏名 : 當銘孔太

スライド 1

PowerPoint プレゼンテーション

Microsoft Word - Cプログラミング演習(9)

練習 4 ディレクトリにあるファイルを直接指定する (cat) cat コマンドを使う (% cat ファイル名 ) と ファイルの内容を表示できた ファイル名のところにパス名を使い ディレクトリ名 / ファイル名 のように指定すると ディレクトリ内にあるファイルを直接指定できる 1 % cat _

プログラミング基礎I(再)

Microsoft PowerPoint - prog04.ppt

Microsoft PowerPoint - kougi6.ppt

目次 はじめに 4 概要 4 背景 4 対象 5 スケジュール 5 目標点 6 使用機材 6 第 1 章 C# 言語 7 C# 言語の歴史 7 基本構文 8 C 言語との違い 9 Java 言語との違い 10.Netフレームワーク 10 開発資料 10 第 2 章 Mono 11 Monoの歴史 1

情報処理演習 B8クラス

メソッドのまとめ

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

Webデザイン論

サーバサイドスクリプトPHPを実感しよう

Microsoft PowerPoint - lec10.ppt

プログラミング入門1

C言語講座 ~ファイル入出力編~

PowerPoint プレゼンテーション

実験 5 CGI プログラミング 1 目的 動的にWebページを作成する手法の一つであるCGIについてプログラミングを通じて基本的な仕組みを学ぶ 2 実験 実験 1 Webサーバの設定確認と起動 (1)/etc/httpd/conf にある httpd.conf ファイルの cgi-bin に関する

Microsoft PowerPoint - prog08.ppt

Microsoft PowerPoint - prog06.ppt

Microsoft Word - no15.docx

関数の動作 / printhw(); 7 printf(" n"); printhw(); printf("############ n"); 4 printhw(); 5 関数の作り方 ( 関数名 ) 戻り値 ( 後述 ) void である. 関数名 (

Microsoft Word - no06.doc

Microsoft Word - no11.docx

画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう

1. 一般設定 グローバル設定 ここでは 以下の 4 つのケースを想定し ファイルサーバーを設定する手順を紹介します 既に Windows ネットワーク上に存在するワークグループに参加する場合 Windows ネットワーク上に新たにワークグループを作成する場合 既に Windows ネットワーク上に

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

ガイダンス

gengo1-12

Taro-ファイル処理(公開版).jtd

26 editor.putint(pref_count_key, executecount); 27 // 変更した Preference を確定させる 28 editor.commit(); 29 } (c) 実行の様子実装して実行した様子を図 1 と図 2 に示す. 一度実行するごとに, カウン

WEBシステムのセキュリティ技術

PowerPoint Presentation

gengo1-12

ガイダンス

Microsoft PowerPoint - prog03.ppt

PowerPoint プレゼンテーション

Prog1_6th

2. 動的コンテンツとは動的コンテンツとは Web ブラウザからの要求に応じて動的に Web ページや画像などを生成する Web コンテンツのことをいいます Web で利用するサーチエンジンやアクセスカウンタ等は この仕組みを用いています 動的コンテンツは大きく次の二つに分類されます (1) Web

ガイダンス

/*Source.cpp*/ #include<stdio.h> //printf はここでインクルードして初めて使えるようになる // ここで関数 average を定義 3 つの整数の平均値を返す double 型の関数です double average(int a,int b,int c){

1. ファイルにアクセスするには ファイルにアクセスするには 1. ファイルを開く 2. アクセスする 3. ファイルを閉じるという手順を踏まなければなりません 1.1. ファイルを読み込む まずはファイルの内容を画面に表示させるプログラムを作りましょう 開始 FILE *fp char fname

<4D F736F F D208AC888D B836A F C91808DEC837D836A B81698AC7979D8ED A E646F6

NetworkApplication-09

cp-7. 配列

Microsoft PowerPoint - mwpro2_faq_ ppt

演習室の PC のハードディスクには演習で作成したデータは保管できません 各 PC の ネットワーク接続 ショートカットからメディア情報センターのサーバーにアクセスしてください (Z ドライブとして使用できます ) 講義で使うフォルダ 2/23

LCV-Net ファイルコンテナ ユーザーマニュアル

プログラミング入門1

フローチャート自動生成ツール yflowgen の使い方 目次 1 はじめに 本ツールの機能 yflowgen.exe の使い方 yflowgen.exe の実行方法 制限事項 生成したファイル (gml ファイル形式 ) の開

JavaScript 演習 2 1

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

Microsoft Word 基_シラバス.doc

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar

memo

PowerPoint プレゼンテーション

メディプロ1 Javaプログラミング補足資料.ppt

Javaの作成の前に

PowerPoint プレゼンテーション

目次 1. 教育ネットひむかファイル転送サービスについて ファイル転送サービスの利用方法 ファイル転送サービスを利用する ( ひむか内 ) ファイル転送サービスへのログイン ひむか内 PCでファイルを送受信する

ガイダンス

Javaプログラムの実行手順

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

タイトル

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

※ ポイント ※

モバイルアプリを Azure で作る - データを扱う Azure Storage を利 してデータを保存する 本稿では PHP と Windows Azure を使って 画像などのファイルを扱うアプリケーションを開発する方法を説明します Windows Azure Platform では データの

PowerPoint プレゼンテーション

memo

プログラミング基礎

シェルプログラミング コマンドをパイプでつなげるだけでは済まないような ある程度まとまった処理を複数のコマンドを制御構文を用いたりしてファイルとしたものを ( シェル ) スクリプトと呼ぶ シェルプログラム バッチなどともいう.bash_profile もシェルスクリプトなので このファイルを解読し

PowerPoint Presentation

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

プレポスト【解説】

gengo1-12

Transcription:

ネットワークプログラミング 演習 第 12 回 Web サーバ上で動作するプログラム 2

今日のお題 PHPのプログラム例 おみくじ アクセスカウンタ ファイルの扱い lock ファイルの所有者 許可と権限

PHP の文法 ( の一部 ) if, for, while の制御の構文は C 言語と似ている 型はあるが 明示的な宣言はしなくてよい 変数には型がない 変数の宣言はしなくてよい 変数名には $ をつける 仮引数も同じ 関数は function で宣言する オブジェクト指向に対応している : クラスは class で宣言する メソッドも function で宣言する main はなく トップレベルに書かれた命令列が実行の起点 WEB 上にマニュアルが公開されている http://php.net/manual/ja/

例 1: おみくじ http://sun.ac.jp/prof/yamagu/2018np/omikuji.php ソースコード : <HTML> <HEAD><TITLE>Fortune</TITLE></HEAD> <BODY> <?PHP $i = rand(1,4); if ($i == 1) { echo ' 大吉 <BR/>' ; } else if ($i == 2) { echo ' 中吉 <BR/>' ; } else if ($i == 3) { echo ' 吉 <BR/>' ; } else { echo ' 凶 <BR/>' ; }?> </BODY> 1 から 4 までの整数をランダムに生成して 変数 $i に代入 $i の値によって表示する内容を変える このサンプルは そのうちまた使います </HTML>

例 2: アクセスカウンタ http://sun.ac.jp/prof/yamagu/2018np/tst.php 基本的な考え方 : 1. アクセス回数を記録したファイルを用意する 2. ファイルからアクセス回数を読む 3. アクセス回数を1 増やす 4. ファイルに ( 新しい ) アクセス回数を書き込む 注意点が二つ

アクセスカウンタを作る際の注意点 排他制御 複数のアクセスがほぼ同時にあったら ファイルの整合性は保たれるか? ファイルにロックをかける (OS の ) 機能を使う ファイルの所有者 許可と権限 PHP のプログラムを実行するのは Web サーバ : Web サーバに読み書きできるようにファイルを作る必要がある

ファイルの排他ロック あるプロセスがファイルにロックをかけると ロックが解除されるまで 他のプロセスはそのファイルへのアクセスを待つ アクセス回数を読む前にロックをかけ 新しいアクセス回数を書き込んだらロックを解除

ファイルの所有者と権限 UNIX のファイルシステムは ユーザ全員で共有する とはいえ 自分のファイルを 他のユーザに自由に読まれたり書き換えられたりされては困る 各ファイルには 所有者が決まっている 各ユーザはいくつかのグループに所属している 各ファイルには グループも設定されている ファイルの所有者は ファイルについて 所有者 / グループ / それ以外に対して それぞれ読む / 書く / 実行するの許可を設定できる ディレクトリの場合は ディレクトリの下にアクセスする許可

ファイルの所有者と許可を確認する ubuntu の場合 シェルで ls -l を実行すると カレントディレクトリのファイルについて 所有者や許可モードの情報とともに一覧が表示される WinSCP の場合 ファイルの一覧に パーミッション ( 許可モード ) や所有者が表示されているはず

permission 許可モードの読み方 ls -l だと -rwxr-xr-x WinSCP だと rwxr-xr-x それ以外 (other) への許可 最初の 1 文字はディレクトリか否かを示す r は読む権限があることを示す w は書く ( 書き換える 削除する ) 権限があることを示す 所有者 (user) への許可 同じグループ (group) のユーザへの許可 x は実行する ( ディレクトリの場合は下にアクセスする ) 権限があることを示す

アクセスカウンタと権限の話 プログラムがファイルを読み書きするときは そのプログラムを実行したユーザと同じ権限を持つ PHP のプログラムを実行しているのは誰? Web サーバ では Web サーバを実行しているのは誰? 実は Web サーバ用に仮想のユーザを作って その仮想ユーザが実行している 大昔は 管理者の権限で動いていた セキュリティリスクがある Webサーバ用仮想ユーザが アクセスカウンタ用のファイルを読み書きできないといけない

アクセス回数記録用のファイルを作る 1. アクセスカウンタのプログラムを ファイルが無ければ作るという動作にしておく アクセスカウントをするページを作っておく 2. ファイルの置き場所となるディレクトリを作る 3. 置き場ディレクトリの other の権限に w を追加する ディレクトリに w 権限があると ファイルを作れる 4. アクセスする ファイルができる できたファイルの所有者は Web サーバ用仮想ユーザ 5. 置き場ディレクトリの other の権限から w を削除する この手順をやらないと 誰でもファイルを置けるようになってしまう

アクセスカウンタの設計 ページごとに別のカウンタを用意したい 回数を記録するファイルだけ変えればよい (PHP のプログラムは同じものを使う ) アクセスカウンタのプログラムを PHP の関数で書く 関数の引数は 回数を記録するファイルの名前 この関数が定義された PHP ファイルを読み込んで 関数を呼び出すと 回数が返る

アクセスカウンタのソース <?PHP function counter($file) { } $fh = fopen($file,"c+"); if ($fh === FALSE) return 0; flock($fh,lock_ex); $sc = fgets($fh); if ($sc === false) { $c = 0; } else { } $c = intval(trim($sc)); $c = $c+1; ftruncate($fh,0); fwrite($fh, $c. "\n"); flock($fh,lock_un); fclose($fh); return $c; counter という関数を定義 c+ で fopen すると 読み書きできて 無ければ作る fopen に失敗したとき ファイルにロックをかける ファイルから 1 行読み込む ファイルから読めない ( 無い ) とき 0 回とする 読めたら ( 改行を削除して ) 整数値にする 回数を 1 増やす ロックを解除 ファイルを閉じる 新しいアクセス回数を返す?> で閉じなくてもよい ファイルサイズを 0 にする c+ で開くと 末尾に追記されるので 新しいアクセス回数を書く

アクセスカウントするページのソース <HTML> <HEAD><TITLE>welcome</TITLE></HEAD> <BODY> <H1> ようこそ </H1> <HR/> <?PHP?> </BODY> </HTML> require_once "counter.php"; echo ' あなたは '. counter("./count/tst.cnt"). ' 人目の来訪者です '; 関数 counter の呼出し counter.php を 1 度だけ ( 必要なら ) 読み込む カレントディレクトリの下の count というディレクトリの下の tst.cnt というファイルにアクセス回数を記録する

ファイルの許可モードの変更 ubuntu の場合 シェルから chmod コマンドを使う chmod 変更ファイル名またはディレクトリ名 変更は u( 所有者 ),g( グループ ),o( それ以外 ) に + か - と r( 読み ),w( 書き ),x( 実行 ) で表す 例 )count に対して それ以外のユーザの書き込み権限を削除する : chmod o-w count ( 全ユーザへの権限を 3 桁の八進数で指定する方法もある ) WinSCP の場合 Web サーバで作業します ssh campus.sun.ac.jp で Web サーバにログインしてください ファイルやディレクトリを選んで プロパティをクリック パーミッションのチェックボックスで設定

出席確認 アンケート ネットワークを使った既存のサービスの中から 技術的な観点 ( 特にネットワーク関連と思われる点 ) で興味がある ( すごい 不思議などと思う ) ものを一つ挙げて どういう点に興味があるかを簡潔に述べなさい 提出方法 :sec02@sun.ac.jp 宛てにメール 提出期限 : この時間中 (14:10 まで )

次回予告 来週 再来週は冬休み 次回は 1 月 9 日 PHP の続き サーバやクライアントの情報を受け取る