今回から、
実行環境として、
これから作成するWebアプリケーション
今回作成するWebアプリケーションは、

図2 入力された文字列をすぐ下に表示

ソースコードの作成
まずはテキストエディタもしくは開発環境でソースコードを作成します
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>PHPによるWebアプリケーション(エコー)</title>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
</head>
<body>
<h3>PHPによるWebアプリケーション(エコー)</h3>
<form method="post" action="<?php print $_SERVER[ 'PHP_SELF' ]; ?>"><p>
<input type="text" name="echo" size="50">
<input type="submit" value="表示する">
</p></form>
<p><?php print htmlspecialchars( $_POST['echo'], ENT_QUOTES ); ?></p>
</body>
</html>
リスト1内のPHPプログラムは、
リスト1で<?php ~ ?>に囲まれている部分
-
(a)
<?php print $_SERVER['PHP_
SELF']; ?>
このWebページのURL(変数) を出力 -
(b)
<?php print htmlspecialchars( $_POST['echo'], ENT_
QUOTES ); ?>
フォームの下に表示される文字列(関数の戻り値) を表示
ここで(a)(b)は変数や関数の戻り値を表示(出力)する処理です。(a)は画面表示には現れないものの、
(b)は、
文字列を表示させるときの注意
フォームから入力された内容をそのまま表示させることには、
- ※ ウェブサイトにおける脆弱性解説 2.クロスサイト・
スクリプティング (独立行政法人 情報処理推進機構)
これの何が問題かというと、
このような事態を防ぐための最も基本的な方法は、
' | ' |
" | " |
< | < |
> | > |
ただ、
フォームから入力されたデータ
それ以前に、
リスト1では、
$_POSTとは、
そして$_POST['echo']というのは、
チェックボックスや<select multiple>のように複数選択が可能な場合は、
Webサーバのディレクトリにコピー
ソースコードが完成したら、
そうすると、http://(ドメイン名)/php/
というURLでアクセスできるようになります。ソースコードを作成しているのと同じ環境の場合は、
Webブラウザからアクセス
リスト1に対してWebブラウザからアクセスできるようにするために、
うまく実行できると、



データが表示される場所を示す
これでPHPプログラムがうまく実行できるようになりました。ですが、
そのためには、
リスト2 データが入力される前のメッセージを設定
<?php
$echo = $_POST['echo']; // フォームに入力されたデータ
if ( $echo != NULL ) {
// フォームにデータが入力されたとき
$echo = htmlspecialchars( $echo, ENT_QUOTES );
} else {
// データが入力されていないとき
$echo = '入力されたメッセージがここに表示されます';
}
?>
<!DOCTYPE ……以下リスト1が入る
変更前 <?php print htmlspecialchars( $_POST['echo'], ENT_QUOTES ); ?>
変更後 <?php print $echo; ?>
うまくいったら今回は終わりです。お疲れさまでした。