前提・実現したいこと
PHPで、メールアドレスとパスワードを入力し登録ボタンを押すと、入力された値に問題ないか確認し、問題なければ「登録完了」、それ以外はエラーメッセージを表示するページを作成しています。
発生している問題
**html内で、echoした時、$messageが表示されません。(コード下から8行目です)** 入力した値に問題がなかった時の処理で、$messageの内容がechoされずに困っております。 原因がわかる方がいらっしゃいましたら、ご教授いただけると有り難いです。
該当のソースコード
php
1<?php 2$mail = ''; 3$passwd = ''; 4$message = ''; 5$errors = []; 6 7if (isset($_POST['mail']) === TRUE && isset($_POST['passwd']) === TRUE) { 8 // 半角全角空白をエラー扱いにする 9 $mail = preg_replace( '/\A[\x00\s]++|[\x00\s]++\z/u', '', $_POST['mail']); 10 $passwd = preg_replace( '/\A[\x00\s]++|[\x00\s]++\z/u', '', $_POST['passwd']); 11 12 // エラーバリデーション 13 if (mb_strlen($mail) === 0) { 14 $errors[] = 'メールアドレスを入力してください'; 15 } else if (preg_match('/^([a-zA-Z0-9])+([a-zA-Z0-9._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9._-]+)+$/', $mail) === 0) { 16 $errors[] = 'メールアドレスの形式が正しくありません'; 17 } 18 if (mb_strlen($passwd) === 0) { 19 $errors[] = 'パスワードを入力してください'; 20 } else if (preg_match('/\A[a-z\d]{6,18}+\z/i', $passwd) === 0) { 21 $errors[] = 'パスワードは半角英数記号6文字以上18文字以下で入力してください'; 22 } 23 //入力が正しかった場合 24 if (count($errors) === 0) { 25 $message = '登録完了!'; 26 var_dump($errors); 27 var_dump($message); 28 } 29} 30 31 32?> 33 34<!DOCTYPE html> 35<html lang="ja"> 36<head> 37 <meta charset="UTF-8"> 38 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 39 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 40 <title>課題2</title> 41 <style type="text/css"> 42 .block { 43 display:block; 44 margin-bottom: 10px; 45 } 46 </style> 47</head> 48<body> 49 <form method="post"> 50 <label for="mail">メールアドレス</label> 51 <input type="text" class="block" id="mail" name="mail" value="<?php if (isset($mail) === TRUE) {echo $mail;} ?>"> 52 <label for="passwd">パスワード</label> 53 <input type="password" class="block" id="passwd" name="passwd" value="<?php if (isset($passwd) === TRUE) {echo $passwd;} ?>"> 54 <?php 55 if ($errors > 0) { 56 foreach ($errors as $value) { 57 ?> 58 <p><?php echo $value; ?><p> 59 <?php 60 } 61 ?> 62 <?php 63 } else { 64 ?> 65 <p><?php echo $message; ?></p> 66 <?php 67 } 68 ?> 69 <button type="submit">登録</button> 70 </form> 71</body> 72</html>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/23 09:13 編集