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

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

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

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

PHP

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

Q&A

解決済

1回答

456閲覧

[PHP]アップロードした画像を表示させられません...

newyee

総合スコア213

phpMyAdmin

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

PHP

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

0グッド

1クリップ

投稿2017/09/16 10:30

編集2017/09/16 10:35

現在、PHPの勉強で自動販売機ツール(管理画面)を作成しているのですが、アップロードしたファイルを表示させることができずにいます...
以下が僕が作成中のコードとなります。
MVCモデルの勉強の為(Contoroller.php,view.php,model.php)の3つのファイルに分けて作成しています。
以下が、Contoroller.phpのコードとなります。

php

1<?php 2// 設定ファイル読み込み 3require_once '../include/conf/const.php'; 4// 関数ファイル読み込み 5require_once './model.php'; 6 7$drink_info_list = array(); 8$err_msg = array(); 9$success_msg = array(); 10$drink_name = ''; 11$price = 0; 12$stock = 0; 13$status = 0; 14$file_name =''; 15$drink_id = 0; 16$ext = ''; 17$check_err_msg = ''; 18 19$link = get_db_connect(); 20 21if($_SERVER['REQUEST_METHOD'] === 'POST'){ 22 23 $submit_type = $_POST['submit_type']; 24 //var_dump($submit_type);exit(); 25 26 switch ($submit_type) { 27 case 'add_item': 28 29 $drink_name = $_POST['drink_name']; 30 $price = $_POST['price']; 31 32 $stock = $_POST['stock']; 33 34 $status = $_POST['public_status']; 35 36 37 //登録値チェック 38 $err_msg[] = entry_name_check($drink_name); 39 $err_msg[] = entry_check_price($price); 40 $err_msg[] = entry_check_stock($stock); 41 //var_dump($err_msg);exit(); 42 43 //アップロードファイル名を変数に代入 44 $temp_file = $_FILES['new_img']['tmp_name']; 45 $file_name = '../img/' . $_FILES['new_img']['name']; 46 47 //拡張子取得 48 $ext = extention($file_name); 49 //拡張子チェック 50 $err_msg[] = extention_check($ext); 51 //var_dump($ext);exit(); 52 53 //ファイルパス+ファイル名 54 $upload_file = '../img/' . $drink_id . $ext; 55 56 //var_dump($err_msg);exit(); 57 58 //エラーメッセージの空もしくはNULLを排除 59 $check_err_msg = array_filter($err_msg); 60 61 //var_dump($check_err_msg);exit(); 62 63 //エラーメッセージの要素数が0の場合 64 if(count($check_err_msg) === 0){ 65 66 //トランザクション開始 67 mysqli_autocommit($link, $false); 68 69 $sql = 'INSERT INTO drink_info_table(drink_name,price,status)VALUES(\'' . $drink_name . '\',' . $price . ',' . $status . ')'; 70 71 if(mysqli_query($link,$sql) === TRUE){ 72 73 $drink_id = mysqli_insert_id($link); 74 75 //drink_stock_tableにinsert 76 $err_msg[] = insert_drink_stock_table($link,$drink_id,$stock); 77 78 }else{ 79 $err_msg[] = 'drink_info_table:insertエラー' . $sql; 80 } 81 82 //アップロード処理 83 $err_msg[] = upload_img($temp_file,$file_name,$upload_file); 84 //var_dump($err_msg); 85 86 //空もしくはnullを削除 87 $check_err_msg = array_filter($err_msg); 88 //var_dump($check_err_msg);exit(); 89 90 //トランザクション成否判定 91 if(count($check_err_msg) === 0){ 92 93 $success_msg[] = '商品追加成功'; 94 95 mysqli_commit($link); 96 97 }else{ 98 99 $err_msg[] = '商品追加失敗'; 100 mysqli_rollback($link); 101 } 102 }else{ 103 $err_msg[] = 'countエラー'; 104 } 105 106 break; 107 108 case'change_value': 109 110 $drink_id = (int)$_POST['drink_id']; 111 112 if(isset($_POST['update_stock'])){ 113 $update_stock = (int)$_POST['update_stock']; 114 115 $sql = 'UPDATE drink_stock_table SET stock_number = ' . $update_stock . ' WHERE drink_id = ' . $drink_id; 116 117 if(mysqli_query($link,$sql) === TRUE){ 118 $success_msg [] = '在庫変更成功'; 119 }else{ 120 $err_msg[] = 'UPDATE drink_stock_table:updateエラー:' . $sql; 121 } 122 }else{ 123 $err_msg[] = '在庫変更失敗'; 124 } 125 126 break; 127 128 case 'change_status': 129 130 131 $status = (int)$_POST['status']; 132 $drink_id = (int)$_POST['drink_id']; 133 134 if(($status) === 1){ 135 136 $sql = 'UPDATE drink_info_table SET status = 0 WHERE drink_id = ' . $drink_id; 137 138 if(mysqli_query($link,$sql) === FALSE){ 139 140 $err_msg[] = 'drink_info_table:UPDATEエラー' . $sql; 141 142 143 }else{ 144 145 $success_msg[] = 'ステータス変更成功'; 146 } 147 148 }else{ 149 $sql = 'UPDATE drink_info_table SET status = 1 WHERE drink_id = ' . $drink_id; 150 151 if(mysqli_query($link,$sql) === FALSE){ 152 153 $err_msg[] = 'drink_info_table:UPDATEエラー' .$sql; 154 155 }else{ 156 157 $success_msg[] = 'ステータス変更成功'; 158 } 159 160 } 161 162 break; 163 164 } 165 166} 167 168//drink_info_table取得 169$drink_info_list = get_drink_table($link); 170 171//特殊文字をHTMLエンティティに変換 172$drink_info_list = entity_as_array($drink_info_list); 173//var_dump($drink_info_list);exit(); 174 175include_once './view.php'; 176 177 178$1>

以下はmodel.phpになります。
イメージ説明
イメージ説明
イメージ説明
イメージ説明
イメージ説明
以下はview.phpとなります。

イメージ説明
イメージ説明
イメージ説明
イメージ説明

アップロードしますと、「imgフォルダ」には画像は保存されるのですが、表示できていないという状態です...
原因が分からないので、教えて頂けたら幸いです...
よろしくお願いします。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2017/09/17 07:09

コードを画像で貼るのはやめてください。
guest

回答1

0

ベストアンサー

画像を保存したパスが参照できていないのでは?
とりあえずimgタグのsrcを絶対パスで指定してみてはどうでしょうか。

それからソースコードは画像ではなく、関係ありそうな部分だけをそのまま貼りつけるようにした方がいいですよ。
画像でコード読むのはしんどいです。

投稿2017/09/17 06:52

ooeok

総合スコア469

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

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

newyee

2017/09/17 13:40

imgタグ部分で絶対パスを指定したのですが、やはり表示されませんでした... 文字数制限の為、画像で貼ったんですが申し訳なかったです...
ooeok

2017/09/18 04:42

それではブラウザに画像のアドレスだけ入力してみて下さい。 画像にアクセスできない場合、HTTPのステータスコードが表示されるはずです。 それを見ればだいたい原因は分かるかと。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問