セッションに保存した画像を次の画面に表示したいのですが、表示することができません。
画面遷移すると、下の画像のように小さなアイコンで表示されます。
ニックネームやメールアドレスは次の画面まで保存されているので、セッションに問題はないと思います。
また、画像は指定したファイルに保存されているので、画像の行き来も問題ないと思います。
画像をアップロードする画面(index.php)↓
PHP
1<?php 2session_start(); 3 4if(!empty($_POST)) { 5 if ($_POST['name'] === '') { 6 $error['name'] = 'blank'; 7 } 8 if ($_POST['email'] === '') { 9 $error['email'] = 'blank'; 10 } 11 if (strlen($_POST['password']) < 4 ) { 12 $error['password'] = 'length'; 13 } 14 if ($_POST['password'] === '') { 15 $error['password'] = 'blank'; 16 } 17 $fileName = $_FILES['image']['name']; 18 if(!empty($fileName)) { 19 $ext = substr($fileName, -3); 20 if ($ext != 'jpg' && $ext != 'gif' && $ext != 'png') { 21 $error['image'] = 'type'; 22 } 23 } 24 25 if (empty($error)) { 26 $image = date('YmdHis') . $_FILES['image']['name']; 27 move_uploaded_file($_FILES['image']['tmp_name'],'../member_picture/' . $image); 28 $_SESSION['join'] = $_POST; 29 header('Location: check.php'); 30 exit(); 31 } 32} 33 34if($_REQUEST['action'] == 'rewrite' && isset($_SESSION['join'])) { 35 $_POST = $_SESSION['join']; 36} 37?> 38<!DOCTYPE html> 39<html lang="ja"> 40<head> 41 <meta charset="UTF-8"> 42 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 43 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 44 <title>会員登録</title> 45 46 <link rel="stylesheet" href="../style.css" /> 47</head> 48<body> 49<div id="wrap"> 50<div id="head"> 51<h1>会員登録</h1> 52</div> 53 54<div id="content"> 55<p>次のフォームに必要事項をご記入ください。</p> 56<form action="" method="post" enctype="multipart/form-data"> 57 <dl> 58 <dt>ニックネーム<span class="required">必須</span></dt> 59 <dd> 60 <input type="text" name="name" size="35" maxlength="255" value="<?php print(htmlspecialchars($_POST['name'], ENT_QUOTES)); ?>" /> 61 <?php if ($error['name'] === 'blank'): ?> 62 <p class="error">* ニックネームを入力してください</p> 63 <?php endif; ?> 64 </dd> 65 <dt>メールアドレス<span class="required">必須</span></dt> 66 <dd> 67 <input type="text" name="email" size="35" maxlength="255" value="<?php print(htmlspecialchars($_POST['email'], ENT_QUOTES)); ?>" /> 68 <?php if ($error['email'] === 'blank'): ?> 69 <p class="error">* メールアドレスを入力してください</p> 70 <?php endif; ?> 71 <dt>パスワード<span class="required">必須</span></dt> 72 <dd> 73 <input type="password" name="password" size="10" maxlength="20" value="<?php print(htmlspecialchars($_POST['password'], ENT_QUOTES)); ?>" /> 74 <?php if ($error['password'] === 'length'): ?> 75 <p class="error">* パスワードは4文字以上で入力してください</p> 76 <?php endif; ?> 77 <?php if ($error['password'] === 'blank'): ?> 78 <p class="error">* パスワードを入力してください</p> 79 <?php endif; ?> 80 </dd> 81 82 <!--////// ↓画像のアップロード↓ //////--> 83 <dt>写真など</dt> 84 <dd> 85 <input type="file" name="image" size="35" value="test" /> 86 <?php if ($error['image'] === 'type'): ?> 87 <p class="error">* 写真などは「.gif」または「.jpg」「.png」の画像を指定してください</p> 88 <?php endif; ?> 89 <?php if (!empty($error)): ?> 90 <p class="error">* 恐れ入りますが、画像を改めて指定してください</p> 91 <?php endif; ?> 92 </dd> 93 <!--////// ↑画像のアップロード↑ //////--> 94 </dl> 95 <div><input type="submit" value="入力内容を確認する" /></div> 96</form> 97</div> 98</body> 99</html> 100
画像を表示したい画面(check.php)↓
PHP
1<?php 2session_start(); 3 4if(!isset($_SESSION['join'])) { 5 header('Location: index.php'); 6 exit(); 7} 8?> 9<!DOCTYPE html> 10<html lang="ja"> 11<head> 12 <meta charset="UTF-8"> 13 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 14 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 15 <title>会員登録</title> 16 17 <link rel="stylesheet" href="../style.css" /> 18</head> 19<body> 20<div id="wrap"> 21<div id="head"> 22<h1>会員登録</h1> 23</div> 24 25<div id="content"> 26<p>記入した内容を確認して、「登録する」ボタンをクリックしてください</p> 27<form action="" method="post"> 28 <input type="hidden" name="action" value="submit" /> 29 <dl> 30 <dt>ニックネーム</dt> 31 <dd> 32 <?php print(htmlspecialchars($_SESSION['join']['name'], ENT_QUOTES)); ?> 33 </dd> 34 <dt>メールアドレス</dt> 35 <dd> 36 <?php print(htmlspecialchars($_SESSION['join']['email'], ENT_QUOTES)); ?> 37 </dd> 38 <dt>パスワード</dt> 39 <dd> 40 【表示されません】 41 </dd> 42 <dt>写真など</dt> 43 <dd> 44 45 <!--//////// ↓画像を表示する↓ //////--> 46 <?php if ($_SESSION['join']['image'] !== ''): ?> 47 <img src="../member_picture/<?php print(htmlspecialchars($_SESSION['join']['image'], ENT_QUOTES)); ?>"> 48 <?php endif; ?> 49 <!--//////// ↑画像を表示する↑ //////--> 50 51 </dd> 52 </dl> 53 <div><a href="index.php?action=rewrite">« 書き直す</a> | <input type="submit" value="登録する" /></div> 54</form> 55</div> 56 57</div> 58</body> 59</html> 60 61``` 62 63画像を表示しているコード↓ 64```PHP 65<?php if ($_SESSION['join']['image'] !== ''): ?> 66 <img src="../member_picture/<?php print(htmlspecialchars($_SESSION['join']['image'], ENT_QUOTES)); ?>"> 67 <?php endif; ?> 68``` 69 70 71よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー