質問編集履歴

3

phpのバージョンを追記しました。

2017/08/03 02:54

投稿

mashu15_2
mashu15_2

スコア10

test CHANGED
File without changes
test CHANGED
@@ -451,3 +451,5 @@
451
451
  107:if($_FILES && $_POST){ // 送信ボタンが押された($_FILESと$_POSTが送られた)場合
452
452
 
453
453
  199:print_r($_FILES);
454
+
455
+ PHPのバージョンは7.1.1です。

2

2017/08/03 02:54

投稿

mashu15_2
mashu15_2

スコア10

test CHANGED
File without changes
test CHANGED
File without changes

1

エラー部分について追記しました

2017/08/02 07:26

投稿

mashu15_2
mashu15_2

スコア10

test CHANGED
File without changes
test CHANGED
@@ -230,112 +230,112 @@
230
230
 
231
231
  }
232
232
 
233
+
234
+
235
+ **if($_FILES && $_POST){ // 送信ボタンが押された($_FILESと$_POSTが送られた)場合**
236
+
237
+ ** $content = NULL;
238
+
239
+ $mtype = NULL;
240
+
241
+ $usercomment=NULL;//TASK8
242
+
243
+ $img_mtype = array('image/png', 'image/jpg', 'image/jpeg', 'image/gif');
244
+
245
+
246
+
247
+
248
+
249
+ if ($_FILES['user_file']['error'] == UPLOAD_ERR_INI_SIZE ||
250
+
251
+ $_FILES['user_file']['error'] == UPLOAD_ERR_FORM_SIZE){ //容量の制限(php&htmlフォーム)をチェック
252
+
253
+ print 'ファイルサイズが制限(1MB)を超えています。<br>';
254
+
255
+ }
256
+
257
+ elseif ($_FILES['user_file']['error'] == UPLOAD_ERR_OK &&
258
+
259
+ is_uploaded_file($_FILES['user_file']['tmp_name'])) { //アップロードエラー無し、かつ、テンポラリファイルがPOSTでアップされたもの(セキュリティ用)の場合
260
+
261
+ $finfo = finfo_open(FILEINFO_MIME_TYPE); // ファイル情報の準備(MIMEタイプ)
262
+
263
+ $mtype = finfo_file($finfo, $_FILES['user_file']['tmp_name']); //MIMEタイプの取得
264
+
265
+
266
+
267
+
268
+
269
+
270
+
271
+ if(!in_array($mtype, $img_mtype)){ //MIMEタイプが画像用か確認
272
+
273
+ print "アップされたファイルのMIMEタイプは{$mtype}です。<br>画像として認識できません。<br>";
274
+
275
+
276
+
277
+ }
278
+
279
+ else {
280
+
281
+ $content = file_get_contents($_FILES['user_file']['tmp_name']); //ファイルの内容を文字列として読み込む(BLOBでDBに格納する用)
282
+
283
+
284
+
285
+ try {
286
+
287
+ $pdo->beginTransaction(); // トランザクションを開始する(複数の処理をまとめ、一貫性を保つ)
288
+
289
+ $sql = "INSERT INTO $table (id, mime, image,comment,gender) VALUES ( :id, :mime, :image, :comment, :gender)";//プリペアドステートメントを使った、SQL文(レコード登録)のテンプレート
290
+
291
+ $stmh = $pdo->prepare($sql);//SQL実行の準備をし、ステートメントハンドラを返す
292
+
293
+ $stmh->bindValue(':id', $userID, PDO::PARAM_STR );//プレースホルダと外部からの値を結びつける
294
+
295
+ $stmh->bindValue(':image', $content, PDO::PARAM_LOB );
296
+
297
+ $stmh->bindValue(':mime', $mtype, PDO::PARAM_STR ); // TASK7
298
+
299
+ $stmh->bindValue(':comment',$usercomment, PDO::PARAM_STR ); //TASK8
300
+
301
+ $stmh->bindValue(':gender',$usergender, PDO::PARAM_STR ); //TASK8
302
+
303
+
304
+
305
+ $stmh->execute(); // プリペアドステートメント(SQL文のテンプレート)を実行する
306
+
307
+ $pdo->commit(); // SQL文による変更を確定し、トランザクションを終了する
308
+
309
+ print 'データを' . $stmh->rowCount() . '件、挿入しました。<br>'; //SQL文実行で影響を受けた行数を取得する
310
+
311
+ }
312
+
313
+ catch (PDOException $Exception) { //処理がうまくいかない場合の例外処理
314
+
315
+ $pdo->rollBack(); // トランザクション開始前の状態に戻す
316
+
317
+ print 'エラー:' . $Exception->getMessage();
318
+
319
+ }
320
+
321
+ }
322
+
323
+ }
324
+
325
+ else {
326
+
327
+ print '画像ファイルなし or アップロード失敗...<br>';
328
+
329
+ }
330
+
331
+ }
332
+
333
+
334
+
335
+ // ■■■■■■■■■■■■ データ出力に関する処理 ■■■■■■■■■■■■ //
336
+
233
337
 
234
338
 
235
- if($_FILES && $_POST){ // 送信ボタンが押された($_FILESと$_POSTが送られた)場合
236
-
237
- $content = NULL;
238
-
239
- $mtype = NULL;
240
-
241
- $usercomment=NULL;//TASK8
242
-
243
- $img_mtype = array('image/png', 'image/jpg', 'image/jpeg', 'image/gif');
244
-
245
-
246
-
247
-
248
-
249
- if ($_FILES['user_file']['error'] == UPLOAD_ERR_INI_SIZE ||
250
-
251
- $_FILES['user_file']['error'] == UPLOAD_ERR_FORM_SIZE){ //容量の制限(php&htmlフォーム)をチェック
252
-
253
- print 'ファイルサイズが制限(1MB)を超えています。<br>';
254
-
255
- }
256
-
257
- elseif ($_FILES['user_file']['error'] == UPLOAD_ERR_OK &&
258
-
259
- is_uploaded_file($_FILES['user_file']['tmp_name'])) { //アップロードエラー無し、かつ、テンポラリファイルがPOSTでアップされたもの(セキュリティ用)の場合
260
-
261
- $finfo = finfo_open(FILEINFO_MIME_TYPE); // ファイル情報の準備(MIMEタイプ)
262
-
263
- $mtype = finfo_file($finfo, $_FILES['user_file']['tmp_name']); //MIMEタイプの取得
264
-
265
-
266
-
267
-
268
-
269
-
270
-
271
- if(!in_array($mtype, $img_mtype)){ //MIMEタイプが画像用か確認
272
-
273
- print "アップされたファイルのMIMEタイプは{$mtype}です。<br>画像として認識できません。<br>";
274
-
275
-
276
-
277
- }
278
-
279
- else {
280
-
281
- $content = file_get_contents($_FILES['user_file']['tmp_name']); //ファイルの内容を文字列として読み込む(BLOBでDBに格納する用)
282
-
283
-
284
-
285
- try {
286
-
287
- $pdo->beginTransaction(); // トランザクションを開始する(複数の処理をまとめ、一貫性を保つ)
288
-
289
- $sql = "INSERT INTO $table (id, mime, image,comment,gender) VALUES ( :id, :mime, :image, :comment, :gender)";//プリペアドステートメントを使った、SQL文(レコード登録)のテンプレート
290
-
291
- $stmh = $pdo->prepare($sql);//SQL実行の準備をし、ステートメントハンドラを返す
292
-
293
- $stmh->bindValue(':id', $userID, PDO::PARAM_STR );//プレースホルダと外部からの値を結びつける
294
-
295
- $stmh->bindValue(':image', $content, PDO::PARAM_LOB );
296
-
297
- $stmh->bindValue(':mime', $mtype, PDO::PARAM_STR ); // TASK7
298
-
299
- $stmh->bindValue(':comment',$usercomment, PDO::PARAM_STR ); //TASK8
300
-
301
- $stmh->bindValue(':gender',$usergender, PDO::PARAM_STR ); //TASK8
302
-
303
-
304
-
305
- $stmh->execute(); // プリペアドステートメント(SQL文のテンプレート)を実行する
306
-
307
- $pdo->commit(); // SQL文による変更を確定し、トランザクションを終了する
308
-
309
- print 'データを' . $stmh->rowCount() . '件、挿入しました。<br>'; //SQL文実行で影響を受けた行数を取得する
310
-
311
- }
312
-
313
- catch (PDOException $Exception) { //処理がうまくいかない場合の例外処理
314
-
315
- $pdo->rollBack(); // トランザクション開始前の状態に戻す
316
-
317
- print 'エラー:' . $Exception->getMessage();
318
-
319
- }
320
-
321
- }
322
-
323
- }
324
-
325
- else {
326
-
327
- print '画像ファイルなし or アップロード失敗...<br>';
328
-
329
- }
330
-
331
- }
332
-
333
-
334
-
335
- // ■■■■■■■■■■■■ データ出力に関する処理 ■■■■■■■■■■■■ //
336
-
337
-
338
-
339
339
  // 検索および現在の全データを表示します
340
340
 
341
341
  try {
@@ -416,22 +416,22 @@
416
416
 
417
417
  echo'<pre>';
418
418
 
419
- print_r($_FILES);
419
+ __** print_r($_FILES);
420
+
421
+ **__ echo'</pre>';
422
+
423
+
424
+
425
+ print '$_SESSIONの内容確認';
426
+
427
+ echo'<pre>';
428
+
429
+ print_r($_SESSION);
420
430
 
421
431
  echo'</pre>';
422
432
 
423
433
 
424
434
 
425
- print '$_SESSIONの内容確認';
426
-
427
- echo'<pre>';
428
-
429
- print_r($_SESSION);
430
-
431
- echo'</pre>';
432
-
433
-
434
-
435
435
 
436
436
 
437
437
  ?>
@@ -441,3 +441,13 @@
441
441
  </html>
442
442
 
443
443
  ```
444
+
445
+
446
+
447
+ ###補足情報(言語/FW/ツール等のバージョンなど)
448
+
449
+ 申し訳ありません、エラーが出た部分の列番号を記述し忘れていました。
450
+
451
+ 107:if($_FILES && $_POST){ // 送信ボタンが押された($_FILESと$_POSTが送られた)場合
452
+
453
+ 199:print_r($_FILES);