Notice: Undefined variable: errorが出ないようにしたい。また出る理由が知りたい。
nameなどの記入欄が“空”な場合、再入力を求めるメッセージを表示、パスワードなら四文字以下ならするようなプログラムを作成しています。
Notice: Undefined index: name in C:\xampp\htdocs\post\join\index.php on line 49
Notice: Undefined variable: error in C:\xampp\htdocs\post\join\index.php on line 50
Notice: Undefined index: email in C:\xampp\htdocs\post\join\index.php on line 56
Notice: Undefined variable: error in C:\xampp\htdocs\post\join\index.php on line 57
Notice: Undefined variable: error in C:\xampp\htdocs\post\join\index.php on line 64
Notice: Undefined variable: error in C:\xampp\htdocs\post\join\index.php on line 67
Notice: Undefined variable: error in C:\xampp\htdocs\post\join\index.php on line 73
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') { 21 $error['image'] = 'type'; 22 } 23 } 24 if(empty($error)) { 25 $image = date('YmdHis') . $_FILES['image']['name']; 26 move_uploaded_file($_FILES['image']['tmp_name'], '../member_picture/' . $image); 27 28 $_SESSION['join'] = $_POST; 29 $_SESSION['join']['image'] = $image; 30 header('Location: check.php'); 31 exit(); 32 } 33} 34?> 35 <p>以下のフォームに必要事項をご記入ください</p> 36 <form method="POST" action="" enctype="multipart/form-data"> 37 <dl> 38 <dt>name<span class="required">必須</span></dt> 39 <dd><input type="text" name="name" size="35" maxlength="100" 40 value="<?php echo htmlspecialchars($_POST['name'], ENT_QUOTES); ?>"> 41 <?php if ($error['name'] == 'blank'): ?> 42 <p class="error">* 名前を入力してください</p> 43 <?php endif; ?> 44 </dd> 45 <dt>e-mail<span class="required">必須</span></dt> 46 <dd><input type="text" name="email" size="35" maxlength="100" 47 value="<?php echo htmlspecialchars($_POST['email'], ENT_QUOTES); ?>"> 48 <?php if ($error['email'] == 'blank'): ?> 49 <p class="error">* メールアドレスを入力してください</p> 50 <?php endif; ?> 51 </dd> 52 <dt>password<span class="required">必須</span></dt> 53 <dd><input type="password" name="password" size="10" maxlength="20" 54 value="<?php echo htmlspecialchars($_POST['password'], ENT_QUOTES); ?>"> 55 <?php if ($error['password'] == 'blank'): ?> 56 <p class="error">* パスワードを入力してください。</p> 57 <?php endif; ?> 58 <?php if ($error['password'] == 'length'): ?> 59 <p class="error">* パスワードは4文字以上で入力してください</p> 60 <?php endif; ?> 61 </dd> 62 <dt>picture</dt> 63 <dd><input type="file" name="image" size="35"> 64 <?php if ($error['image'] == 'type'): ?> 65 <p class="error">* .gifまたは.jpgの画像を指定してください</p> 66 <?php endif; ?> 67 <?php if (!empty($error)): ?> 68 <p class="error">* 画像を再度指定してください</p> 69 <?php endif; ?> 70 </dd> 71 </dl> 72 <div><input type="submit" value="入力内容を確認"></div> 73 </form> 74
ソースコードの順番を変えたり、ほかの方の質問、サイト、テキストを見てみてなどしましたが、
このエラー自体が、変数の未定義によるもの、ということのようですが、それがどういう意味なのか
初心者の私には解決できませんでした……。
現在、ハローワークの職業訓練生なのですが、このコロナの影響で学校が閉鎖。
閉鎖中の課題として、テキストに沿って、このプログラムを書いています。
本来であれば、訓練校の講師の方に聴くのですが、閉鎖状態が無期限で続くことになり質問もできず。
初歩的な理解が足りていないのかもしれませんが、お力添えを頂ければ幸いです。
使用ツール Brackets
出典 よくわかるPHPの教科書【PHP7対応版】著:たにぐちまこと マイナビブックス P.235~253
回答2件
あなたの回答
tips
プレビュー