###前提・実現したいこと
PHPの入力チェックで確認フォームから「エラーを新規登録画面に配列で受け渡し」エラー内容を入力画面に表示させたいです
新規登録フォームでエラーが出た場合は、リダイレクトさせて新規登録フォームの戻らせている状態です。
###発生している問題
エラー内容を「確認画面」から「新規登録画面」に配列で受け渡せないこと。
受け渡すことはできているのですが、空欄になっているフォームだけ、エラー内容を新規登録画面に送ることができないです。
今は、「氏名」「メールアドレス」のみエラーチェックを行っています。
・registration.php(新規登録画面) 左上にエラーが出ています。
###registration.php(新規登録画面)
php
1<?php 2session_start(); 3 4$errors[] = $_GET["name_error"]; 5$errors[] = $_GET["email_error"]; 6 7if ($errors >= 1) { 8 foreach ($errors as $value) { 9 echo $value; 10 echo "<br>"; 11 } 12 echo ""; 13} 14 15 16 17session_destroy(); 18 ?> 19 20 21<!DOCTYPE html> 22<html lang="ja"> 23<head> 24 <meta charset="utf-8"> 25 <title>新規登録フォーム</title> 26 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 27 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" media="screen"> 28 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css"> 29 30</head> 31<body> 32 33 34 35<form class="form-horizontal" action="confirm.php" method="post"> 36 <fieldset> 37 38 <!-- Form Name --> 39 <legend style=background-color:#65ace4;><h1 style=text-align:center;>新規登録フォーム</h1></legend> 40 41 42 <!-- パンくずリスト--> 43 <ol class="breadcrumb"> 44 <li><a href="http://192.168.33.15"><span class="glyphicon glyphicon-home" aria-hidden="true"></span>トップ</a></li> 45 <li class="active">新規登録フォーム</li> 46 </ol> 47 48 49 <div class="container"> 50 51 <!-- Text input 名前--> 52 <div class="form-group" style="margin-top:30px;"> 53 <label class="col-md-4 control-label" for="name">氏名 <span class="label label-danger">必須</span></label> 54 <div class="col-md-4"> 55 <input name="name" class="form-control input-md" id="name" type="text" placeholder="例:鈴木太郎"> 56 57 </div> 58 </div> 59 60 61 62 63 <!-- Text input メールアドレス--> 64 <div class="form-group"> 65 <label class="col-md-4 control-label" for="email">メールアドレス <span class="label label-danger">必須</span></label> 66 <div class="col-md-4"> 67 <input name="email" class="form-control input-md" id="email" type="email" placeholder="例:suzuki.taro@gmail.com"> 68 69 </div> 70 </div> 71 72 73 <!-- Text input パスワード--> 74 <div class="form-group"> 75 <label class="col-md-4 control-label" for="password">パスワード <span class="label label-danger">必須</span></label> 76 <div class="col-md-4"> 77 <input name="password" class="form-control input-md" id="password" type="password" placeholder="パスワード"> 78 79 </div> 80 </div> 81 82 <!-- Text input 電話番号 --> 83 <div class="form-group"> 84 <label class="col-md-4 control-label" for="tel">電話番号 <span class="label label-danger">必須</span></label> 85 <div class="col-md-4"> 86 <input name="tel" class="form-control input-md" id="tel" type="tel" placeholder="09011112222 ハイフンなし"> 87 88 </div> 89 </div> 90 91 <!-- Select Basic 都道府県 --> 92 <div class="form-group"> 93 <label class="col-md-4 control-label" for="prefectures">都道府県 <span class="label label-danger">必須</span></label> 94 <div class="col-md-4"> 95 <select name="prefectures" class="form-control" id="prefectures"> 96 <option value="選択">選択</option> 97 <option value="東京">東京</option> 98 <option value="名古屋">名古屋</option> 99 <option value="大阪">大阪</option> 100 <option value="その他">その他</option> 101 </select> 102 </div> 103 </div> 104 105 106 <!-- インラインチェックボックス 趣味 --> 107 <div class="form-group"> 108 <label class="control-label col-md-4" for="checkbox">趣味 <span class="label label-info">任意</span></label> 109 <div class="col-md-4"> 110 <div class="checkbox"> 111 <label class="checkbox-inline"> 112 <input name="hobby[]" type="checkbox" value="野球"> 野球 113 </label> 114 <label class="checkbox-inline"> 115 <input name="hobby[]" type="checkbox" value="サッカー"> サッカー 116 </label> 117 </div> 118 </div> 119 </div> 120 121 122 123 <!-- インラインラジオボタン 性別 --> 124 <div class="form-group"> 125 <label class="control-label col-md-4" for="checkbox">性別 <span class="label label-info">任意</span></label> 126 <div class="col-md-4"> 127 <div class="radio-inline" name="gender"> 128 <input name"gender" type="radio" value="男性" name="gender" id="man">男性 129 </div> 130 <div class="radio-inline"> 131 <input name"gender" type="radio" value="女性" name="gender" id="woman">女性 132 </div> 133 </div> 134 </div> 135 136 137 138 <!-- テキストエリア お問い合わせ --> 139 <div class="form-group"> 140 <label class="col-md-4 control-label" for="contact">お問い合わせ <span class="label label-info">任意</span></label> 141 <div class="col-md-4"> 142 <textarea name="contact" placeholder="お問い合わせ" rows="3" class="form-control" id="contact"></textarea> 143 </div> 144 </div> 145 146 147 148 <!-- Button 送信ボタン --> 149 <div class="form-group"> 150 <label class="col-md-4 control-label" for="singlebutton"></label> 151 <div class="col-sm-offset-5 col-sm-7 col-xs-offset-4 col-xs-8"> 152 <a href="http://192.168.33.15"><button type="button" name="singlebutton" class="btn btn-primary" id="singlebutton">戻る</button></a> 153 <button name="singlebutton" class="btn btn-primary" id="singlebutton">確認する</button> 154 </div> 155 </div> 156 157 </div> 158 159 </fieldset> 160 </form> 161 162 163 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 164 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> 165 </body> 166 </html> 167
###confirm.php(確認フォーム)
php
1<?php 2session_start(); 3 4$name = $_POST["name"]; 5$email = $_POST["email"]; 6$password = $_POST["password"]; 7$tel = $_POST["tel"]; 8$prefectures = $_POST["prefectures"]; 9$hobby = $_POST["hobby"]; 10$gender = $_POST["gender"]; 11$contact = $_POST["contact"]; 12 13// エラーメッセージの配列の初期化 14$errormsg = array(); 15 16// 未入力チェック 17 18// 名前の未入力チェック 19if ($name = null) { 20 $errormsg[] = "名前を入力してください。"; 21} 22 23// メールアドレスの未入力チェック 24if ($email = null) { 25 $errormsg[] = "メールアドレスを入力してください。"; 26} 27 28if ($errormsg >= 1) { 29 foreach ($errormsg as $error) { 30 echo $error; 31 } 32 header("location: registration.php?name_error=名前を入力してください&email_error=メールアドレスを入力してください。"); 33 exit(); 34} 35 36 session_destroy(); 37 ?> 38 39 <!DOCTYPE html> 40 <html lang="ja"> 41 <head> 42 <meta charset="utf-8"> 43 <title>確認フォーム</title> 44 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 45 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" media="screen"> 46 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css"> 47 48 </head> 49 <body> 50 51 52 <form class="form-horizontal" action="#" method="post"> 53 <fieldset> 54 55 <!-- Form Name --> 56 <legend style=background-color:#65ace4;><h1 style=text-align:center;>確認フォーム</h1></legend> 57 58 <ol class="breadcrumb"> 59 <li><a href="http://192.168.33.15"><span class="glyphicon glyphicon-home" aria-hidden="true"></span>トップ</a></li> 60 <li><a href="http://192.168.33.15/registration.html">新規登録フォーム</a></li> 61 <li class="active">確認フォーム</li> 62 </ol> 63 64 <div class="container"> 65 66 <div class="form-group"> 67 <label class="col-sm-5 control-label">氏名</label> 68 <div class="col-sm-5"> 69 <p class="form-control-static"><?php echo $name; ?></p> 70 </div> 71 </div> 72 73 <div class="form-group"> 74 <label class="col-sm-5 control-label">メールアドレス</label> 75 <div class="col-sm-5"> 76 <p class="form-control-static"><?php echo $email; ?></p> 77 </div> 78 </div> 79 80 81 82 83 <div class="button-group"> 84 <div class="col-md-5 col-sm-offset-5 col-sm-7 col-xs-offset-4 col-xs-8"> 85 <a href="http://192.168.33.15/registration.php"><button type="button" name="singlebutton" class="btn btn-primary" id="singlebutton">戻る</button></a> 86 <button type="submit" class="btn btn-primary">送信する</button> 87 <p class="help-block" style=margin-top:15px;>以上の内容でよろしければ、送信ボタンを押してください。</p> 88 </div> 89 </div> 90 91 92 93 94 95</div> 96 </fieldset> 97 </form> 98 99 100 101 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 102 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> 103 </body> 104 </html> 105
###補足情報(言語/FW/ツール等のバージョンなど)
php PHP 5.3.3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/26 03:56
2017/11/26 08:27 編集
2017/11/26 08:52