前提
udemyで勉強していて思った通りにコードは動くのですが、分からない点があったので質問させていただきます。
発生している問題・エラーメッセージ
!emptyをページを呼び出した時にエラーコードが最初から出ないように指定しています。
ですが、フォーム送信時が空だった場合はエラーコードが出現します。
この違いは何なのでしょうか…
該当のソースコード
php
1<?php 2if (!empty($_POST)) { 3 if ($_POST["name"] === "") { 4 $error["name"] = "blank"; 5 } 6 if ($_POST["email"] === "") { 7 $error["email"] = "blank"; 8 } 9 if (strlen($_POST["password"]) < 4) { 10 $error["password"] = "length"; 11 } 12 if ($_POST["password"] === "") { 13 $error["password"] = "blank"; 14 } 15 if (empty($error)) { 16 header("Location: check.php"); 17 exit(); 18 } 19} 20?> 21 22<body> 23 <div id="wrap"> 24 <div id="content"> 25 <p>次のフォームに必要事項をご記入ください。</p> 26 <form action="" method="post" enctype="multipart/form-data"> 27 <dl> 28 <dt>ニックネーム<span class="required">必須</span></dt> 29 <dd> 30 <input type="text" name="name" size="35" maxlength="255" value="<?php print(htmlspecialchars($_POST["name"], ENT_QUOTES)); ?>" /> 31 <?php if ($error["name"] === "blank") : ?> 32 <p class="error">*ニックネームを入力してください</p> 33 <?php endif; ?> 34 </dd> 35 <dt>メールアドレス<span class="required">必須</span></dt> 36 <dd> 37 <input type="text" name="email" size="35" maxlength="255" value="<?php print(htmlspecialchars($_POST["email"], ENT_QUOTES)); ?>" /> 38 <?php if ($error["email"] === "blank") : ?> 39 <p class="error">*メールアドレスを入力してください</p> 40 <?php endif; ?> 41 <dt>パスワード<span class="required">必須</span></dt> 42 <dd> 43 <input type="password" name="password" size="10" maxlength="20" value="<?php print(htmlspecialchars($_POST["password"], ENT_QUOTES)); ?>" /> 44 <?php if ($error["password"] === "length") : ?> 45 <p class="error">*パスワードは4文字以上で入力してください</p> 46 <?php endif; ?> 47 <?php if ($error["password"] === "blank") : ?> 48 <p class="error">*パスワードを入力してください</p> 49 <?php endif; ?> 50 </dd> 51 <dt>写真など</dt> 52 <dd> 53 <input type="file" name="image" size="35" value="test" /> 54 </dd> 55 </dl> 56 <div><input type="submit" value="入力内容を確認する" /></div> 57 </form> 58 </div> 59</body>
回答2件
あなたの回答
tips
プレビュー