PHP
HTML
form
post

inputのdisabled属性とreadonly属性におけるPOST時の挙動の観察

:beginner: 注:PHP初心者の記事です
もっといい解決方法があったら教えてください。

TL; DR

disable:POSTできない。
readonly:POSTできる。

記事に至るまでの紆余曲折

経緯

phpでフォームをつくる課題が出た。
確認画面から送信をする時、つまり2回目のPOSTで失敗。
大量のNotice: Undefined index:が。
var_dump($_POST)で中身をぶちまけるとarray(0){}
要するにPOSTできていない、ということであった。

PHPのせいにしてみたり、送信ボタンのタグのせいにしてみたり、formタグも疑ったりしたが、
結局inputの属性が悪いことが分かった。

解決

当方、確認画面で結果表示にinputタグをそのまま使って楽をしようとしていたのだが、
その時にdisable属性を思い出してしまったのが不幸にも黒塗りの高(略。

8h潰した戦犯(お名前欄)
お名前:<input name="name" value="<?php echo $_POST["name"]; ?>" disable>

大体はこんなことせずに、ベタで$_POST["name"]を表示して、inputを影で作るのが多いようで、
以下のようにしました。

すでに料理したものがこちら(お名前欄)
お名前:<?php echo $_POST["name"]; ?>
<input name="name" value="<?php echo $_POST["name"]; ?>" style="display:none;">

Special Thanks

今回マサカリ投げてもらった → @shoutaWATANABE