★お問い合わせフォームを作ってみます。
lessonディレクトリにchap2ディレクトリを作ります。
chap2ディレクトリに↓こんな感じでファイルを作っていきます。
(※めんどくさい人はhtdocsディレクトリに放り込んでもいいです。たぶん。)
inquiry.html↓
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>お問い合わせフォーム</title>
</head>
<body>
<p>■お問い合わせ内容を入力してください。</p>
<form action="check_inquiry.php" method="POST">
<p>お問い合わせタイトル:
<br />
<input type="text" name="title" size="50" />
</p>
<p>お問い合わせ内容詳細:
<br />
<textarea name="message" cols="40" rows="5"></textarea>
</p>
<p>
<input type="submit" value="お問い合わせ内容の確認" />
</p>
</form>
</body>
</html>
XHTMLで文字コードはとりあえず、UTF-8にしてみました。
formのaction属性にはリンク先へのパスを入れます。
method属性は送信方式を入れます。
●
送信方式POST・・・送信できるデータ帳に制限がありません。ボリュームのあるデータを送るときなどに使う。パスワードやクレジットカード情報など外部に漏れたくない情報を扱うときに使う。なので、ここではPOSTを使いましょう。
GET・・・送信可能なデータ帳に制限あり(2083字)
URLクエリ形式で送信。
http://~com/~.php?○○=△△&□□=△△&・・・(※httpから始まって2083字)
php?○○=△△&□□(パラメータ名)=△△(値)&・・・とデータがURLで送られるので、サーバー側にアクセスログにも、このURLが記憶されます。情報がダダ漏れになる可能性があるので使い道がないと思われますが、あるそうです。聞いてもよくわからなかったです。とりあえず覚えておきましょう。
<input type="text" name="title" size="50" />
titleは受け取り側での項目名です。
50は入力欄の幅です。
(※ここでは書いてないけどvalueの値が受け取り側での項目内容です。)
textareaのmessageが受け取り側での項目名です。
<input type="submit" value="お問い合わせ内容の確認"/>
submitが送信ボタンです。valueの値が表示名です。
お問い合わせフォーム■お問い合わせ内容を入力してください。
↑こんな感じになります。
次に入力画面から送信されたお問い合わせタイトル、お問い合わせ内容詳細を受け取り、その内容を表示するPHPプログラムを作ります。
check_inquiry.php↓
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>お問い合わせフォーム</title>
</head>
<body>
<p>■お問い合わせ内容を入力してください。</p>
<p>お問い合わせタイトル:
<br />
<?php echo $_POST['title']; ?>
</p>
<p>お問い合わせ内容詳細:
<br />
<?php echo $_POST['message']; ?>
</p>
<p>
<?php echo 'こんにちは’; ?>
<?php echo 1234; ?>
</p>
<input type="submit" value="お問い合わせ内容の確認" />
</p>
</form>
</body>
</html>
●PHPタグ
<?php ~;?>
改行可です。(※基本、PHPコードは少ないときは改行なしで、多いときは改行したほうが見やすいそうです。)
<?php echo $_POST['title']; ?>
↑POSTメゾットの項目(title)の値を受け取って出力するって事です。
文字列は(※ここではtitle)は「'」「"」でコーテーションで囲みます。命令と区別する為です。
●echo文
・・・出力する。という意味です。関数ではないらしいです。自分の脳みそではここまでしかわかりません。
○タイプ1・・・文字列
<?php echo 'ドリームウィーバー買ってください。’; ?>
文字列をそのまま出力します。(※''で囲みます。)
○タイプ2・・・数値
<?php echo 1200; ?>
数値をそのまま出力します。(※''で囲まなくても大丈夫です。)
○タイプ3・・・変数
<?php echo $_POST['title']; ?>
●変数
・・・文字列や数値等の値を格納するもの(※自分には値を入れておく箱的なイメージしか覚え浮かびません。サーバーのメモリに記憶させるみたいです。)
変数の考え方としてはinquiry.htmlではtitleというパラメータでデータが送信されているので、その値を$_POST['title']変数で受け取ります。例えばお問い合わせタイトルに、「PHPについて」と入力して、お問い合わせ内容の確認をボタンをクリックすると、$_POST['title']変数には、「PHPについて」という文字列が入ります。
○変数書き方
「$~」・・・という形式です。
変数名$の後はアルファベット(大文字・小文字)か_(※アンダースコア)で始まります。その後はアルファベット(大文字・小文字)か_(※アンダースコア)か数値が任意の数続く。(基本この法則に従って入力すれば好きな名前が付けられます。でもお決まりの名前的なものがあるようです。基本英語でローマ字はだめだとか・・・英語圏に生まれた人は優遇されてます。)
例)
$123×
$abc○
$_XYZ○
これら2つのファイルを(※inquiry.htmlとcheck_inquiry.php)chap2フォルダに放り込みます。そしたら、apacheを起動してhttp://127.0.0.1/lesson/chap2/inquiry.htmlにアクセスします。↓
何か入力して「お問い合わせ内容の確認」ボタンを押してみます。
そうすると確認画面を表示されます。↓
↑ドリームウィーバー買ってください。→<?php echo 'ドリームウィーバー買ってください。’; ?>
12000→<?php echo 12000; ?>
で出力してます。おまけでやってみたので別にいれなくてもいいです。
●
nl2br関数・・・改行タグを<br>、<br />で記述します。
(※最近のPHPのバージョンでは<br />になっています。)
PHPで出力したデータでは改行タグが入っていません。
なのでnl2br関数で改行タグを入れます。
改行コードは\r(CR)か\n(LF)です。最近のphpのバージョンで入る改行タグのデフォルトは<br />なっています。なのでhtmlで作ったものだとw3cの勧告に引っかかるのでfalseを入れます。
<?php echo $_POST['message'], false; ?>
これで、<br>になります。(※このソースはXHTMLで作っているので、本当はfalseは必要ないです。)
check_inquiry.php↓
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>お問い合わせフォーム</title>
</head>
<body>
<p>■お問い合わせ内容を入力してください。</p>
<p>お問い合わせタイトル:
<br />
<?php echo $_POST['title']; ?>
</p>
<p>お問い合わせ内容詳細:
<br />
<?php
//改行部分ににBRを埋め込む
echo nl2br($_POST['message'] , false);
?></p>
<p>
<?php echo 'こんにちは’; ?>
<?php echo 1234; ?>
</p>
<input type="submit" value="お問い合わせ内容の確認" />
</p>
</form>
</body>
</html>
↑赤く表示されたところを上のように書き換えます。
//や#はコメントアウトのとき使います。(※記号から行末までがコメントアウト扱いです。)
●関数とは
・・・なんか難しいのですが引数というデータを受け取り、定められた通りの処理を実行して結果を返す一連の命令群らしいです。引数を入れれば、それに従った結果がでるって感じでいいのかな?
●引数とは
・・・プログラムの中で関数やメソッド、サブルーチン等を呼び出すときに使う値のことです。とりあえず今は引数を入れれば関数がそれに従った結果を出すと言う事で覚えます。脳みそが限界です。
↑図解にしてみました。
関数から出された結果を
戻り値(※返り値)といいます。
PR