前提・実現したいこと
バリデーションに引っかかった時などに、フォームの入力保持がしたいのですが保持されません。
google crhomeの開発ツールで見ると、value="値"という風にinputタグの中にあるのですが、実際のフォームのinputタグの中には文字がありません。
分かる方、よろしくお願いします。
発生している問題・エラーメッセージ
バリデーションに引っかかった時などに、フォームの入力保持がしたいのですが保持されません。 デバッグでログを吐き出してもいるのですが、特にエラーもありません。 ↓↓↓ [26-Mar-2020 10:58:14 UTC] デバッグ:「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「 [26-Mar-2020 10:58:14 UTC] デバッグ:ゲーム開始画面 [26-Mar-2020 10:58:14 UTC] デバッグ:「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「 [26-Mar-2020 10:58:14 UTC] デバッグ:post送信されています。 [26-Mar-2020 10:58:14 UTC] デバッグ:POSTの中身:Array ( [name] => aaa [age] => ) [26-Mar-2020 10:58:14 UTC] デバッグ:ねんれいが入力されていません。 [26-Mar-2020 10:58:14 UTC] デバッグ:画面表示処理終了。 ### 該当のソースコード<?php require('common.php'); debug('「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「'); debug('ゲーム開始画面'); debug('「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「「'); // post送信されている時 if(!empty($_POST)){ debug('post送信されています。'); $name = $_POST['name']; $age = $_POST['age']; debug('POSTの中身:'.print_r($_POST,true)); // 名前未入力チェック if($name === ''){ debug('なまえが入力されていません。'); $err_msg['name'] = NONAME; } // 年齢未入力チェック if($age === ''){ debug('ねんれいが入力されていません。'); $err_msg['age'] = NOAGE; } if(empty($err_msg)){ // 名前の最大文字数チェック if(mb_strlen($name) > 6){ debug('名前が6文字を超えました。'); $err_msg['name'] = MAXLEN; } // 年齢の最大文字数チェック if(mb_strlen($age) > 6){ debug('年齢が6文字を超えました。'); $err_msg['age'] = MAXLEN; } // 年齢が数値かどうかチェック if(!ctype_digit($age)){ debug('数値で入力されていません。'); $err_msg['age'] = REAGE; } if(empty($err_msg)){ debug('バリデーションOK。'); init(); // 名前をセット $_SESSION['man']->setName($name); // 年齢をセット $_SESSION['man']->setAge($age); debug('主人公の名前:'.print_r($_SESSION['man']->getName(),true)); debug('主人公の年齢:'.print_r($_SESSION['man']->getAge(),true)); debug('ゲーム画面に遷移します。'); header("Location:index.php"); } } } debug('画面表示処理終了。'); ?> <?php require('head.php'); ?> <body> <div class="frame"> <h1 class="start-title">NAMPA</h1> <form method="post" class="start-form"> <div class="start-form-text"> <span> なまえ:</span><input type="text" name="name" value="<?php if(!empty($_POST['name'])) echo $_POST['name']; ?>"> </div> <div class="area-msg"><?php if(!empty($err_msg['name'])) echo $err_msg['name']; ?></div> <div class="start-form-text"> <span>ねんれい:</span><input type="text" name="age" value="<?php if(!empty($_POST['age'])) echo $_POST['age']; ?>"> </div> <div class="area-msg"><?php if(!empty($err_msg['age'])) echo $err_msg['age']; ?></div> <input type="submit" value=" ナンパを始める" id="js-arrow-start"> </form> </div> <?php require('footer.php'); ?> ```ここに言語名を入力 PHP ソースコード
試したこと
「aaa」と入力してから、google chromeの開発ツールで確認したところ、ちゃんとvalue="aaa"となっています。
↓↓↓↓
<input type="text" name="name" value="aaa">
補足情報(FW/ツールのバージョンなど)
PHP 7.1.32
回答2件
あなたの回答
tips
プレビュー