• Tidak ada hasil yang ditemukan

インターネット技術特論

N/A
N/A
Protected

Academic year: 2024

Membagikan "インターネット技術特論"

Copied!
3
0
0

Teks penuh

(1)

インターネット技術特論

D:SSI,PHP,eRuby

山口 実靖

http://www.ns.kogakuin.ac.jp/~ct13140/inet

SSI (Sever Side Include) PHP , eRuby など

ロジック と

プレゼンテーション(デザイン) の 分離

インターネット技術特論D-3

CGI は print文 地獄

<html>

<head>

<title>

Sane's Page </title>

</head>

<body>

Welcome to My Web Page <br>

hoge<br>

fuga<br>

piyo<br>

You are the 1234th visitor.

</body>

</html>

printf("<html>¥n");

printf(" <head>¥n");

printf(" <title>¥n");

printf(" Sane's Page¥n");

printf(" </title>¥n");

printf(" </head>¥n");

printf(" <body>¥n");

printf(" Welcome to My Web Page¥n");

printf(" <br>¥n");

printf(" hoge<br>¥n");

printf(" fuga<br>¥n");

printf(" piyo<br>¥n");

printf(" You are the ¥n");

printf(" %dth visitor. ¥n", cnt);

printf(" </body>¥n");

printf("</html>¥n");

ページの見た目

(

左の

HTML)

を変更したくなったら,

右のプログラムのソースコードを変更しなくてはならない.

しかし,

デザイナーにプログラムの変更は難しすぎる.

技術者にデザインの変更は難しすぎる.

デザイン と ロジック が,分離されていない

出力 出力のために必要なプログラム

多くの場合,もっと汚い!

インターネット技術特論D-4

SSI (Server Side Include)

• SSI (Server Side Include)

サーバで通常のHTMLファイルに,テキストを埋め 込んでからブラウザに渡すことが可能

インターネット技術特論D-5

SSI (#include file)

This is <b>000.shtml</b>

<!--#include file="copyright.txt" -->

<hr>

Powered by <I>Saneyasu Yamaguchi</I>

000.shtml

copyright.txt

This is <b>000.shtml</b>

<hr>

Powered by <I>Saneyasu Yamaguchi</I>

ブラウザに渡される内容

ブラウザで"000.shtml"に対して

読み込みをかけると サーバ側でINCLUDE処理 ポイント されてから,

ブラウザに渡される

インターネット技術特論D-6

余談 (dateコマンド)

• Un*x系OSには date というコマンドがある.

– date

→ 現在時刻を表示する.

– date +%Y/%m/%d_%H:%M:%S

→ 現在時刻を"2010/10/19_16:20:01"の形 式で表示する.

– date 010203042003

→ 現在時刻を2003年01月02日03時04分に 設定する.ただし,管理者権限が必要.

インターネット技術特論D-7

SSI (#exec cmd)

This is <b>001.shtml</b>

<hr>

Now :

<!--#exec cmd="/bin/date" -->

001.html

This is <b>001.shtml</b>

<hr>

Now :

Mon Oct 19 14:40:01 JST 2020

ブラウザに渡される内容

ブラウザで"001.shtml"に対して

読み込みをかけると ポイント

サーバ側でcmdを実行して,

その結果(出力)が 挿入されてから渡される.

インターネット技術特論D-8

SSI 利用方法 ( 工学院大学 )

• SSIに関するルール:

– SSIを用いる場合,ファイル名を"*.shtml"にする

• 利用方法はWebサーバの設定による.

上記は,工学院大学のルール.

– 設定ファイル "/etc/httpd/conf/httpd.conf"

AddType text/html .shtml

AddOutputFilter INCLUDES .shtml

(2)

インターネット技術特論D-9

SSI式カウンタを含むページ 0/2

#include <stdio.h>

#include <stdlib.h>

void main(void) { int cnt;

FILE *fp;

fp = fopen("cnt.txt", "rt");

if( fp == NULL ){

cnt == 0;

printf("file read NG.<br>¥n");

} else {

char buf[1024];

fread( buf, 1, 1023, fp);

buf[1023] = '¥0';

cnt = atoi(buf);

fclose(fp);

}

printf("%d", cnt);

cnt ++;

fp = fopen("cnt.txt","wt");

if( fp == NULL ){

printf("file write NG.<br>¥n");

} else {

fprintf(fp, "%d", cnt);

fclose(fp);

} }

cnt.c

「カウンタの数字」だけを 表示するプログラムを用意しておく.

ct13140@green[101]:cc cnt.c -o cnt ct13140@green[102]:cat cnt.txt 22

ct13140@green[103]:./cnt 22

ct13140@green[104]:cat cnt.txt 23

インターネット技術特論D-10

SSI式カウンタを含むページ 1/2

This is <b>002.shtml</b>

<hr>

You are the

<!--#exec cmd="./cnt" -->th visitor.

002.shtml

<!--#exec cmd="./cnt" -->

以外の部分は,普通にHTMLを記述すればよい.

ロジック と デザイン が分離された.

インターネット技術特論D-11

PHP

• 動的Webページ (Webアプリケーション) の作成に特化 したプログラミング言語,その処理系

– HTMLの中にスクリプトを埋め込むことが可能

• SSIの様に

– サーバサイドスクリプト言語

• つまり,処理(実行)はサーバにて行われる.

– かつては, PHP=Personal Home Page – 今は,「PHP: Hypertext Preprocessor」

インターネット技術特論D-12

PHP の例

<html>

<head>

<title>PHP Test</title>

</head>

<body>

<ol>

<li>(^o^)</li>

<li>

<?php

echo 'Hello, Wordl!';

?>

</li>

</ol>

<body>

</html>

<html>

<head>

<title>PHP Test</title>

</head>

<body>

<ol>

<li>(^o^)</li>

<li>

Hello, Wordl! </li>

</ol>

<body>

</html>

注意:工学院大学のサーバでは,この方法ではPHPは使用できません.

サーバに左のファイル(000.php)を置いておく.

|ブラウザから000.phpに対して読み込み要求があると,

「サーバ上で」スクリプト部が処理(実行)され,右の内容(000.php変換後)に変換される.

変換後の内容(000.php変換後)が,サーバからブラウザに渡される.

000.php 000.php変換後

特徴

HTMLを(ほぼ)そのまま書いていけばよい.

実行(処理)はサーバで行われる.

スクリプト言語(インタープリタ型)でコンパイルは不要

インターネット技術特論D-13

PHP の例

<?php

echo date('y/m/d'), ' ';

echo strftime('%H:%M:%S',time()), '<br>';

system('/usr/bin/hostname');

?>

注意:工学院大学のサーバでは,この方法ではPHPは使用できません.

←これを 001.php として,Webサーバに 置いておく

20/10/19 14:40:01<br>sweb01

001.php

←サーバ上でこの様に変換されてから ブラウザに転送される.

インターネット技術特論D-14

PHP 利用方法 ( 工学院大学 )

• 本講義では,基本的にPHPは扱わない.

• PHPは

– sweb01 (www.ns.kogakuin.ac.jp) にインストール されている.

インターネット技術特論D-15

PHP 利用方法 ( 工学院大学 )

#!/usr/bin/php

Content-type: text/html

<html>

<head>

<title>PHP Test</title>

</head>

<body>

<ol>

<li>(^o^)</li>

<li>

<?php

echo 'Hello, Wordl!';

?>

</li>

</ol>

<body>

</html>

000.cgi

注意点 (1)最初の3行目に,

#!/usr/local/bin/php Content-type: text/html と記述する.

(2)ファイル名を"*.cgi"にする.

(3)実行権限を付与する.

例えば,

chmod 755 000.cgi

工学院大学以外の多くのサーバの設定では,

・(1)の3行は不要であり,

・ファイル名は"*.php"であり,

・実行権限は不要.

インターネット技術特論D-16

PHP 利用方法 ( 工学院大学 )

> hostname sweb01

> ls -l 000.cgi -rwxr-xr-x 000.cgi

> ./000.cgi

Content-type: text/html

<html>

<head>

<title>PHP Test</title>

</head>

<body>

<ol>

<li>(^o^)</li>

<li>

Hello, Wordl! </li>

</ol>

<body>

</html>

sweb01 (www.ns.kogauin.ac.jp)上にて 実行し,

変換後の内容を確認することができる.

green.ns.kogauin.ac.jpではなく,

www.ns.kogauin.ac.jpにloginする.

(3)

インターネット技術特論D-17

eRuby

• eRuby (embedded Ruby)

• HTMLの中にRubyスクリプトを埋め込むことが 可能.

インターネット技術特論D-18

eRuby

• <% ~~ %>

~~のスクリプトを実行

• <%= ~~ %>

~~を評価し,表示.

インターネット技術特論D-19

eRuby

<html>

<head><title>

eRuby

</title></head>

<body>

<%

a = "Hello,"

b = "World!"

%>

<h1><%= a %></h1>

<h2><%= b %></h2>

</body>

</html> 変換してからブラウザに渡される

<% ~~ %>

~~のスクリプトを実行

<%= ~~ %>

~~を評価し,表示.

<html>

<head><title>

eRuby

</title></head>

<body>

<h1>Hello,</h1>

<h2>World!</h2>

</body>

</html>

000.rhtml 000.rhtml変換後

インターネット技術特論D-20

eRuby使用方法 (工学院大学)

#!/usr/bin/erb -->

<% print "Content-type: text/html¥n¥n<!--¥n" %>

<html>

<head><title>eRuby</title></head>

<body>

<b>hello</b>

</body>

</html>

やや強引な使用方法.

erbをcgiとして呼び出す.

(1)ファイル名を“*.cgi”にする.

(2)ファイルに実行権限を与える.

(3)ファイルの先頭に上記の赤色部を記述する.

000.cgi

インターネット技術特論D-21

eRuby 使用方法 ( 工学院大学 )

#!/usr/bin/erb -->

<% print "Content-type: text/html¥n¥n<!--¥n" %>

<html>

<head><title>eRuby</title></head>

<body>

<b>hello</b>

</body>

</html>

000.cgi 変換前

<!--

#!/usr/bin/erb -->

<html>

<head><title>eRuby</title></head>

<body>

<b>hello</b>

</body>

</html>

000.cgi 変換後

インターネット技術特論D-22

eRuby 使用方法 ( 工学院大学 )

• サーバ上で,実行(変換)結果を確認する ./000.cgi

インターネット技術特論D-23

eRuby の例

<html>

<head><title>eRuby</title></head>

<body>

<h1>eRuby</h1>

<ul>

<% 5.times do | i | %>

<li> <%= i %> <br></li>

<%end%>

</ul>

</body>

</html>

<html>

<head><title>eRuby</title></head>

<body>

<h1>eRuby</h1>

<ul>

<li> 0 <br></li>

<li> 1 <br></li>

<li> 2 <br></li>

<li> 3 <br></li>

<li> 4 <br></li>

</ul>

</body>

</html>

002.cgi 変換前

002.cgi 変換後

Referensi

Dokumen terkait

作業流程/ 名稱 職務 作業條件 作業週期 作業環境 機械/設備/ 工具 能源/ 化學物質 可能造成危害 (複選) 作業資格條件 軋輥更換作業 技術員 1-3次/天 軋延區 /噪音 固定式起重機、 工 作 輥 、 中 間 輥、背輥 工作輥、中間 輥、背輥 夾傷、燙傷、 壓傷 襯紙插入作業 技術員 6-8次/天 軋延區 /噪音

これまでの取組 SciREX※政策形成実践プログラム本プログラムは平成25年度のみ ・・・具体的政策課題を設定して行う、選択可能な複数 の政策手段とその社会的・経済的影響評価で構成される「政策オプション」の作成。 基盤的研究・人材育成拠点の形成 ・・・大学院等が行う、「政策のための科学」に資する人材育成拠点の形成を支援。 公募型研究開発プログラムの推進

常識題 音才IV-P1-3 教師引導的曲目背景研討。 音才IV-K2 藉由音感與音樂讀寫視唱的進階 學習,深化音樂的記錄與傳達。 音才IV-C1 設定主題,進行音樂簡史及樂器 概論的相關分析與比較,培養審 美的基礎知能。 音才IV-C2 透過樂曲資訊於時代背景與地區 特色做統整,梳理音樂與文化關 係。 音才IV-L3

研修内容等 【1日目】講義1は、東日本大震災後におけ る、復興に向けた計画や取り組みについての 講演だった。今後の津波を想定した住宅地、 商業地、娯楽施設などの土地利用区画や堤防 の高さの設定など、自治体によって設計が異 なっていた。被災地の方々の広範多岐に渡る 要望を汲みながら、復興の立案、実践する難 しさや苦労話を知ることができた。 講義 2