質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

8093閲覧

valueが表示されない

apple.ringo

総合スコア10

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/03/26 11:09

前提・実現したいこと

バリデーションに引っかかった時などに、フォームの入力保持がしたいのですが保持されません。
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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/03/26 11:12

コードはコードだけ、出力結果は出力結果だけ に分けてください。 一緒くたにされるとコピペでそのまま現象確認できません。
m.ts10806

2020/03/26 11:14

また、そのまま現象確認しようとすると、提示された本体だけでなくcommon.phpなどほかのファイルも必要になると思います。 あわせてご提示いただくか、最小構成で現象確認できるコードをご提示ください。
apple.ringo

2020/03/26 11:32

失礼いたしました。今後気をつけます。
m.ts10806

2020/03/26 11:34

質問は編集できますので適宜調整してください。 そのためのこのコメント欄です。
apple.ringo

2020/03/26 11:37

わかりました。 とりあえず無事解決できました。 ありがとうございました。
m.ts10806

2020/03/26 11:38

今からでも調整してもらえると後から見た人にも伝わりやすくなるのですけど・・・ 練習と思って。
guest

回答2

0

ベストアンサー

name="name" value
valueの前、全角空白 です。

投稿2020/03/26 11:21

Y.H.

総合スコア7914

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Y.H.

2020/03/26 11:23

もしかしてメモ帳とかでコーディングしてたりします?
apple.ringo

2020/03/26 11:35

ATOMというツールを使っています。 全角空白を直したら正常に動きました。助かりました。ありがとうございます!
guest

0

下記、最小構成で再現するコードです。

html

1<!DOCTYPE html> 2 <html lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 </head> 6 <body> 7 <input type="text" name="name" value="aaaaa"> 8 </body> 9 </html>

直したコードです。

html

1<!DOCTYPE html> 2 <html lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 </head> 6 <body> 7 <input type="text" name="name" value="aaaaa"> 8 </body> 9 </html>

投稿2020/03/26 11:21

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

apple.ringo

2020/03/26 11:36

ありがとうございます。無事解決できました。 ここがクリアできなくて全く進めなかったので助かりました!
m.ts10806

2020/03/26 11:37

画面出力や画面レイアウトに関することであればPHPから離れた静的HTMLを作って確認することです。 むしろ先に静的HTMLを作ること(「モック」と言います)は必須です。
apple.ringo

2020/03/26 11:39

参考にさせていただきます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問