質問編集履歴
3
phpのバージョンを追記しました。
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
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|
1
エラー部分について追記しました
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);
|