スレッド表示 | フラット表示〕 全トピック 920 件中 193 番目 次≫ ≪前

フォームの値をファイルに保存できません。

created: 2006-09-08 15:38 | modified: 2006-09-08 20:26 | reply: 1

[3280] フォームの値をファイルに保存できません。

user: しんのじ | created: 2006-09-08 15:38
度々分からない事が出てきてすいません。
よろしくお願いします。

フォームに入力した値(name="option2")を,ファイルに書き込み,
その入力した値を,file関数を使って配列で取り出し,
HTMLの<option></option>に挟んで表示させるプログラムを作ったのですが・・・・
エクスプローラーを消すと,表示されていた値が表示されていません。
書き込んだ『test.txt』にも入力した文字列が消えています。
つまりファイルに保存されていないという事だと思います。

どのようにすれば,改善されるのでしょうか?

私が組んだプログラムは以下の通りになります。
基本的な事がわかっていないのかもしれません。
宜しくお願いいたします。


<?php

$filename = "test.txt";

$fpoint = fopen($filename, "w+");

$option2 = $_POST['option2'];


if($fpoint == FALSE){

$filename . "が読み込めません。<br>\n";
exit;

}

/*書き込み処理を実行する。*/

while(!feof($fpoint)){

$line = fwrite($fpoint, $option2 );//内容を書き込む
$line = fgets($fpoint); //内容を取り出す

}

print "<br>\n";


/*ファイルの内容を配列に取り込む。*/
/* test.txtを取得します。*/

$lines = file('test.txt');

print "<select>\n";

$max = count($lines);

for($i=0; $i<$max; $i++){

print "<option>" . $lines[$i] . "</option>";

}

print "</select>\n";


fclose($fpoint);

?>
reply: 3284 返信 編集 削除

[3284] fopen($filename, 'a') のモード指定

user: シロウ ホームページ | created: 2006-09-08 20:26
はじめましてシロウと申します。

fopen()のモード指定を'a'の追記モードで開きます。
file()は改行ごとに配列に格納するので、書き込み文字列に
改行コードを追加しています。

<?php
$filename = "test.txt";
$option2 = empty($_POST['option2'])?'test':$_POST['option2'];
$option2 .= "\r\n"; // 改行を足す

$fpoint = fopen($filename, 'a');
if($fpoint == FALSE){
exit($filename . "が読み込めません。<br>\n");
}
/*書き込み処理を実行する。*/
fwrite ($fpoint, $option2, strlen($option2));
fclose ($fpoint);

print "<br>\n";


/*ファイルの内容を配列に取り込む。*/
/* test.txtを取得します。*/
$lines = file($filename);

print "<select>\n";
foreach ($lines as $line){
print "<option>" . trim($line) . "</option>";
}
print "</select>\n";
?>
Parent: 3280  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 193 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑