###前提・実現したいこと
簡易掲示板の作成を目標にしています。
フォームで送信した値を受けとり、「{投稿番号}<>{名前}<>{コメント}<>{投稿された時間}」という感じで一行ずつテキストファイルに保存したいと考えています。
投稿番号は、最後の投稿番号に+1した値を入れます。
###発生している問題・エラーメッセージ
「{投稿番号}<>{名前}<>{コメント}<>{投稿された時間}」を一行として投稿順にテキストファイルに保存することはできたのですが、投稿番号が2番から始まってしまいます。
また、まわりくどい書き方や無駄な行が多いと思いますので、もっと良い書き方があれば、ぜひご教授ください。
よろしくお願いします。
エラーメッセージ
###該当のソースコード
PHP
1<?php 2 header('Content-Type: text/html; charset=UTF-8'); 3 date_default_timezone_set('Asia/Tokyo'); 4 5 $filename1 = "text.txt"; 6 $filename2 = "text_count.txt"; 7 8 $name = $_POST["name"]; 9 $comment = $_POST["comment"]; 10 $time = date("Y/m/d H:i:s"); 11 12 $data1 = "$name.'<>'.$comment.'<>'.$time."; 13 14 $fp1 = fopen($filename2, 'a'); 15 fwrite($fp1, $data1."\n"); 16 fclose($fp1); 17 18 19 $fp1 = fopen($filename2, 'r+'); 20 flock($fp1, LOCK_EX); 21 22 $count = 0; 23 while (fgets($fp1) !== false) { 24 $count++; 25 } 26 27 flock($fp1, LOCK_UN); 28 fclose($fp1); 29 30 $postNumber = $count + 1; 31 32 $data2 = "$postNumber.'<>'.$name.'<>'.$comment.'<>'.$time."; 33 34 $fp2 = fopen($filename1, 'a'); 35 fwrite($fp2, $data2."\n"); 36 fclose($fp2); 37?> 38
###試したこと
投稿番号は、行数をcountして、その値に+1する方法にしました。
$filename2 = "text_count.txt"に投稿番号以外の「{名前}<>{コメント}<>{投稿された時間}」を一行ずつ保存して、その行数を数えて+1した投稿番号と合わせて、$filename1 = "text.txt"に「{投稿番号}<>{名前}<>{コメント}<>{投稿された時間}」を保存しようとしました。
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答2件
あなたの回答
tips
プレビュー