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

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

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

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

Q&A

解決済

1回答

7534閲覧

PHP 空白部分を未入力として扱いたい

parasite

総合スコア5

PHP

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

0グッド

0クリップ

投稿2019/08/27 09:40

前提・実現したいこと

現在、PHPを独学中です。

フォームにてPOSTで送信ファイルと受信ファイルを別々に作成して
テキストボックスに名前を入力し
入力されている際は「ようこそ〇〇さん」
入力されていない場合は「名前を入力してください」
と表示させ、入力内容がスペースのみの場合も未入力として表示させたいです。

一応、色々と調べなんとか希望の動作が行われるようにはなったのですが、どうしても無駄が多い書き方であったりコードとして正しい書き方かもわからないので訂正部分や別の書き方などありましたらご教授お願いいたします。

質問以外にもコードを見て頂いて他、気になったことなどあれば是非、お願いいたします。
拙い質問、申し訳ございませんでした。

該当のソースコード

送信側

HTML

1<!DOCTYPE HTML> 2<html lang="ja"> 3 <head> 4 <meta charset="UTF-8"> 5 </head> 6 <body> 7 <form action="practice_form.php" method="post"> 8 <p> 9 名前: 10 <input type='text' name="my_name" value=""> 11 <input type='submit' value="送信"> 12 </p> 13 </form> 14 </body> 15</html>

受信側

PHP

1<?php 2 $error_msg = htmlspecialchars('名前を入力してください', ENT_QUOTES, 'UTF-8'); 3 if (isset ($_POST['my_name']) === TRUE && empty ($_POST['my_name']) === TRUE){ 4 print $error_msg; 5 }else if(ctype_space ($_POST['my_name']) === TRUE){ 6 print $error_msg; 7 }else if(isset ($_POST['my_name']) === TRUE){ 8 $my_name = htmlspecialchars($_POST['my_name'], ENT_QUOTES, 'UTF-8'); 9 print 'ようこそ' . $my_name . 'さん'; 10 } 11?>

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

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

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

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

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

kei344

2019/08/27 10:18

「何」が「どのように」わからないのか、コードのどの部分で詰まっているのかなどを、出ているエラーなどと併せて、具体的に記述されたほうが回答を得られやすいと思います。
guest

回答1

0

ベストアンサー

「入力内容がスペースのみ」を判定する、ミニマルなコードを例示。

php

1<?php 2 3$arr = [ 4 '', // 文字列長ゼロ 5 ' ', // 半角空白ひとつ 6 ' ', // 全角空白ひとつ 7 ' abc', // 先頭に半角空白ひとつ 8 ' あいう', // 先頭に全角空白ひとつ 9 ' ', // 半角空白ふたつ 10 '     ' // 全角空白5つ 11]; 12foreach ($arr as $item) { 13 if (!preg_match('/^\s*$/u', $item)) { 14 echo '「' . $item . '」はブランクではない.' . PHP_EOL; 15 } 16}

イメージ説明

投稿2019/08/27 10:57

編集2019/08/27 11:07
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

parasite

2019/08/27 12:58

正規表現をりようするのですね ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問