前提・実現したいこと
phpの学習中で、ユーザー登録システムについて学んでいます。
発生している問題・エラーメッセージ
登録のページで、未記入のまま送信すると、全ての項目(名前 email パスワード パスワード(再入力))において、「入力必須です」となるようにコードを書きました。しかし、一番上の名前の項目とパスワード(再入力)は「入力必須です」と表示され、他の項目は、他の内容が表示されます。var_dumpにて変数を確かめましたが 0 で、コードミスもないか確かめました。
エラーメッセージ ```![イメージ説明](b963d49aed96f18066139dac33712719.png) ### 該当のソースコード ```ここに言語を入力 コード<?php error_reporting(E_ALL); ini_set('display_error','On'); if(!empty($_POST)){ define('MSG01','入力必須です'); define('MSG02','EMAILの形式で入力してください'); define('MSG03','パスワードがあっていません'); define('MSG04','半角英数字のみご利用いただけます'); define('MSG05','6文字以上で入力してください'); $err_msg=array(); if(empty($_POST['name'])){ $err_msg['name']=MSG01; } if(empty($_POST['email'])){ $err_msg['email']=MSG01; } var_dump($_POST); if(empty($_POST['pass'])){ $err_msg['pass']=MSG01; } if(empty($_POST['pass_retype'])){ $err_msg['pass_retype']=MSG01; } $name=$_POST['name']; $email=$_POST['email']; $pass=$_POST['pass']; $pass_re=$_POST['pass_retype']; } //emailの形式ではない場合 if(!preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9._])*@([a-zA-Z0-9_-])+([a-zA-Z0-9._-]+)+$/",$email)){ $err_msg['email']=MSG02; } //パスワードとパスワードの再入力があっていない場合 if($pass !== $pass_re){ $err_msg['pass']=MSG03; } //パスワードとパスワードの再入力が6文字以上でない場合 if(!preg_match("/^[a-zA-Z0-9]+$/",$pass)){ $err_msg['pass']=MSG04; } //パスワードとパスワードの再入力が6文字以上でない場合 if(mb_strlen($pass)<6){ $err_msg['pass']=MSG05; } } ?> <!doctype html> <html lang="ja"> <head> <meta charset="utf=8"> <title></title> <link href="https://fonts.googleapis.com/earlyaccess/nicomoji.css" rel="stylesheet"> <link href="https://fonts.googleapis.com/css?family=Kosugi+Maru&display=swap" rel="stylesheet"> <style> body { background: pink; text-align: center; margin: 0 auto; padding: 0 150px; width: 25%; } input { display: block; margin: 0 auto; } h1 { font-size: 40px; font-family: 'Kosugi Maru', sans-serif; } h2 { color: #545454; font-size: 20px; } input[type="text"] { width: 100%; height: 60px; padding: 5px 10px; font-size: 16px; margin: 10px; } input[type="password"] { width: 100%; height: 60px; padding: 5px 10px; font-size: 16px; margin: 10px; } input[type="submit"] { border: none; padding: 15px 30px; margin-bottom: 15px; color: whitesmoke; float: right; background: red; font-size: 16px; } input[type="submit"]:hover { background: yellow; cursor: pointer; } </style> </head> <body> <section> <h2>ユーザー登録</h2> <form method="post"> <span class="err_msg"><?php if(!empty($err_msg['name']))echo $err_msg['name'];?></span> <input type="text" name="name" placeholder="名前" value="<?php if(!empty($_POST['name']))echo $_POST['name'];?>"> <span class="err_msg"><?php if(!empty($err_msg['email']))echo $err_msg['email'];?></span> <input type="text" name="email" placeholder="email" value="<?php if(!empty($_POST['email']))echo $_POST['email'];?>"> <span class="err_msg"><?php if(!empty($err_msg['pass']))echo $err_msg['pass'];?></span> <input type="password" name="pass" placeholder="パスワード" value="<?php if(!empty($_POST['pass']))echo $_POST['pass'];?>"> <span class="err_msg"><?php if(!empty($err_msg['pass_retype']))echo $err_msg['pass_retype'];?></span> <input type="password" name="pass_retype" placeholder="パスワード" value="<?php if(!empty($_POST['pass_retype']))echo $_POST['pass_retype'];?>"> <input type="submit" value="送信"> </form> </section> </body> コード
```ここに言語名を入力 ソースコード
試したこと
変数の確認 コードミスのチェック
補足情報(FW/ツールのバージョンなど)
mac brackets
ここにより詳細な情報を記載してください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。