質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

537閲覧

ブラウザ上に画像が表示されない

I_d

総合スコア28

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2022/07/04 03:03

現在DBに保存した画像をtop.php上に出力させる作業を行っているのですが、画像が出力されない状況です。
流れとしては
database.php←Image.php→UserController.php→top.phpとなっています。

DBから呼び出した画像はtop.phpに出力しようとしているのですが、下記の画像の様になってしまい、画像が見れない状態となっています。
イメージ説明

階層図としては
publicフォルダ - imgフォルダ - jpgファイル
|
Views - Users - top.php

階層の影響もあると思い、top.phpと同じ階層にもimgタグを置きましたが、上の画像と同じく画像が表示されない状況です。

database.php

1<?php 2define('DB_HOST', 'localhost'); 3define('DB_USER', 'root'); 4define('DB_PASSWD', 'root'); 5define('DB_NAME', 'recipe');

UserController.php

1<?php 2 3require_once(ROOT_PATH .'/Models/User.php'); 4require_once(ROOT_PATH .'/Models/Recipe.php'); 5require_once(ROOT_PATH .'/Models/process.php'); 6require_once(ROOT_PATH .'/Models/Image.php'); 7 8class UserController 9{ 10 private $request; //リクエストパラメータ(GET,POST) 11 private $User; //Userモデル 12 private $Recipe; //Recipeモデル 13 private $Process; //Processモデル 14 private $Image; //Imagesモデル 15 16 public function __construct() 17 { 18 //インスタンス化で最初に走る処理 19 //get['id']とpostはrequestに入る 20 $this -> request['get'] = $_GET; 21 $this -> request['post'] = $_POST; 22 23 //モデルオブジェクトの生成 24 $this -> User = new User(); 25 $dbh = $this -> User -> getDbHandler(); 26 $this -> Recipe = new Recipe($dbh); 27 $this -> Process = new Process($dbh); 28 $this -> Image= new Image($dbh); 29 } 30 31 //Imageテーブル 32 public function savefile($user_id, $recipe_id, $filename, $filepath) 33 { 34 $image = $this -> Image -> savefile($user_id, $recipe_id, $filename, $filepath); 35 $params = $image; 36 return $params; 37 } 38 39 public function getImage($user_id) 40 { 41 $getImage = $this -> Image -> getImage($user_id); 42 $params = $getImage; 43 return $params; 44 } 45}

Image.php

1<?php 2require_once(ROOT_PATH .'/Models/Db.php'); 3 4class Image extends Db 5{ 6 private $table = 'recipes'; 7 8 public function __construct($dbh = null) 9 { 10 parent::__construct($dbh); 11 } 12 13 /** 14 * ファイルデータの保存 15 * @param strings $user_id ユーザーID 16 * @param strings $recipe_id レシピID 17 * @param strings $filename ファイル名 18 * @param strings $filepath ファイルパス 19 * @return bool $result 20 */ 21 public function savefile($user_id, $recipe_id, $filename, $filepath) 22 { 23 $result = false; 24 $sql = 'INSERT INTO images(user_id, recipe_id, file_name, file_path) 25 VALUE (:user_id, :recipe_id, :file_name, :file_path)'; 26 $sth = $this -> dbh -> prepare($sql); 27 $sth -> bindValue(':user_id', $user_id, \PDO::PARAM_INT); 28 $sth -> bindValue(':recipe_id', $recipe_id, \PDO::PARAM_INT); 29 $sth -> bindValue(':file_name', $filename, \PDO::PARAM_STR); 30 $sth -> bindValue(':file_path', $filepath, \PDO::PARAM_STR); 31 $sth -> execute(); 32 return $result; 33 } 34 35 /** 36 * ファイルデータの取得 37 * @param strings $user_id ユーザーID 38 * @return array $result 39 */ 40 public function getImage($user_id) 41 { 42 $sql = 'SELECT * 43 FROM images'; 44 $sql .= ' WHERE user_id = :user_id'; 45 $sql .= ' ORDER BY recipe_id DESC LIMIT 3'; 46 $sth = $this -> dbh -> prepare($sql); 47 $sth -> bindValue(':user_id', $user_id, \PDO::PARAM_INT); 48 $sth -> execute(); 49 while ($result = $sth -> fetch(PDO::FETCH_ASSOC)) { 50 $image[] = $result; 51 } 52 return $image; 53 } 54}

top.php

1<?php 2session_start(); 3require_once(ROOT_PATH .'/Controllers/UserController.php'); 4if (empty($_SESSION["login_user"])) { 5 header('Location: login_form.php'); 6} 7$recipe = new UserController(); 8$list = $recipe -> list($_SESSION["login_user"]["id"]);//最新投稿レシピ 9$count = $recipe -> countMyrecipe($_SESSION["login_user"]["id"]);//投稿したレシピの数 10$image = $recipe -> getImage($_SESSION["login_user"]["id"]);//最新投稿レシピの画像 11 12?> 13<!DOCTYPE html> 14<html lang="en"> 15<head> 16 <meta charset="UTF-8"> 17 <link rel="stylesheet" href="/css/bootstrap.css" type="text/css"/> 18 <link rel="stylesheet" href="/css/index.css" type="text/css"/> 19 <title>トップページ</title> 20</head> 21<body style = "background-color :#FAEBD7;"> 22 <?php include("header.php")?> 23 <div class = "box"> 24 <div class = "profile"> 25 <p class = "title d-flex justify-content-center" style = "font-weight:bold;">マイプロフィール</p> 26 <div class = "pro_list d-flex mt-4"> 27 <div style = "width:40%;" class = "mx-5"> 28 <p>ユーザー名:<?php echo $_SESSION["login_user"]["name"]?></p> 29 <p>働いているお店:<?php echo $_SESSION["login_user"]["restaurant"]?></p> 30 <p>投稿したレシピ数:<?php echo $count?></p> 31 </div> 32 <p>ひとこと<br> 33 <?php echo $_SESSION["login_user"]["comment"]?> 34 </p> 35 </div> 36 <div id = "edit_profile"> 37 <a href="edit_profile_form.php">編集する</a> 38 </div> 39 </div> 40 41 <div class = "recipe my-4" style ="height:350px; background-color:#FFE4B5;"> 42 <p class = "title d-flex justify-content-center" style = "font-weight:bold;">投稿したレシピ</p> 43 <div class = "d-flex justify-content-around mt-4"> 44 <?php if (isset($list[0])) :?> 45 <div class = "recipe_list" style = "width:30%; height:230px;text-align: center;"> 46 <div class = "recipe_image h-75 w-75 mx-auto mt-3" style = "background-color:blue;"> 47 <img src="<?php echo $image[0]['file_path']; ?>"> 48 </div> 49 <a href = "myrecipe.php?id=<?php echo $list[0]["id"] ?>" style = "font-size:1.4rem; color:black; text-decoration:none;"><?php echo $list[0]["name"]?></a> 50 </div> 51 <?php endif;?> 52 <?php if (isset($list[1])) :?> 53 <div class = "recipe_list" style = "width:30%; height:230px; text-align: center;"> 54 <div class = "recipe_image h-75 w-75 mx-auto mt-3" style = "background-color:blue;"> 55 </div> 56 <a href = "myrecipe.php?id=<?php echo $list[1]["id"] ?>" class = "mx-auto" style = "font-size:1.4rem; color:black; text-decoration:none;"><?php echo $list[1]["name"]?></a> 57 </div> 58 <?php endif;?> 59 <?php if (isset($list[2])) :?> 60 <div class = "recipe_list" style = "width:30%; height:230px; text-align: center;"> 61 <div class = "recipe_image h-75 w-75 mx-auto mt-3" style = "background-color:blue;"> 62 </div> 63 <a href = "myrecipe.php?id=<?php echo $list[2]["id"] ?>" class = "mx-auto" style = "font-size:1.4rem; color:black; text-decoration:none;"><?php echo $list[2]["name"]?></a> 64 </div> 65 <?php endif;?> 66 </div> 67 <div style = "text-align:center"> 68 <a href = "myrecipe_list.php" style = "color:black; font-size:1.4rem;" class = "mx-auto">もっと見る</a> 69 </div> 70 </div> 71 </div> 72 <?php include("footer.html")?> 73 <p><img src = "シーザーサラダ.jpeg"></p> 74</body> 75</html>

相対パス、絶対パス両方試し済です。
お手数おかけしますが、ご教示頂けますと幸いです。よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tabuu

2022/07/04 05:36

表示している画像のurlはどのようになっていますか?
I_d

2022/07/04 08:16

ご質問いただき、ありがとうございます。 ブラウザのソースから確認したところ <img src="/Applications/MAMP/public/image/20220703180858シーザーサラダ.jpeg">と 出ておりました。 このような回答で問題ないでしょうか。 よろしくお願いいたします。
I_d

2022/07/05 05:23

画像が表示されました。 ありがとうございます。
guest

回答1

0

自己解決

tabuuさんのコメントによって解決致しました。

投稿2022/07/06 07:56

I_d

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問