![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
キチンと動作する場合と、上手く動作しない場合のあるプログラムがあるのですが、原因が全く分かりません。いずれも、「たまに」動作します。環境は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>
No.2ベストアンサー
- 回答日時:
#1の人に追加だけどphpでは警告メッセージなど出力するレベルを変更できます。
php.iniでそれらの設定を見直してメッセージ出力の変更をしましょう。
後xamppは1.7.2からphpに5.3系が採用されています。
5.3は5.2系までからかなり変更箇所がありますから注意が必要です。
ですから今まで動いていたPHPが動かなくなる可能性があります。
(php6への足がかり的バージョン?)
この回答への補足
警告メッセージのレベルですか・・初耳でした、調べる必要がありそうですね。
ああ・・もしかしたらその「5.3」というバージョンだからかもしれません。
参考書を確認しましたらver1.7.2!ということは5.2系ということですもんね。2009/11/21発売でしたので、完璧に信用してました。
うーん・・なぜ参考書通りに記述しても動かないものがあるのか。やっと原因がわかった気がします(実はこの質問以外でもプログラムが動かないと質問をしていました)
なんとか5.2系を探し出して、動かしてみようと思います。
ご回答ありがとうございました。
間違えました!
参考書は「1.7.1」でした。小さく記述されてました・・。
焦って誤った情報を投稿してしまいました。すみません。
でもほぼ間違いなく原因これだよなぁ・・初歩的過ぎますねotz
No.1
- 回答日時:
エラーログは出力されていますか?
またはブラウザ上にエラーメッセージが出力されていませんか?
上記を提示したほうが明確な解決方法を
得ることができると思いますが。
この回答への補足
エラーは一切出てないんです・・。↓実行時の画面です。
フォトアルバム
---------------------
test (2010-02-16 01:49:24)
×(赤いバツ印です)
画像ファイル:[ ] [参照]
メモ:[ ](ここに入力した言葉が日付の隣に表示されます)
[アップロード]
こんな感じで表示されますね・・ご覧の通りエラーは出ません。
本当は画像を貼ろうとしましたが、失敗してしまいました。すみません
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP php ログイン 1 2022/11/01 00:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アップロードファイル名の文字化け
-
VBA で、スペースを含むファイ...
-
PHP5でsimple_xml_load_fileす...
-
ファイル名を変更してアップロ...
-
PHPからHTMLへの変数の受け...
-
Flaskでサーバー立ち上げに関して
-
PHPで入力フォームでデータを確...
-
phpで変数を使ってcopyできない
-
name属性が全角の場合・・・
-
<input type="hidden" >で配列...
-
ラジオボタンをsessionで使いたい
-
PHP ボタンが押されたら処理を...
-
プルダウンとCSVの連動
-
laravelを利用してコントロール...
-
PHPで郵便番号を検索し、住所を...
-
フォーム送信後の更新ボタンで...
-
配列をhiddenで
-
検索時の選択内容を保持する方法
-
HTMLで前の画面に戻る時、入力...
-
PHPでPCのローカル時刻は取得出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA で、スペースを含むファイ...
-
ファイル名を変更してアップロ...
-
アップロードファイル名の文字化け
-
PHPからHTMLへの変数の受け...
-
プログラミングC++のmapについて
-
phpで変数を使ってcopyできない
-
Flaskでサーバー立ち上げに関して
-
SQLインジェンクション対策法を...
-
POSTの項目に追加
-
パラメータを2個つけたい
-
サブフォルダ内の全てのテキス...
-
フォームで送られてきたメール...
-
PHP FTPサーバへの画像アップロ...
-
連想配列を複数条件で比較して...
-
name属性が全角の場合・・・
-
if function PHP
-
マクロ(VBA)について
-
PDOのprepareでLIKEの部分一致...
-
画像をDBに登録できない
-
テキストボックスの値を取得したい
おすすめ情報