前提・実現したいこと
登録画面(画像アップロードを含む)→確認画面→完了画面の遷移で、完了画面でDBに入力内容を保存したく、自分で作りDB保存までできたのですが、少し無理矢理感があったので、もっと方法があるのではと疑問に思い質問させていただきました。
画像アップロードは画像を3つほど選択可能で、
確認画面では保存する前にその画像を表示して確認できるようにしたいと思っております。
自分でいろいろ調べてやっているなかで、
登録画面(1.php)→確認画面(2.php)で$_POSTの内容と$_FILESの内容を丸々$SESSIONに格納、
その後
完了画面で$SESSIONに入っている内容をDBに登録という流れで作ったのが以下で実際に登録できたのですが、これでいいのかと少し不安に感じております(こんな単純な方法の記事が見つからなかったため)
アドバイスいただければと思います
該当のソースコード
php
12.php 2確認画面 画像nameはA,B,Cで設定しています。 3session_start(); 4$_SESSION['img'] = $_FILES; 5$_SESSION['input'] = $_POST; 6 7foreach ($_FILES as $key => $value) { 8 $img[$key] = file_get($key); 9} 10html 11<?php echo $img['A']; ?> 12//file_get($filekey) 13{ 14 $img_data = 'ファイルが選択されていません'; 15 if (!$_FILES[$filekry]['error']) { 16 $fp = fopen($_FILES[$filekey]['tmp_name'], "rb"); 17 $img = fread($fp, filesize($_FILES[$filekey]['tmp_name'])); 18 fclose($fp); 19 20 $enc_img = base64_encode($img); 21 $imginfo = getimagesize('data:application/octet-stream;base64,' . $enc_img); 22 $img_data = '<img src="data:' . $imginfo['mime'] . ';base64,' . $enc_img . '">'; 23 } 24 return $img_data; 25} 26}
php
13.php 2完了画面 3session_start(); 4 5$img = $_SESSION['img']; 6foreach ($img as $key => $value) { 7 $data['data' . $key] = $value['tmp_name']; 8 $data['name' . $key] = $value['name']; 9} 10 11$userData = $_SESSION['login_user']; 12$postData = $_SESSION['input']; 13$inputData = array_merge($userData, $postData, $data); 14 15if ($db->register($inputData)) { 16 $mes = '登録が完了しました。'; 17} 18//register($inputData)でDBに登
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー