困っていること
checkboxが未入力の場合、エラー処理をPHPで出力処理を行えていない状況
やりたいこと
postで、性別の部分を空で送った場合に、エラー処理、性別がチェックされていませんを出力したい
今現在わかっていること
そもそも、POSTで送られているか調べると、性別の部分を送っていないため
エラー表示にsexは未定義ですといわれる。
php
1<?php 2session_start(); 3 4$errors = array(); 5 6if(isset($_POST['submit']) && $_POST['submit'] === "送信"){ 7 $KlastName = $_POST['KlastName']; 8 $Kname = $_POST['Kname']; 9 $lastName = $_POST['lastName']; 10 $name = $_POST['name']; 11 $password = $_POST['password']; 12 $confirm_password = $_POST['confirm_password']; 13 $sex = $_POST['sex']; <ーそもそもpostで送られていないので代入できていない 14 $bday = $_POST['bday']; 15 16 if ($KlastName === "") { 17 $errors['KlastName'] = "カナ苗字が記載されていません"; 18 } 19 if ($Kname === "") { 20 $errors['Kname'] = "カナ名前が記載されていません"; 21 } 22 if ($lastName ==="") { 23 $errors['lastName'] = "苗字が記載されていません"; 24 } 25 if ($name === "") { 26 $errors['name'] = "名前が記載されていません"; 27 } 28 if ($password === "") { 29 $errors['password'] = "パスワードが記載されていません"; 30 } 31 if ($confirm_password === "") { 32 $errors['confirm_password'] = "パスワード確認もよろしく"; 33 } 34 if ($sex === "") { 35 $errors['sex'] = "性別のチェックをお願いします"; 36 } 37 if ($bday === "") { 38 $errors['bday'] = "日付の選択をしてください"; 39 } 40} 41 42 ?> 43 44<!DOCTYPE html> 45<html> 46 <head> 47 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 48 <title>ログイン前</title> 49 <script src="app.js" type="text/javascript"></script> 50 </head> 51 <body> 52 <h1>自己紹介</h1> 53 <h2>ユーザ新規登録</h2> 54 <form action="" method="post"> 55 <?php 56 echo "<ul>"; 57 foreach ($errors as $message) { 58 echo "<li>"; 59 echo "$message"; 60 echo "</li>"; 61 } 62 echo "</ul>"; 63 ?> 64 <p>カナ苗字 65 <input type="text" name="KlastName" input pattern="^[ァ-ン]+$" 66 title="全角カタカナでご入力ください。"> 67 </p> 68 <p>カナ名前 69 <input type="text" name="Kname" input pattern="^[ァ-ン]+$" 70 title="全角カタカナでご入力ください。"> 71 </p> 72 <p>苗字 73 <input type="text" name="lastName"> 74 </p> 75 <p>名前 76 <input type="text" name="name" > 77 </p> 78 <p>パスワード 79 <input id="password" type="text" name="password"> 80 </p> 81 <div id="pass_message"></div> 82 <p>パスワード確認 83 <input type="password" name="confirm_password" id="confirm_password" 84 onkeyup="setConfirmMessage(this.value);"> 85 </p> 86 <div id="pass_confirm_message"></div> 87 ここが性別のチェック-> <input type="radio" name="sex[]" value="1">男 88 <input type="radio" name="sex[]" value="2">女 89 <br> 90 生年月日<input type="date" name="bday" value="<?php echo date('Y-m-j');?>"> 91 <br> 92 <input type="submit" name="submit" value="送信"> 93 </form> 94 </body> 95</html> 96
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。