• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mysqlに保存した画像を表示したい)

MySQLに保存した画像を表示する方法

このQ&Aのポイント
  • MySQLに保存した画像を表示する方法について教えてください。
  • 質問者はフォームから画像をMySQLに保存し、画像を表示させたいと考えています。
  • 質問者はview.phpで画像を表示しようとしていますが、画像が表示されず困っています。どうすれば解決できるでしょうか?

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

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.2

foreachループ内に if文で分岐させて、画像用だけescapeしないか、base64_encodeするか、とすればよいでしょう。 foreach ($_SESSION['regist'] as $s_key => $s_val) { if( $s_key != 'image' ){ $$s_key = mysql_real_escape_string($s_val); }else{ $$s_key = base64_encode($s_val); } } // base64_encode したなら、取り出し時に base64_decode すること

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

複数のことをが絡まっていそうなのでひとつひとつクリアして いってはいかがでしょうか? (1)insert時のアップロード処理 (2)アップロードにセッションを使う部分 (3)セッションにつかっている配列処理 (4)insert時のmysql_real_escape_string()の利用方法 (5)MySQLのデータ型の問題 (6)その他何らかの問題がありうまくデータが保存されていない (7)表示のデータ抽出方法の問題 (8)エスケープされた箇所が戻っていない (9)MIMEの問題 すべての部分があやしいのでなんともいえません。 可能性としてはエスケープ処理の問題がかなりあやしそうですが・・・。 画像以外のデータもつかって不正がないかデバッグしていくしかないでしょう。

noname#65793
質問者

補足

お返事ありがとうございます。 まる二日悩んでも解決せずで困っておりました...>< 引き続き試していたのですが結果として mysql_real_escape_stringをせずにinsertすると正常に画像が 表示するようになりました。 原因がなぜかはわかりませんが >(4)insert時のmysql_real_escape_string()の利用方法 が原因なようでした。 利用方法についてですがforeachで一括で変換しています。 foreach ($_SESSION['regist'] as $s_key => $s_val) { $$s_key = mysql_real_escape_string($_SESSION['regist']["$s_key"]); } 動作としましては例えば $_SESSION['regist']['hoge'] $_SESSION['regist']['hoge1'] とある場合 $hoge = mysql_real_escape_string($_SESSION['regist']['hoge']) $hoge1 = mysql_real_escape_string($_SESSION['regist']['hoge1']) となり$hoge,$hoge1をinsertしています。 mysql_real_escape_stringが鍵となっているようなのですが 外すわけにもいかず悩みどころです。

関連するQ&A

専門家に質問してみよう