
futaba.phpを使用した掲示板を使用して、管理者ページから自分で書き込んだテストレスの削除を繰り返し行っていたところ、
突然レスを書き込んだ後に「error load log」という表示が現れて、書き込みが一切出来なくなってしまいました。
個人的には、書き込みが出来なくなる直前に、全てのレス(すべて自分のIPからの書き込み)を一気に削除してしまった事が何かの原因の様に思うのですが、対処法がわかりません。
初心者染みた質問で申し訳ありませんが、どなたか解決法を教えてください。お願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
解決した場合、元のスクリプトを公開しているページで、現象を知らせた方がいいですよ。
『一気に削除』が、PHPの操作上での事であれば完全にバグですから。
ログファイルの中身を手で削除したのだとすれば、バグではないのでしょうが間違った操作でエラーを引き起こしてしまったという、操作ミスの報告。
バグ報告を受けることで、スクリプト作者はバグを修正できます。
操作ミス報告を受けることで、スクリプト作者はユーザーが犯す間違いを知り、改善に手を付けることができます。
公開はスクリプト作者が好意で行っていることなので、修正、改善もしなければならない義務はないですが。
そのスクリプト作者の好意に対して、バグ報告、操作ミスの報告、改善や機能追加の提案は、ユーザーからの好意、あるいは礼儀です。
それに返事を出すことを含め、仮に致命的なバグであっても対応するかしないかは、作者の自由ですけどね。
一応念のため。
No.3
- 回答日時:
結論:img.logを削除して再度スクリプトを走らせる。
恐らくこのファイルは中身が既に空っぽなので、削除しても痛くない。再発を防ぐためには、最低1件(レス番号1番を残すのが無難)のレスは削除せず残すこと。
せっかくなのでデバッグ。
まず、futaba.phpを「error load log」で検索する。すると以下のコードが見つかる。
//ログ読み込み
$fp=fopen(LOGFILE,"r+");
flock($fp, 2);
rewind($fp);
$buf=fread($fp,1000000);
if($buf==''){error("error load log",$dest);}
つまり、LOGFILEという名前のファイルの中身が空か、読み込みに失敗している可能性が高い。
LOGFILEっていうのが何かを調べる。検索すると24行目に
define("LOGFILE", 'img.log');
がある。これが問題のログファイル名。
このファイルの初期化処理はinitという関数で行なわれているのだが、この処理は
・ファイルが存在しない場合は以下の内容でファイル作成
"1,2002/01/01(月) 00:00,名無し,,無題,本文なし,,,,,,,,\n"
という方法で初期化している。
従って、中身が空のファイルが存在する場合は、初期化処理が行なわれず、しかも最初に書いたように読み込みも失敗したと判定されるため、投稿者のようなニッチもサッチもいかない状態に追い込まれるわけだ。
No.2
- 回答日時:
想像ですが。
1)レスをすべて削除してしまったことにより、記事(投稿)が存在しなくなった。
2)そのことにより、PHPソース内でログファイル自体を削除した。(そのようなロジックになっていると仮定)
3)表示(読み込み)の際に、ログファイルが存在しないため、「error load log」と表示、処理を中断するため書き込みフォームが表示されなくなった。
もしそうだとすると、空のログファイルを用意して書き込み可能にパーミッションを設定すればOKの気がしますね。
ファイルは存在しても、ファイルにデータが一件もないと、「error load log」となるバグかも知れません。
その場合、そのシステムの最初の状態(ダウンロード(?)した直後)のログファイルを調べてみて、どのようなデータが入っているかがわかればバグを修正できるかも知れません。
どうやってもダメという最悪の状態でも、最初の状態のログファイルをアップロードし直して、パーミッションを設定すれば直ると思いますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
composerをインストールしたい...
-
PHPのエラーの解消法について教...
-
PHP8でWarning:Undefined varia...
-
phpの問い合わせフォームを作っ...
-
phpのheader("Location:#pos")...
-
【初心者】XAMPPのapacheの(恐...
-
入力フォームの空白や改行を制...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
SplFileObject を利用したとき...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
-
PHPからCSVをアップロード後、m...
-
[php初心者]サイトを見てデータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字コードが混在するテキスト...
-
file()を使う時のファイルロック
-
ログイン認証機能には、どんな...
-
index.htmと index.phpが二つある
-
tmpファイルが消えない
-
phpを使った外部ファイル化を・...
-
futaba.phpでレス削除のテスト...
-
$_GETについて
-
is_fileでファイルが存在してい...
-
PHPのメールフォームから別ペー...
-
PHPのif文でその処理を途中で抜...
-
FTPコマンドでディレクトリごと...
-
フォントの色を変えるには?
-
Subversionのリポジトリの削除
-
PHPでfatal errorが出ても無視...
-
「クラス関数」「メンバ関数」...
-
CFileDialogの最初のディレクト...
-
「include()」関数の使い方につ...
-
【file_exists】ファイルが存在...
-
.phpと.incファイルの違いはな...
おすすめ情報