質問編集履歴

2

いらない記述があったので修正しました。

2021/11/19 06:24

投稿

tamachin
tamachin

スコア2

test CHANGED
File without changes
test CHANGED
@@ -26,8 +26,6 @@
26
26
 
27
27
  ソースコード
28
28
 
29
- 案1
30
-
31
29
  function insert_item($link) {
32
30
 
33
31
  if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
@@ -148,262 +146,188 @@
148
146
 
149
147
 
150
148
 
151
- 案2
152
-
153
- if ($_FILES['new_img']['error'] === UPLOAD_ERR_OK) {
154
-
155
-
156
-
157
- if (count($err_msg) === 0) {
158
-
159
-
160
-
161
- $chk_picture = getimagesize($_FILES['new_img']['tmp_name']);
162
-
163
-
164
-
165
- if ($chk_picture['mime'] === 'image/png' || $chk_picture['mime'] === 'image/jpeg') {
166
-
167
-
168
-
169
- if ($chk_picture[0] <= 500 && ($chk_picture[1] <= 500)) {
170
-
171
-
172
-
173
- $mime = $chk_picture['mime'];
174
-
175
- switch ($mime) {
176
-
177
- case 'image/png':
178
-
179
- $type = '.png';
180
-
181
- break;
182
-
183
- case 'image/jpeg':
184
-
185
- $type = '.jpg';
186
-
187
- break;
149
+ HTML
150
+
151
+ <!DOCTYPE html>
152
+
153
+ <?php require_once('../../htdocs/mvc/tool.php');?>
154
+
155
+ <html lang="ja">
156
+
157
+
158
+
159
+ <head>
160
+
161
+ <meta charset="UTF-8">
162
+
163
+ <title>ECサイト</title>
164
+
165
+ </head>
166
+
167
+
168
+
169
+ <body>
170
+
171
+
172
+
173
+ <h1>ECサイト</h1>
174
+
175
+
176
+
177
+ <section>
178
+
179
+ <h2>新規商品追加</h2>
180
+
181
+
182
+
183
+ <form action="tool.php" method="post" enctype="multipart/form-data">
184
+
185
+ <label>名前: <input type="text" name="new_name" size="30" /></label><br>
186
+
187
+ <label>値段: <input type="text" name="new_price" size="30" /></label><br>
188
+
189
+ <label>個数: <input type="text" name="new_stock" size="30" /></label><br>
190
+
191
+ <input type="file" name="new_img" accept="image/jpeg, image/png, image/gif" /><br>
192
+
193
+ <img src="../../file/ダウンロード.png">
194
+
195
+ <select name="new_status"><br>
196
+
197
+ <option value="0">非公開</option>
198
+
199
+ <option value="1">公開</option>
200
+
201
+ <option value="2">入力チェック用</option>
202
+
203
+ </select><br>
204
+
205
+ <input type="hidden" name="sql_kind" value="insert">
206
+
207
+ <input type="submit" name="add" value="■□■□商品追加■□■□" />
208
+
209
+ </form>
210
+
211
+
212
+
213
+ </section>
214
+
215
+
216
+
217
+ <section>
218
+
219
+ <h2>商品情報変更</h2>
220
+
221
+ <table>
222
+
223
+ <caption>商品一覧</caption>
224
+
225
+ <tbody>
226
+
227
+ <tr>
228
+
229
+ <th>商品名</th>
230
+
231
+ <th>価格</th>
232
+
233
+ <th>在庫数</th>
234
+
235
+ <th>ステータス</th>
236
+
237
+ </tr>
238
+
239
+ <?php
240
+
241
+ if (empty($data) !== TRUE) {
242
+
243
+ foreach ((array)$data as $list) {
244
+
245
+ if ((int) $list['status'] === 0) { ?>
246
+
247
+ <tr class="status_0">
248
+
249
+ <?php } else { ?>
250
+
251
+ <tr>
252
+
253
+ <?php } ?>
254
+
255
+ <? php print htmlspecialchars($list,ENT_QUOTES,'UTF-8'); ?>
256
+
257
+ <td><img class="img" src="<?PHP print $list['img']; ?>"></td>
258
+
259
+ <td class="d_name"><?php print $list['name']; ?></td>
260
+
261
+ <td class="d_price"><?php print $list['price']; ?></td>
262
+
263
+ <td>
264
+
265
+ <form method="post">
266
+
267
+ <!--<input type="text" class="input_text_width text_align_right" name="stock" value="<?php print $list['stock']; ?>">個-->
268
+
269
+ <!--<br>-->
270
+
271
+ <input type="submit" name="renew" value="変更">
272
+
273
+ <input type="hidden" name="sql_kind" value="update">
274
+
275
+ </form>
276
+
277
+ </td>
278
+
279
+
280
+
281
+ <?php if ((int) $list['status'] === 0) { ?>
282
+
283
+ <td class="d_status">
284
+
285
+ <form method="post">
286
+
287
+ <input type="submit" name="change" value="非公開 → 公開">
288
+
289
+ <input type="hidden" name="change_status" value="1">
290
+
291
+ <input type="hidden" name="sql_kind" value="change">
292
+
293
+ </form>
294
+
295
+ </td>
296
+
297
+ </tr>
298
+
299
+ <?php } else { ?>
300
+
301
+ <td class="d_status">
302
+
303
+ <form method="post">
304
+
305
+ <input type="submit" name="change" value="公開 → 非公開">
306
+
307
+ <input type="hidden" name="change_status" value="0">
308
+
309
+ <input type="hidden" name="sql_kind" value="change">
310
+
311
+ </form>
312
+
313
+ </td>
314
+
315
+ </tr>
316
+
317
+ <?php }
188
318
 
189
319
  }
190
320
 
191
-
192
-
193
- $upload = $uploaddir . date('YmdHis') . rand(0, 10000) . $type;
194
-
195
-
196
-
197
- move_uploaded_file($_FILES['new_img']['tmp_name'], $upload);
198
-
199
- } else {
321
+ } ?>
200
-
201
- $err_msg[] = 'ファイルは縦と横500px以内にしてください';
322
+
202
-
203
- }
323
+
204
-
205
- } else {
324
+
206
-
207
- $err_msg[] = 'PNGかJPEG形式のファイルをアップロードしてください';
208
-
209
- }
210
-
211
- }
212
-
213
- } else {
214
-
215
- $err_msg[] = 'ファイルを選択してください';
216
-
217
- }
218
-
219
-
220
-
221
- こちらは動きすら見せません。
222
-
223
-
224
-
225
- HTML
226
-
227
- <!DOCTYPE html>
228
-
229
- <?php require_once('../../htdocs/mvc/tool.php');?>
230
-
231
- <html lang="ja">
232
-
233
-
234
-
235
- <head>
236
-
237
- <meta charset="UTF-8">
238
-
239
- <title>ECサイト</title>
240
-
241
- </head>
325
+ </tbody>
242
-
243
-
244
-
245
- <body>
326
+
246
-
247
-
248
-
249
- <h1>ECサイト</h1>
250
-
251
-
252
-
253
- <section>
254
-
255
- <h2>新規商品追加</h2>
256
-
257
-
258
-
259
- <form action="tool.php" method="post" enctype="multipart/form-data">
260
-
261
- <label>名前: <input type="text" name="new_name" size="30" /></label><br>
262
-
263
- <label>値段: <input type="text" name="new_price" size="30" /></label><br>
264
-
265
- <label>個数: <input type="text" name="new_stock" size="30" /></label><br>
266
-
267
- <input type="file" name="new_img" accept="image/jpeg, image/png, image/gif" /><br>
268
-
269
- <img src="../../file/ダウンロード.png">
270
-
271
- <select name="new_status"><br>
272
-
273
- <option value="0">非公開</option>
274
-
275
- <option value="1">公開</option>
276
-
277
- <option value="2">入力チェック用</option>
278
-
279
- </select><br>
280
-
281
- <input type="hidden" name="sql_kind" value="insert">
282
-
283
- <input type="submit" name="add" value="■□■□商品追加■□■□" />
284
-
285
- </form>
327
+ </table>
286
-
287
-
288
328
 
289
329
  </section>
290
330
 
291
-
292
-
293
- <section>
294
-
295
- <h2>商品情報変更</h2>
296
-
297
- <table>
298
-
299
- <caption>商品一覧</caption>
300
-
301
- <tbody>
302
-
303
- <tr>
304
-
305
- <th>商品名</th>
306
-
307
- <th>価格</th>
308
-
309
- <th>在庫数</th>
310
-
311
- <th>ステータス</th>
312
-
313
- </tr>
314
-
315
- <?php
316
-
317
- if (empty($data) !== TRUE) {
318
-
319
- foreach ((array)$data as $list) {
320
-
321
- if ((int) $list['status'] === 0) { ?>
322
-
323
- <tr class="status_0">
324
-
325
- <?php } else { ?>
326
-
327
- <tr>
328
-
329
- <?php } ?>
330
-
331
- <? php print htmlspecialchars($list,ENT_QUOTES,'UTF-8'); ?>
332
-
333
- <td><img class="img" src="<?PHP print $list['img']; ?>"></td>
334
-
335
- <td class="d_name"><?php print $list['name']; ?></td>
336
-
337
- <td class="d_price"><?php print $list['price']; ?></td>
338
-
339
- <td>
340
-
341
- <form method="post">
342
-
343
- <!--<input type="text" class="input_text_width text_align_right" name="stock" value="<?php print $list['stock']; ?>">個-->
344
-
345
- <!--<br>-->
346
-
347
- <input type="submit" name="renew" value="変更">
348
-
349
- <input type="hidden" name="sql_kind" value="update">
350
-
351
- </form>
352
-
353
- </td>
354
-
355
-
356
-
357
- <?php if ((int) $list['status'] === 0) { ?>
358
-
359
- <td class="d_status">
360
-
361
- <form method="post">
362
-
363
- <input type="submit" name="change" value="非公開 → 公開">
364
-
365
- <input type="hidden" name="change_status" value="1">
366
-
367
- <input type="hidden" name="sql_kind" value="change">
368
-
369
- </form>
370
-
371
- </td>
372
-
373
- </tr>
374
-
375
- <?php } else { ?>
376
-
377
- <td class="d_status">
378
-
379
- <form method="post">
380
-
381
- <input type="submit" name="change" value="公開 → 非公開">
382
-
383
- <input type="hidden" name="change_status" value="0">
384
-
385
- <input type="hidden" name="sql_kind" value="change">
386
-
387
- </form>
388
-
389
- </td>
390
-
391
- </tr>
392
-
393
- <?php }
394
-
395
- }
396
-
397
- } ?>
398
-
399
-
400
-
401
- </tbody>
402
-
403
- </table>
404
-
405
- </section>
406
-
407
331
  </body>
408
332
 
409
333
 

1

修正

2021/11/19 06:24

投稿

tamachin
tamachin

スコア2

test CHANGED
File without changes
test CHANGED
@@ -2,12 +2,6 @@
2
2
 
3
3
  PHPでデータベースに画像を保存してアップロードしたい。
4
4
 
5
- イメージ要素に画像のディレクトリを変数で入れる。
6
-
7
- 画像のディレクトリはデータベースで管理する。
8
-
9
- で達成される。
10
-
11
5
 
12
6
 
13
7
 
@@ -20,13 +14,9 @@
20
14
 
21
15
  処理を作ってみたが、うまくいかない。
22
16
 
23
- やり方がわからない。
24
-
25
- 下記のようなエラーが出てしまう。
26
-
27
17
  ```
28
18
 
29
- ![イメージ説明](fa2faa89b5afe05e338bb36d112efd85.png)
19
+
30
20
 
31
21
  ### 該当のソースコード
32
22
 
@@ -82,13 +72,15 @@
82
72
 
83
73
 
84
74
 
85
- $img_path = '/file';
75
+ $img_path = '../file/';
86
76
 
87
77
 
88
78
 
89
79
  $image = file_get_contents( $img_path );
90
80
 
91
-
81
+ var_dump($img_path);
82
+
83
+ $upload = move_uploaded_file($_FILES['file']['tmp_name'], $image);
92
84
 
93
85
 
94
86
 
@@ -124,7 +116,7 @@
124
116
 
125
117
 
126
118
 
127
- $sql = 'INSERT INTO item(name, price, img, status, created_date, updated_date) VALUES(\''.$new_name.'\',\''.$new_price.'\',\''.$image.',\'\''.$new_status.'\',\''.$new_time.'\',\''.$new_time.'\')';
119
+ $sql = 'INSERT INTO item(name, price, img, status, created_date, updated_date) VALUES(\''.$new_name.'\',\''.$new_price.'\',\''.$upload.',\'\''.$new_status.'\',\''.$new_time.'\',\''.$new_time.'\')';
128
120
 
129
121
  var_dump($sql);
130
122
 
@@ -152,9 +144,7 @@
152
144
 
153
145
 
154
146
 
155
- Warning: file_get_contents(/file): failed to open stream: No such file or directory
156
-
157
- エラーが発生しました
147
+ 画像のディレクトリは取れていますが、肝心のアップロ出来てないです
158
148
 
159
149
 
160
150
 
@@ -232,6 +222,194 @@
232
222
 
233
223
 
234
224
 
225
+ HTML
226
+
227
+ <!DOCTYPE html>
228
+
229
+ <?php require_once('../../htdocs/mvc/tool.php');?>
230
+
231
+ <html lang="ja">
232
+
233
+
234
+
235
+ <head>
236
+
237
+ <meta charset="UTF-8">
238
+
239
+ <title>ECサイト</title>
240
+
241
+ </head>
242
+
243
+
244
+
245
+ <body>
246
+
247
+
248
+
249
+ <h1>ECサイト</h1>
250
+
251
+
252
+
253
+ <section>
254
+
255
+ <h2>新規商品追加</h2>
256
+
257
+
258
+
259
+ <form action="tool.php" method="post" enctype="multipart/form-data">
260
+
261
+ <label>名前: <input type="text" name="new_name" size="30" /></label><br>
262
+
263
+ <label>値段: <input type="text" name="new_price" size="30" /></label><br>
264
+
265
+ <label>個数: <input type="text" name="new_stock" size="30" /></label><br>
266
+
267
+ <input type="file" name="new_img" accept="image/jpeg, image/png, image/gif" /><br>
268
+
269
+ <img src="../../file/ダウンロード.png">
270
+
271
+ <select name="new_status"><br>
272
+
273
+ <option value="0">非公開</option>
274
+
275
+ <option value="1">公開</option>
276
+
277
+ <option value="2">入力チェック用</option>
278
+
279
+ </select><br>
280
+
281
+ <input type="hidden" name="sql_kind" value="insert">
282
+
283
+ <input type="submit" name="add" value="■□■□商品追加■□■□" />
284
+
285
+ </form>
286
+
287
+
288
+
289
+ </section>
290
+
291
+
292
+
293
+ <section>
294
+
295
+ <h2>商品情報変更</h2>
296
+
297
+ <table>
298
+
299
+ <caption>商品一覧</caption>
300
+
301
+ <tbody>
302
+
303
+ <tr>
304
+
305
+ <th>商品名</th>
306
+
307
+ <th>価格</th>
308
+
309
+ <th>在庫数</th>
310
+
311
+ <th>ステータス</th>
312
+
313
+ </tr>
314
+
315
+ <?php
316
+
317
+ if (empty($data) !== TRUE) {
318
+
319
+ foreach ((array)$data as $list) {
320
+
321
+ if ((int) $list['status'] === 0) { ?>
322
+
323
+ <tr class="status_0">
324
+
325
+ <?php } else { ?>
326
+
327
+ <tr>
328
+
329
+ <?php } ?>
330
+
331
+ <? php print htmlspecialchars($list,ENT_QUOTES,'UTF-8'); ?>
332
+
333
+ <td><img class="img" src="<?PHP print $list['img']; ?>"></td>
334
+
335
+ <td class="d_name"><?php print $list['name']; ?></td>
336
+
337
+ <td class="d_price"><?php print $list['price']; ?></td>
338
+
339
+ <td>
340
+
341
+ <form method="post">
342
+
343
+ <!--<input type="text" class="input_text_width text_align_right" name="stock" value="<?php print $list['stock']; ?>">個-->
344
+
345
+ <!--<br>-->
346
+
347
+ <input type="submit" name="renew" value="変更">
348
+
349
+ <input type="hidden" name="sql_kind" value="update">
350
+
351
+ </form>
352
+
353
+ </td>
354
+
355
+
356
+
357
+ <?php if ((int) $list['status'] === 0) { ?>
358
+
359
+ <td class="d_status">
360
+
361
+ <form method="post">
362
+
363
+ <input type="submit" name="change" value="非公開 → 公開">
364
+
365
+ <input type="hidden" name="change_status" value="1">
366
+
367
+ <input type="hidden" name="sql_kind" value="change">
368
+
369
+ </form>
370
+
371
+ </td>
372
+
373
+ </tr>
374
+
375
+ <?php } else { ?>
376
+
377
+ <td class="d_status">
378
+
379
+ <form method="post">
380
+
381
+ <input type="submit" name="change" value="公開 → 非公開">
382
+
383
+ <input type="hidden" name="change_status" value="0">
384
+
385
+ <input type="hidden" name="sql_kind" value="change">
386
+
387
+ </form>
388
+
389
+ </td>
390
+
391
+ </tr>
392
+
393
+ <?php }
394
+
395
+ }
396
+
397
+ } ?>
398
+
399
+
400
+
401
+ </tbody>
402
+
403
+ </table>
404
+
405
+ </section>
406
+
407
+ </body>
408
+
409
+
410
+
411
+ </html>
412
+
235
413
  ```
236
414
 
237
415
 
@@ -240,6 +418,8 @@
240
418
 
241
419
  https://ryou1214.hatenadiary.org/entry/20120309/1331306992
242
420
 
421
+ https://qiita.com/ryo-futebol/items/11dea44c6b68203228ff
422
+
243
423
  上記のサイトを参考にしました。
244
424
 
245
425