kuruton_ternのブログ

プログラミングのアウトプットブログ。

inputタグの中身を送りたいのに送れない

「formタグの内容を送りたいのに送れない!!」

  ってなったときにミスに気づくのに時間がかかりました。

正確には
「formタグの中に送りたい内容をいれた。そして送信のためのボタンも押した!
なのにname属性の値とvalue属性の値がphp側に送られていない。」 という状況です。


$_POST['name属性の中身']をゲットしたいのに、それがゲットできない。

という状況でした。

php言語、htmlを使用





さて、コードですがまずは正しいコードを。

これは正しいコード  ↓

<form action="" method="post" class="form">
<h2 class="title">ログイン</h2>


<!-- メールアドレス -->
<label class="">
メールアドレス
<input type="text" name="email" value="">
</label>
<br>
<!-- パスワード -->
<label class="">
パスワード
<input type="password" name="pass" value="">
</label>
<br>
<label>
<input type="checkbox" name="pass_save">次回ログインを省略する
</label>
<br>
<div class="btn-container">
<input type="submit" class="btn btn-mid" value="ログイン">
</div>

</form>

 

見た目はこうなります。

f:id:kuruton_tern:20190901224256p:plain

formの外に出すとinputタグの中身は送れない

で、どう間違えたかというと

<form action="" method="post" class="form">
<h2 class="title">ログイン</h2>


<!-- メールアドレス -->
<label class="">
メールアドレス
<input type="text" name="email" value="">
</label>
<br>
<!-- パスワード -->
<label class="">
パスワード
<input type="password" name="pass" value="">
</label>
<br>
<label>
<input type="checkbox" name="pass_save">次回ログインを省略する
</label>
<br>

</form>

--ここがミス--
<div class="btn-container">
<input type="submit" class="btn btn-mid" value="ログイン">
</div>
--ここがミス--

 

form外に

<input type="submit" class="btn btn-mid" value="ログイン">

を置いてしまっていたので、いくらログインボタンを押しても無駄でした。



あとよくあるミスは一行目の

<form action="" method="post" class="form">

でmethodを指定してなかったり、、、 (僕はmethodを指定せず送ったときもだめだった気がします)

ちなみに

action属性 送信先のファイルのパスを指定する部分。
送信ボタンを押した際にここで指定したファイルにデータの送信と同時に遷移(移動)を行う。

method属性 どういった方法で(postかgetか)データを送信するかを指定する。

post:送信する内容を目に見えないように隠して送信する。
get:URLに直接付加するのでパラメータに入ってしまう形で送信する。(=大事な情報が目に見えてしまう)

※特にメールフォームやパスワードフォームでは必ず「post」として下さい。




参考にした記事はこちらです↓

www.php-factory.net