アップロードされた画像のファイルパス+ファイル名を他のファイルでも参照したいのですが、画像のファイル名に取得した拡張子を代入した変数を使っていて、その変数を使っているファイルを参照しようと思い読み込んだのですが、エラーが出てしまい読み込めず、拡張子を代入した変数も参照できずにいます...
以下が拡張子を代入した変数($ext)を定義したファイル(tool.php)になります。
PHP
1<?php 2// 設定ファイル読み込み 3require_once '../include/conf/const.php'; 4// 関数ファイル読み込み 5require_once './function.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$check_ext = ''; 17$check_err_msg = ''; 18$ext = ''; 19 20$link = get_db_connect(); 21 22if($_SERVER['REQUEST_METHOD'] === 'POST'){ 23 24 $submit_type = $_POST['submit_type']; 25 //var_dump($submit_type);exit(); 26 27 switch ($submit_type) { 28 case 'add_item': 29 30 $drink_name = $_POST['drink_name']; 31 $price = $_POST['price']; 32 33 $stock = $_POST['stock']; 34 35 $status = $_POST['public_status']; 36 37 38 //登録値チェック 39 $err_msg[] = entry_name_check($drink_name); 40 $err_msg[] = entry_check_price($price); 41 $err_msg[] = entry_check_stock($stock); 42 //var_dump($err_msg);exit(); 43 44 //アップロードファイル名を変数に代入 45 $temp_file = $_FILES['new_img']['tmp_name']; 46 $file_name = '../img/' . $_FILES['new_img']['name']; 47 48 //拡張子取得 49 $check_ext = get_ext($file_name); 50 51 52 53 54 //拡張子チェック 55 $err_msg[] = extention_check($check_ext); 56 //var_dump($check_ext);exit(); 57 58 59 60 //var_dump($err_msg);exit(); 61 62 //エラーメッセージの空もしくはNULLを排除 63 $check_err_msg = array_filter($err_msg); 64 65 //var_dump($check_err_msg);exit(); 66 67 //エラーメッセージの要素数が0の場合 68 if(count($check_err_msg) === 0){ 69 70 //トランザクション開始 71 mysqli_autocommit($link, $false); 72 73 $sql = 'INSERT INTO drink_info_table(drink_name,price,status)VALUES(\'' . $drink_name . '\',' . $price . ',' . $status . ')'; 74 75 if(mysqli_query($link,$sql) === TRUE){ 76 77 $drink_id = mysqli_insert_id($link); 78 79 //drink_stock_tableにinsert 80 $err_msg[] = insert_drink_stock_table($link,$drink_id,$stock); 81 82 83 }else{ 84 $err_msg[] = 'drink_info_table:insertエラー' . $sql; 85 } 86 87 88 $ext = ext($file_name); 89 90 //ファイルパス+ファイル名 91 $upload_path = '../img/' . $drink_id . $ext; 92 93 //アップロード処理 94 $err_msg[] = upload_img($temp_file,$upload_path); 95 //var_dump($err_msg); 96 97 98 99 100 101 //空もしくはnullを削除 102 $check_err_msg = array_filter($err_msg); 103 //var_dump($check_err_msg);exit(); 104 105 //トランザクション成否判定 106 if(count($check_err_msg) === 0){ 107 108 $success_msg[] = '商品追加成功'; 109 110 mysqli_commit($link); 111 112 }else{ 113 114 $err_msg[] = '商品追加失敗'; 115 mysqli_rollback($link); 116 } 117 }else{ 118 $err_msg[] = 'countエラー'; 119 } 120 121 break; 122 123 case'change_value': 124 125 $drink_id = (int)$_POST['drink_id']; 126 127 if(isset($_POST['update_stock'])){ 128 $update_stock = (int)$_POST['update_stock']; 129 130 $sql = 'UPDATE drink_stock_table SET stock_number = ' . $update_stock . ' WHERE drink_id = ' . $drink_id; 131 132 if(mysqli_query($link,$sql) === TRUE){ 133 $success_msg [] = '在庫変更成功'; 134 }else{ 135 $err_msg[] = 'UPDATE drink_stock_table:updateエラー:' . $sql; 136 } 137 }else{ 138 $err_msg[] = '在庫変更失敗'; 139 } 140 141 break; 142 143 case 'change_status': 144 145 146 $status = (int)$_POST['status']; 147 $drink_id = (int)$_POST['drink_id']; 148 149 if(($status) === 1){ 150 151 $sql = 'UPDATE drink_info_table SET status = 0 WHERE drink_id = ' . $drink_id; 152 153 if(mysqli_query($link,$sql) === FALSE){ 154 155 $err_msg[] = 'drink_info_table:UPDATEエラー' . $sql; 156 157 158 }else{ 159 160 $success_msg[] = 'ステータス変更成功'; 161 } 162 163 }else{ 164 $sql = 'UPDATE drink_info_table SET status = 1 WHERE drink_id = ' . $drink_id; 165 166 if(mysqli_query($link,$sql) === FALSE){ 167 168 $err_msg[] = 'drink_info_table:UPDATEエラー' .$sql; 169 170 }else{ 171 172 $success_msg[] = 'ステータス変更成功'; 173 } 174 175 } 176 177 break; 178 179 } 180 181} 182 183//drink_info_table取得 184$drink_info_list = get_drink_table($link); 185 186 187//特殊文字をHTMLエンティティに変換 188$drink_info_list = entity_as_array($drink_info_list); 189//var_dump($drink_info_list);exit(); 190 191 192include_once './view.php'; 193 194?>
以下は、$extを参照したい側のファイル(index.php)になります。
PHP
1<?php 2require_once '../include/conf/const.php'; 3require_once '../tool/tool.php'; 4require_once './model.php'; 5$drink_list = array(); 6$err_msg = array(); 7$link = get_db_connect(); 8 9 10$drink_list = get_drink_table($link); 11$drink_list = entity_as_array($drink_list); 12 13include_once './view.php'; 14 15?> 16 17
$extを使用したい場所と致しましては、
index.phpで読み込んでいますview.phpになります。
view.php
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 6</head> 7<body> 8 <h1> 9 <p>自動販売機</p> 10 </h1> 11 <form action="../result/Controller.php" method="post"> 12 <p>金額<input type="text" name="money"></p> 13 <?php foreach($drink_list as $value){ ?> 14 <img src="lesson23/img/<?php echo $value['drink_id'] . $ext; ?>"> 15 <?php echo $value['drink_name']; ?> 16 <?php echo $value['price']; ?> 17 <input type="radio"name="<?php $value['drink_id'] ?>"> 18 <input type="hidden" name="<?php $value['price'] ?>"> 19 <input type="hidden" name="<?php $value['stock'] ?>"> 20 21 <?php } ?> 22 23 <div><input type="submit" value="購入"></div> 24 </form> 25</body> 26 27</html>
どなたか教えて下さる方いらっしゃいましたら、ご教示よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/21 12:41