PHP超入門 (47)


■今までのまとめ■

さて、前回までの話の流れをここでまとめると、以下のようになります。


 (1) ブラウザのフォーム上に、自分の好きな内容の文章(テキスト)を入力
   する。

                ↓

 (2) ハードディスク上に新しくその入力された文章(テキスト)ファイルを
   PHPプログラムで自動的に作成し、保存する。

                ↓

 (3) その、文章(テキスト)ファイルを丸ごとブラウザのフォーム上に読み
   込んで、ブラウザ上で自分の好きな内容に変更する。

                ↓

 (4) その変更した内容を、丸ごとPHPプログラムで自動的に上書き保存する。


そして、前回までで、上記の流れは、一応完結の形をみて、メデタシメデタシ
となった訳ですが、振り返ってみると、まだまだ不満足な点がいくつかありま
す。


まず、上記(1)の段階で、下記のようなPHPプログラムを用いたのですが、


----------------------------------------------------------
<?php
$text01 = $_POST["text01"];

$file = fopen("C:\\inetpub\\wwwroot\\php\\096-2.txt","w");

fwrite($file,$text01);

fclose($file);

print("書き込み終了しました。");
?>
----------------------------------------------------------


ここに、ちょっと納得できない点があります。

それは、「fopen("C:\\inetpub\\wwwroot\\php\\096-2.txt","w");」の行の中
に「096-2.txt」とプログラムの中に直接ファイル名を指定しており、違うファ
イル名で保存したい時には、いちいちPHPプログラムをいじらなければならない
ことです。


やはり、ここは、ブラウザなどから自由に保存するファイル名を入力し、PHPプ
ログラムの存在を意識せずに使いたいものです。


もう1つ、不満な点は、今まで延々とお話してきた例では、単純な一行テキス
トボックスであり、


あまりというか、ほとんど実用性がありません。

やはり、実用性を持たせるには、複数行テキスト領域を用いて、気軽に長文を
入力したいところです。


そこで、今回から、これを視野においたお話を展開していきたいと思います。



■まずは、入力用フォームページの準備■

何はともあれ、サーバーのハードディスクに文章(テキスト)を保存させるに
は、それを入力するための、フォーム用HTML文を準備しなければなりません。

そこで、今回は、例として、以下のものを使いたいと思います。


--------------------------------------------------------------
<html>
<head>
<title>入力用フォーム</title>
</head>
<body>
<form action="103-2.php" method="post">
ファイル名<br>
<INPUT size="20" type="text" name="title01">.txt<br>
<br>
内容<br>
<TEXTAREA rows="10" cols="15" name="content01"></textarea><br>
<input type="submit" name="bottun01" value="入 力">
</form>
</body>
</html>
--------------------------------------------------------------


このフォームでは、保存するファイル名もブラウザ上で自由に指定できますし、
内容を記入するエリアも広々として、何となく、入力する気にもなれます。

上記のHTMLで「form action="103-2.php"」と指定してあることから、フォーム
の「入 力」ボタンを押すと、記入された内容は、「103-2.php」というPHPプ
ログラムに引き渡されて、処理されることになります。



■「103-2.php」の内容■

さて、フォームから送られてきた、内容を受け取り、それをサーバーのハード
ディスク上に保存する役目を、「103-2.php」が行うことになります。
(「103-2.php」はこれから作ることになります。今はまだありません)


前回までは、フォームから送られてきた内容は1つだけでしたが、今回は、フ
ァイル名と本文の2つになります。


通常、フォームから送られてきた内容をPHPプログラムの変数に収納するには、

 $hensuu = $_POST["フォームの部品の名前"];

となりますので、今回の場合、

ファイル名は $hensuu01 = $_POST["title01"];

内容は    $hensuu02 = $_POST["content01"];

という具合になるでしょう。


そして、今までの話の中で、ハードディスクに実際に、文章(テキスト)ファ
イルを書き込む操作を担当していた


----------------------------------------------------------
<?php
$text01 = $_POST["text01"];

$file = fopen("C:\\inetpub\\wwwroot\\php\\096-2.txt","w");

fwrite($file,$text01);

fclose($file);

print("書き込み終了しました。");
?>
----------------------------------------------------------


というPHPプログラムに改造を加えることになります。


最初の2行は上でお話しましたように、単純に、コピー&ペーストだけでよい
でしょう。

また、「fwrite($file,$text01);」の部分を「fwrite($file,$hensuu02);」に
変更しておきます。


----------------------------------------------------------
<?php

$hensuu01 = $_POST["title01"];

$hensuu02 = $_POST["content01"];

$file = fopen("C:\\inetpub\\wwwroot\\php\\096-2.txt","w");

fwrite($file,$hensuu02);

fclose($file);

print("書き込み終了しました。");
?>
----------------------------------------------------------


さて、このままですと、フォーム上で書き込まれた内容は、折角入力したファ
イル名は無視されて、「096-2.txt」というファイル名で、強制的に保存されて
しまいますので、この部分を何とかしなければなりません。

で、その方法は?といったところですが、またまた話が長くなりそうなので、
これについては、次回に繰り越し、ということで、ご容赦ください。

多分、2通りの方法があるんじゃないかと思います。
(↑結果としては同じですが。。。)

新しく「パソコン(PC)初心者向け パソコンサポートサービス」を始めました。
詳細は専用サイトを御覧ください。

上記の内容はシリーズとしてメールマガジンで配信しています。

42歳のオヤジでもできた!パソコンサーバー化計画 (マガジンID:0000114576)

メールマガジン登録  メールアドレス:
メールマガジン解除  メールアドレス:

Powered by まぐまぐ

copyright(c) 2002-2007 E&A工房 All rights reserved.