PHPの入力フォームでの手直し。

実現したいこと

研修で作っているPHPの入力フォームでどうしてもわからない箇所が2点あり、質問させていただきました。

前提

エラーは発生してはいないのですが、作ったプログラムに対して、「では、書いたプログラムを手直ししていこう」ということで、どうしてもわからない箇所があり質問させていただきました。

発生している問題・エラーメッセージ

11行目の if(isset($_POST['back']) && $_POST['back']) { } これは無くせるため、無くした形で書くことを指示され、色々省略できそうな形を試してみたのですが、無くすと値を取得できなくなり、無くせません。 <form></form>タグも今は2つに分かれていますが、1つにまとめられるとのことなんですが、まとめると、戻るボタンと送信ボタンが押せなくなります。

該当のソースコード

<?php $name = "<div class = 'name'>名前</div>"; $mail = "<div class = 'mail'>メール</div>"; $gender = "<div class = 'gender'>性別</div>"; $todouhuken = "<div class = 'todouhuken'>都道府県</div>"; $item = $name. $mail . $gender . $todouhuken; session_start();//sessionの開始 $mode = 'input'; if(isset($_POST['back']) && $_POST['back']) { } else if(isset($_POST['confirm']) && $_POST['confirm']) { //確認ボタンクリック時 //エラーが発生したときに下記エラーメッセージを表示 if(empty($_POST['fullname'])) { //!$_POST=空のとき $errnamemessage = "※名前を入力してください"; } else if(mb_strlen($_POST['fullname']) > 20) { //mb_strlen=文字列の長さを取得 $errnamecount = "※名前は20文字以内にしてください"; } if(empty($_POST['mail'])) { $errmailmessage = "※Eメールを入力してください"; } else if(mb_strlen($_POST['mail']) > 50 ) { $errmailcount = "※Eメールは50文字以内にしてください"; } if(empty($_POST['gender'])) { //if(!$_POST['gender']){ $errgender = "※性別を選択してください"; } if(empty($_POST['todouhuken'])) { $erraddressmessage = "※都道府県を選択してください"; } if (empty($errnamemessage) && empty($errnamecount) && empty($errmailmessage) && empty($errmailcount) && empty($errgender) && empty($erraddressmessage)) { $mode = 'confirm'; } $_SESSION['fullname'] = $_POST['fullname'];//確認画面に入るときにPOSTの値をsessionに代入する。 $_SESSION['mail'] = $_POST['mail']; $_SESSION['todouhuken'] = $_POST['todouhuken']; if(isset($_POST['gender'])) { $_SESSION['gender'] = ($_POST['gender']); } }else if( isset($_POST['send']) && $_POST['send'] ) { $data = array(//sendに入ってCSVに書き込む array($_SESSION['fullname'],$_SESSION['mail'],$_SESSION['gender'],$_SESSION['todouhuken'])); $fp = fopen('touroku.csv', 'a'); foreach ($data as $fields) { fputcsv($fp, $fields); } fclose($fp); $mode = 'send'; }else { $_SESSION['fullname'] = '';//セッションク情報をクリア $_SESSION['mail'] = '';//array(); でも可能 $_SESSION['gender'] = ''; $_SESSION['todouhuken'] = ''; } ?> <!DOCTYPE html> <html lang="ja"> <body> <head> <meta charset="utf-8"><?php ?><title>テストページ</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <div class="container"> </div> <header class="header"> <div class="twitter"> <a href="https://twitter.com/?lang=ja"><img src="000c.jpg" width=50 height=50></a> </div> </header> <main> <div class="main"> </div> <?php if( $mode == 'input' ) { ?> <!-- 入力画面 --> <?php if(isset($errnamemessage)) { ?> <div class="errname" style="color:red;"> <?= $errnamemessage?> </div> <?php } ?> <?php if(isset($errnamecount)) { ?> <div class="errname" style="color:red;"> <?= $errnamecount?> </div> <?php } ?> <?php if(isset( $errmailmessage)) { ?> <div class="errmail" style="color:red;"> <?= $errmailmessage?> </div> <?php } ?> <?php if(isset( $errmailcount)) { ?> <div class="errmail" style="color:red;"> <?= $errmailcount?> </div> <?php } ?> <?php if(isset( $errgender)) { ?> <div class="errgender" style="color:red;"> <?= $errgender?> </div> <?php } ?> <?php if(isset($erraddressmessage)) { ?> <div class="erraddress" style="color:red;"> <?= $erraddressmessage?> </div> <?php } ?> <form action="./test2.php" method="post"> <?= $item ?> <div class="namebox"> <input type="text" name="fullname" style="width: 600px; height: 35px;" placeholder="名前を入力してください。" value="<?= $_SESSION['fullname']?>"> </div> <div class="mailbox"> <input type="text" name="mail" style="width: 600px; height: 35px;" placeholder="Eメールを入力してください。" value="<?= $_SESSION['mail']?>"> </div> <div class="genderradio"> <input type="radio" name="gender" value="男性" <?php if (isset($_SESSION['gender']) && $_SESSION['gender'] == "男性") echo 'checked'; ?> >男性</input> <input type="radio" name="gender" value="女性" <?php if (isset($_SESSION['gender']) && $_SESSION['gender'] == "女性") echo 'checked'; ?> >女性</input> <!--<input type="radio" name="gender" value="" style="display:none;"<?php// if (isset($_SESSION['gender']) && $_SESSION['gender'] == "")echo 'checked'; ?>></input>--> </div> <div class="selectbox"> <select name="todouhuken" style="width: 600px; height: 35px;"> <option value="" >選択してください</option> <option value="北海道"<?php if (isset($_SESSION['todouhuken']) && $_SESSION['todouhuken'] == "北海道") echo 'selected'; ?>>北海道</option> <option value="青森県"<?php if (isset($_SESSION['todouhuken']) && $_SESSION['todouhuken'] == "青森県") echo 'selected'; ?>>青森県</option> <option value="秋田県"<?php if (isset($_SESSION['todouhuken']) && $_SESSION['todouhuken'] == "秋田県") echo 'selected'; ?>>秋田県</option> </select> </div> <div class="confirm"> <input type="submit" name="confirm" style="width: 500px; height: 40px;" value="確認" /> </div> </form> <?php } else if ($mode == 'confirm') { ?> <!-- 確認画面 --> <form action="./test2.php" method="post"> <?= $item ?> <div class="fullname"> <?= $_SESSION['fullname']; ?> </div> <div class="email"> <?= $_SESSION['mail']; ?> </div> <div class="selectgender"> <?= $_SESSION['gender']; ?> </div> <div class="selecttodouhuken"> <?= $_SESSION['todouhuken']; ?> </div> <div class="back"> <input type="submit" name="back" style="width: 400px; height: 40px;" value="戻る" /> </div> <div class="send"> <input type="submit" name="send" style="width: 400px; height: 40px;" value="送信" /> </div> <?php //print_r($_SESSION); ?> </form> <?php } else { ?> <div class="sousin">送信しました。</div> <div class="home"> <a href="test2.php">登録ページへ</a> </div> <?php } ?> </main> <footer class="footer"> <div class="register"><a href="data.php">登録一覧</div> </footer> </div> </body> </html>

試したこと

6時間以上ネットで調べながら改ざんしていましたが、まったく上手くいきませんでした。
答えではなく、アドバイスや助言をいただけないでしょうか?

補足情報(FW/ツールのバージョンなど)

コメントを投稿

0 コメント