TODAY: YESTERDAY:
TOTAL:

Lesson10-1 〜一行掲示板の改良(1つのページにまとめる)〜
■Lessonを終えると以下のようなPHPプログラムが作れます。


Lessonサンプル

まずは作業用のフォルダを作成しましょう。「C:\Program Files\Apache Group\Apache2\htdocs」に「lesson10」というフォルダを作成してください。
さらに、Lesson10フォルダの中に「data.txt」という名前の空のファイルを作成してください。

■What's

Lesson7で一行掲示板が完成しましたが、少し改良したいと思います。まず、form.phpとsample01.phpに別れていたのを1つにします。

■サンプルプログラム

テキストエディタに以下のように書き込んで、「lesson10」フォルダの中に「form.php」として保存しましょう。

<?php
$body = $_REQUEST["body"];
$body = $body."\n";


if($_REQUEST["write"] != ""){
$fp = fopen("./data.txt","a");
fputs($fp,$body);
fclose($fp);
}

?>
<html>
<head>
<title>一行掲示板</title>
</head>
<body>
<h1>一行掲示板</h1>
書き込む内容を入力してください。<hr>
<form name="form" action="<?php print $_SERVER['PHP_SELF']; ?>" method="POST">
<input name="body" type="text" size="40">
<input name="write" type="submit" value="書込"><hr>
<?php
$data = file("./data.txt");
for($i=0; $i<sizeof($data); $i++){
print "記事NO.${i}:${data[$i]}<br>\n<hr>";
}
?>
</form>
</body>
</html>

できましたら、ブラウザのアドレスに
http://localhost/lesson10/form.php」と入力してアクセス!!
ロリポップ!
さくらのレンタルサーバ
などのレンタルサーバー使ってる方はlocalhostのところはドメイン名になります。
(簡単に安くネットショップを開きたい方はこちら!)

さて、如何でしょうか?ちゃんと表示されましたでしょうか?

■解説

$body = $_REQUEST["body"];
$body = $body."\n";

Lesson7にも説明がありますが、テキストボックスの値を$bodyに代入して、ファイルに書き込む場合に1行1データとなるように最後に改行を付け足しています。

<form name="form" action="<?php print $_SERVER['PHP_SELF']; ?>" method="POST">

さて、今日の本題はコレですね。actionに見慣れないモノが!コレ、自分自身を呼び出しているます。自分自身つまり、

<form name="form" action="./form.php" method="POST">

コレと同じことになります。1つ目のように書いておけば、自分が扱っているファイル名を気にすることなく書くことができます。

<?php
if($_REQUEST["write"] != ""){
$fp = fopen("./data.txt","a");
fputs($fp,$body);
fclose($fp);
}

さて、お次。「クリックが押されたら書き込む」ということにしたいので「もし、書込ボタン(今回は、ボタンのnameはwrite)が押されたら書き込む」という風に考えていきます。

if($_REQUEST["write"] != "")

ココがまさにソレです。ちょっと見慣れないモノが出てきましたね?「!」びっくりまーく!

●予備知識

「!」は論理演算子といいまして「否定」を表します。今回の使い方は、「$_REQUEST["write"] != ""」つまり、「ボタンが空じゃなければ真(True)である」→「ボタンが押されたら真(True)である」ということになります。「""」は空=何も無い。ということを意味します。!を使用するので、空を否定(空じゃない)ということになります。ちょっとわかりづらいとは思いますがよく使いますので理解しておきましょう。その他の論理演算子を載せておきます。

論理演算子

  • $a and $b 論理積・・・$aおよび$bの両方がともに真の場合に真
  • $a or $b 論理和・・・$aまたは$bのどちらかが真の場合に真
  • $a xor $b 排他的論理和・・・$aまたは$bのどちらかが真でかつ両方とも真でない場合に真
  • !$a 否定・・・$aが真でない場合に真
  • $a && $b 論理積・・・andと同じ
  • $a || $b 論理和・・・orと同じ

ということで、ボタンが押されるとTrueと判断し{}の中を実行します。{}の中はファイルに$bodyを書き込むプログラムです。

さて、如何でしたでしょうか?今回は「論理演算子」なるものを使ってみましたが、名前がちょっと難しい感じがしますが見慣れてしまえばなんてことはないデス。さて、次はもうちょっと改良して何も入力しなかった時は、書き込めないようにしましょう。入力チェックです!

このLessonが役に立った方は、1クリックお願いします!PHPランキング

■スポンサードリンク