- ベストアンサー
PHPの画像アップロードと登録プログラミングに関する質問
- phpのプログラミングについての質問です。画像をアップロードしてデーターベースに画像のパスを保存するプログラミングに取り組んでいますが、うまくいきません。詳しい方からのアドバイスをお願いします。
- 画像選択とコメントの入力ができる1の画面から、確認のために2の画面へと遷移し、最後に『登録しました』と表示される3の画面へと進むプログラムを作成しています。画像のアップロードはうまく行えており、アップロードされた画像はuploadsディレクトリに保存されています。しかし、2の画面でhiddenを使ってコメントと画像のパスを3の画面に渡そうとしているのですが、コメントは正常に渡せているのに画像のパスが渡されていないようです。hiddenで画像のパスを渡すことはできないのでしょうか?
- 2の画面(confirm.php)では、hiddenを使ってコメントと画像のパスを3の画面(entry.php)に渡そうとしています。コメントの受け渡しは成功しており、受け取ったコメントは3の画面で表示されています。しかし、hiddenで受け渡そうとしている画像のパスは受け取ることができていません。hiddenで画像のパスを受け渡す方法がわからないため、アドバイスをいただきたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
confirm.phpの15行目<input type="hidden" name="upload_name" value="<?php echo $upload_name; ?>">をsubimitのすぐ上へ移動してください。 現在のソースだと$upload_nameに値が入る前に記述されています。 プログラムで大切なのは処理される順序です。 慣れていても、順序の間違いでエラーが発生することが多々あります。 また、この手順だと「以下の内容で登録しますか?」の画面ですでに登録された状態となるので、「登録する」をクリックしentry.phpが開かれた時に画像が登録されるように修正してみましょう。 「登録しない」で前のページへ戻るボタンも欲しいですね。
その他の回答 (2)
- agunuz
- ベストアンサー率65% (288/438)
同じ回答しか書きません http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13117775688 記述する順番がマズイのでは? <input type="hidden" name="upload_name" value="<?php echo $upload_name; ?>"> のあとに $upload_name = $dir.$file_name; を書いても意味がないです。 まぁ、それ以前に$_FILES['filename']['name'](クライアントPCでのファイル名)を使うのは如何なものかと。基本的に自前で組み立てるべきです。もちろんクライアントPCでのファイル名『も』データベースに保存しておいて、それを(参考として)表示するのはかまいません。
- barusu0126
- ベストアンサー率23% (67/286)
1の画面のソースはどうなってますか?
補足
すいません1の画面はこのようになっております input.php <!DOCTYPE html> <html> <head> <meta charset=UTF-8" /> <link rel="stylesheet" href="css/style.css"> <title>入力画面</title> </head> <body> <form action="confirm.php" method="POST" enctype="multipart/form-data"> <h1>メッセージを入力してください</h1><br /> <input type="text" name="message" size="20"><br /><br /> <h3>画像を選択してください</h3> <input type="file" name="filename" size="50"><br /><br /> <input type="submit" value="登録する"> </form> </body> </html>
お礼
的確なご指摘ありがとうございます これからも色々勉強して精進しようと思います また機会があったらよろしくお願い致します