• ベストアンサー

PHPで作成した2つのプログラムが不安定だが、原因不明。フォトアルバム編

キチンと動作する場合と、上手く動作しない場合のあるプログラムがあるのですが、原因が全く分かりません。いずれも、「たまに」動作します。環境はWin XAMPP1.7.2を使用しました。こちらはフォトアルバム編です。よろしくお願いします。 <?php //---------------------------------------------------------- //フォトアルバム //--------------------------------------------------------- //変数の初期化 $updir = "files/"; $savefile = "photoalbum.txt"; $log = array(); //ログファイルの読み込み if(file_exists($savefile)){$log=file($savefile);} //ファイルがアップロードされたか判定 if(is_uploaded_file($_FILES['photo']['tmp_name'])){ //アップロードされたファイルのパラメータを取得 $tmp = $_FILES['photo']['tmp_name']; $name = $_FILES['photo']['name']; //保存するファイル名を決める $head = date("YmdHis");//重複しないように日付ヘッダにする $fname = $updir.$head."-".urlencode(basename($name)); //一行メモを保存するためのプログラム $memo = $_POST['memo']; $memo = str_replace("\r","",$memo); $memo = str_replace("\n","",$memo); $memo = str_replace("\t","",$memo); //一時領域から指定フォルダへファイルを移動させる if(move_uploaded_file($tmp, $fname)){ //ログファイルへ日付、ファイル名とメモを保存 $date = date("Y-m-d H:i:s"); $newlog = "{$date}\t{$fname}\t{$memo}\n"; array_unshift($log,$newlog); file_put_contents($savefile,$log);//ファイルへ保存 } } //ログの内容をHTMLに変換する $html = ""; foreach ( $log as $line){ list($date,$fname,$memo) = split("\t",$line); $body = htmlspecialchars($body); $html .= "<hr/><h3>$memo($date)</h3><p><img src='$fname'/></p>"; } //HTMLの表示 ?> <html><body><h1>フォトアルバム</h1> <?php echo $html; ?><hr/> <!---画像の投稿フォーム---> <form enctype= "multipart/form-data" method="POST"> 画像ファイル: <input name="photo" type="file" /><br/> メモ:<input type="text" name="memo" size="30"/><br/> <input type="submit" value="アップロード" /> </form> </body></html>

質問者が選んだベストアンサー

  • ベストアンサー
  • torntorn
  • ベストアンサー率22% (19/84)
回答No.2

#1の人に追加だけどphpでは警告メッセージなど出力するレベルを変更できます。 php.iniでそれらの設定を見直してメッセージ出力の変更をしましょう。 後xamppは1.7.2からphpに5.3系が採用されています。 5.3は5.2系までからかなり変更箇所がありますから注意が必要です。 ですから今まで動いていたPHPが動かなくなる可能性があります。 (php6への足がかり的バージョン?)

maca_to
質問者

お礼

間違えました! 参考書は「1.7.1」でした。小さく記述されてました・・。 焦って誤った情報を投稿してしまいました。すみません。 でもほぼ間違いなく原因これだよなぁ・・初歩的過ぎますねotz

maca_to
質問者

補足

警告メッセージのレベルですか・・初耳でした、調べる必要がありそうですね。 ああ・・もしかしたらその「5.3」というバージョンだからかもしれません。 参考書を確認しましたらver1.7.2!ということは5.2系ということですもんね。2009/11/21発売でしたので、完璧に信用してました。 うーん・・なぜ参考書通りに記述しても動かないものがあるのか。やっと原因がわかった気がします(実はこの質問以外でもプログラムが動かないと質問をしていました) なんとか5.2系を探し出して、動かしてみようと思います。 ご回答ありがとうございました。

その他の回答 (1)

  • takubou05
  • ベストアンサー率52% (11/21)
回答No.1

エラーログは出力されていますか? またはブラウザ上にエラーメッセージが出力されていませんか? 上記を提示したほうが明確な解決方法を 得ることができると思いますが。

maca_to
質問者

お礼

失礼ながら、お礼がまだでした。 ご回答ありがとうございました。

maca_to
質問者

補足

エラーは一切出てないんです・・。↓実行時の画面です。 フォトアルバム --------------------- test (2010-02-16 01:49:24) ×(赤いバツ印です) 画像ファイル:[ ] [参照] メモ:[ ](ここに入力した言葉が日付の隣に表示されます) [アップロード] こんな感じで表示されますね・・ご覧の通りエラーは出ません。 本当は画像を貼ろうとしましたが、失敗してしまいました。すみません

関連するQ&A