前提・実現したいこと
PHPでマイページ作成機能を作っています。プロフィール画像を読み込みたいのです。
form1.phpで表示した画像をそのままform2.phpで使いたいのですが画像をコピーする手段が思いつきません(コピーできたとしても画像名のみ)
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
画像を表示することができない
エラーメッセージ
該当のソースコード
php
1Form1.PHP 2<?php 3session_start(); 4 5$errors = array(); 6 7if(isset($_POST['submit'])) { 8 9$img = $_POST['img']; 10$name = $_POST['name']; 11$email = $_POST['email']; 12$subject = $_POST['subject']; 13$body = $_POST['body']; 14 15 16$profile = htmlspecialchars($profile,ENT_QUOTES); 17$email = htmlspecialchars($email,ENT_QUOTES); 18$subject = htmlspecialchars($subject,ENT_QUOTES); 19$body = htmlspecialchars($body,ENT_QUOTES); 20$img = htmlspecialchars($img,ENT_QUOTES); 21 22 23if($name === "") { 24 $errors['name'] = "お名前が入力されていません。"; 25} 26if($email === "") { 27 $errors['email'] = "生年月日が入力されていません。"; 28} 29if($body === "") { 30 $errors['body'] = "自己紹介が入力されていません。"; 31} 32 if($img === "") { 33 $errors['img'] = "画像が入力されていません。"; 34} 35 if(count($errors) === 0){ 36 $_SESSION['name'] = $name; 37 $_SESSION['email'] = $email; 38 $_SESSION['subject'] = $subject; 39 $_SESSION['body'] = $body; 40 $_SESSION['img'] = $img; 41 42 header('Location:http://localhost/一の方どうぞ/form2.php'); 43 exit(); 44 } 45 46} 47 48if(isset($_GET['action']) && $_GET['action'] === 'edit'){ 49 $name = 50 $_SESSION['name']; 51 $email = 52 $_SESSION['email']; 53 $subject = 54$_SESSION['subject']; 55 $body = 56$_SESSION['body']; 57 58 $img = 59$_SESSION['img']; 60} 61 62?> 63<!doctype html> 64<html> 65<head> 66<meta charset ="utf-8"> 67<title>お問い合わせ</title> 68</head> 69<body> 70 <?php 71 echo "<ul>"; 72 foreach($errors as $value) 73 { 74 echo "<li>"; 75 echo $value; 76 echo "</li>"; 77 } 78 echo"</ul>"; 79 ?> 80 81 <form action="form1.php" method ="post"> 82 <table> 83 <tr> 84 <div id='boxImage' value="<?php if(isset($img)){echo $img; } ?>">画像</div> 85<hr> 86<input type='file' value='' id='selectImage' name='img'> 87 88<script> 89var elm = document.getElementById("selectImage"); 90elm.onchange = function(evt){ 91 var selectFiles = evt.target.files; 92 if(selectFiles.length != 0) { 93 var fr = new FileReader(); 94 fr.readAsDataURL(selectFiles[0]); 95 fr.onload = function(evt) { 96 document.getElementById('boxImage').innerHTML = '<img src="' + fr.result + '" alt="" style="min-width:20px;min-height:250px;max-width:250px;max-height:250px; width:250px;border-radius:100%;">'; 97 } 98 } 99} 100</script> 101<th>お名前</th><td><input type="text" 102 name ="name" value="<?php if(isset($name)){echo $name; } ?>"></td></tr> 103 <tr> 104 <th>生年月日</th><td><input type="date" 105 name ="email" value="<?php if(isset($email)){echo $email; } ?>"></td> 106 107 </tr> 108 <tr> 109 <th>性別 </th><td> 110 <select name ="subject"> 111 <option value="男" <?php if(isset($subject) && $subject === "男"){ echo "selected" ;} ?>>男</option> 112 113 <option value="女" <?php if(isset($subject) && $subject === "女"){ echo "selected" ;} ?>>女</option> 114 115 <option value="その他" <?php if(isset($subject) && $subject === "その他"){ echo "selected" ;} ?>>その他</option> 116 </select> 117 </td> 118 </tr> 119 <tr> 120 <th>自己紹介</th> 121 <td><textarea name ="body" cols ="40" rows ="10"><?php if(isset($body)){ echo$body; } ?></textarea></td> 122 </tr> 123 <tr> 124 <td colspan ="2"><input type ="submit" name ="submit" value ="確認画面へ"></td> 125 </tr> 126 </table> 127 128 </form> 129 130</body> 131</html> 132Form2.php 133<?php 134session_start(); 135 136if(isset($_SESSION['name'])){ 137 $img = $_SESSION['img']; 138 $name = $_SESSION['name']; 139 $email = $_SESSION['email']; 140 $subject = $_SESSION['subject']; 141 $body = $_SESSION['body']; 142 143 144 145} 146 147$_SESSION['token']=base64_encode(openssl_random_pseudo_bytes(48));$token=htmlspecialchars($_SESSION['token'],ENT_QUOTES); 148?> 149<!doctype html> 150<html> 151<head> 152 <meta charset="utf-8"> 153 <title>確認画面 - お問い合わせ 154 </title> 155 </head> 156 <body> 157 <form action="form3.php" method ="post"> 158 <input type="hidden" name="token" value="<?php echo $token ?>"> 159 <table> 160 <tr> 161 <th>画像</th><td> 162 <?php echo $img; ?></td> 163 164 </tr> 165 <tr> 166 <th>お名前</th><td> 167 <?php echo $name; ?></td> 168 169 </tr> 170 <tr> 171 <th>メールアドレス</th><td> 172 <?php echo $email; ?></td> 173 174 </tr> 175 <tr> 176 <th>お問い合わせの種類</th><td> 177 <?php echo $subject; ?></td> 178 179 </tr> 180 <tr> 181 <th>お問い合わせ内容</th><td> 182 <?php echo nl2br($body); ?></td> 183 184 185 </tr> 186 <tr> 187 <td colspan="2"><input type="submit" name="submit" value="送信する" ></td></tr> 188 </table> 189 </form> 190 <a href = "profile.php">ta</a> 191 <p><a href="form1.php?action=edit">入力画面へ戻る</a></p> 192 </body> 193</html> 194 195```ここに言語名を入力 C# 196ソースコード
試したこと
画像をスクショしてそのままそのデータを持っていくなど
補足情報(FW/ツールのバージョンなど)
XAMPP 7.3.25-1
あなたの回答
tips
プレビュー