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

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

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

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

Q&A

解決済

2回答

3447閲覧

phpでのフォーム入力画面上でのエラーメッセージの表示方法について

mm--_--mm

総合スコア113

PHP

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

0グッド

0クリップ

投稿2019/01/29 04:32

いつもお世話になっております。

phpのフォーム入力画面で、値が入力されていなかったらエラーメッセージを表示したいと考えているのですが下記のコードだと入力画面を表示した際に既にエラーメッセージが表示されてしまいます..。
入力して送信ボタンを押した際にだけ未入力であればエラーメッセージを表示するにはどうすればよいでしょうか?

わかる方いらっしゃれば教えていただけると幸いです。
よろしくお願いいたします。

php

1<?php 2 if(empty($_POST["name"])){ 3 $errmsg = "名前を入力してください"; 4 } 5 else{ 6 //別の画面に遷移する処理を書く。 7 } 8?> 9 10<!DOCTYPE html> 11<html> 12<head> 13 <meta charset="utf-8" /> 14</head> 15<body> 16 <form action="#" method="post"> 17 <p>名前</p><input type="text" name="name"> 18 <p><input type="submit" name="senendbtn" value="送信"></p> 19 </form> 20 <div class="hoge"> 21 <?php echo $errmsg;?> 22 </div> 23</body> 24</html> 25

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

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

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

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

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

guest

回答2

0

PHP

1<?php 2$name=filter_input(INPUT_POST,"name"); 3$errmsg = (!is_null($name) and $name==="")?"名前を入力してください":""; 4 5?> 6<form method="post"> 7<p>名前</p><input type="text" name="name" required> 8<p><input type="submit" name="senendbtn" value="送信"></p> 9</form> 10<div class="hoge"><?=$errmsg;?></div>

投稿2019/01/29 04:44

編集2019/01/29 04:45
yambejp

総合スコア117740

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

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

mm--_--mm

2019/01/29 04:55

ご回答いただきありがとうございます!こういったやり方もあるのですね!ちょっと試したいと思います!
guest

0

ベストアンサー

if(isset($_POST['senendbtn']) && empty($_POST['name']))

投稿2019/01/29 04:38

papinianus

総合スコア12705

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

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

mm--_--mm

2019/01/29 04:43

ご回答いただきありがとうございます!なるほど!送信ボタンのnameも判定に追加すればよかったのですね!無事解決できました!本当にありがとうございました! m(_ _)m
yambejp

2019/01/29 04:47

nameに「0」を入れてもemptyが返ってきませんか?
papinianus

2019/01/29 04:48

はい。返ります。
yambejp

2019/01/29 04:51

そうであれば「値が入力されていなかったらエラーメッセージを表示したい」とは合致しません。 基本的にpostされたデータなどをempty()で評価することは 望ましくありません
mm--_--mm

2019/01/29 04:53

emtptyは0だとエラー扱いになるんですね...あと、テストしてみたら半角スペースと全角スペースでも入力されてることになってしまいますね...issetとか何か別の方法を試してみます!
退会済みユーザー

退会済みユーザー

2019/01/29 04:55

filter_input 使うのが楽だと思いますよ。 配列とか考え出すとめんどくさいw
mm--_--mm

2019/01/29 05:00

filter_inputですね!わかりました!調べて使ってみます!本当に色々とアドバイスありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問