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

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

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

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

Q&A

解決済

2回答

2914閲覧

未入力チェック

shaobao

総合スコア33

PHP

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

0グッド

0クリップ

投稿2016/07/28 04:07

こんにちは、

入力フォームを作成しているところです。
未入力チェックしているですが、postされたら、未入力エラーが出なくてそのまま送信されてしまいます。
そのまま未入力項目もDBへ登録されてしまいます。

どなたが分かれば教えてお願いいたします。

<?php if($_SESSION["ID"]): //現在の情報を取得 $nowID = $_SESSION["usr"]["id"]; if($_POST): if(isset($_POST["title"]) && isset($_POST["txt"])): //アルバムを作成====================================================== $db->tbl_name = "core_gallery"; //アルバムIDを設定 $albmID = $fc->creatIDshort("GL_"); $insert = array( "key"=>NULL, "id"=>$albmID, "td"=>$nowID, "title"=>$_POST["title"], "txt"=>$_POST["txt"], "createTime"=>date("Y-m-d H:i:s") ); //DB書き込み $db->DBIN($insert); $_SESSION["ga"]["id"] = $albmID; $_SESSION["ga"]["title"] = $_POST["title"]; $_SESSION["ga"]["txt"] = $_POST["txt"]; //===============================================================*/ else: $err = "アルバムのタイトルを設定してください"; endif; else: $err = "データが送信されませんでした"; endif; $db->tbl_name = "core"; $g = $db->Key_1_all("td" , $_SESSION["usr"]["id"]); $db->tbl_name = "td"; $images = $db->Key_1_all("albm" , $_GET["alb"]); else: $err = "ログインが切れています。ログインし直してください。"; endif; ?>

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

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

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

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

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

guest

回答2

0

ベストアンサー

issetは、変数が定義されているかを確認するためのモノです。
値がnullであろうと0であろうと''であろうと、定義されていれば通ります。
空かどうかを確認するなら、

php

1empty($_POST['title']);

を試して下さい

投稿2016/07/28 04:18

kunai

総合スコア5405

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

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

shaobao

2016/07/28 07:03

kunaiさん この度、ご回答いただき誠にありがとうございます。 なるほど、emptyで試してみたら、解決になりました。 ありがとうございました。 今後とも宜しくお願いいたします。
guest

0

バリデートまで考えたらフィルタした上で一度変数に落とした方が効率的かも

PHP

1<?PHP 2$title=filter_input(INPUT_POST,"title",FILTER_DEFAULT)?:""; 3$txt=filter_input(INPUT_POST,"txt",FILTER_DEFAULT)?:""; 4$disp_title=htmlspecialchars($title); 5$disp_txt=htmlspecialchars($txt); 6 7if($title!=="" and $txt!==""){ 8 print "title:{$disp_title}<br>\ntxt:{$disp_txt}<br>\nsuccess!"; 9 exit; 10} 11 12print <<<eof 13<form method="post"> 14title:<input type="text" name="title" value="{$disp_title}"><br> 15txt:<input type="text" name="txt" value="{$disp_txt}"><br> 16<input type="submit" name="go"><br> 17</form> 18eof; 19?> 20```入力

投稿2016/07/28 04:43

yambejp

総合スコア114769

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

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

shaobao

2016/07/28 07:04

yambejaさん この度、ご回答いただき誠にありがとうございます。 ご参考になりました。 ありがとうございました。 今後とも宜しくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問