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

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

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

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

Q&A

解決済

1回答

555閲覧

PHPの条件分岐について

bombom0023

総合スコア7

PHP

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

0グッド

2クリップ

投稿2020/06/13 01:18

編集2020/06/13 07:21

前提・実現したいこと

お問い合わせフォームで「textarea($comment)」に何も文字列がない時(未入力の時)だけ
「本文が未入力」の文字列を変数に返したい。

ここに質問の内容を詳しく書いてください。
PHPで下記のメールフォームを作成しています。(正常に動作しているソースです)
やりたいことは条件分岐で
** $commentが「空」の時「本文が未入力」の文字列を$comenntに代入してメールを送信する。ということがやりたいです

該当ソース

**$comment = (isset($_POST["comment"]) && $_POST["comment"]) ? $_POST["comment"] : "";**

正常に動作しているソース全体です
(OOOOOの箇所はお客様の情報なので変換しています)

<?php ini_set( "display_errors", "off"); define('SUBJECT_PRO', 'ランディングページからお問い合わせがありました'); define('TO_ADDR', 'info@oooooooo'); define('FROM_NAME', '「ooooooo」'); define('FROM_ADDR', 'info@oooooooo'); require_once("sendmail/sendmail.php"); if(!empty($_POST["post_flg"]) && !empty($_POST["tel"])){ $name = (isset($_POST["name"]) && $_POST["name"])?$_POST["name"]:""; $tel = (isset($_POST["tel"]) && $_POST["tel"]) ? $_POST["tel"] : ""; $email = (isset($_POST["email"]) && $_POST["email"]) ? $_POST["email"] : ""; $address = (isset($_POST["address"]) && $_POST["address"]) ? $_POST["address"] : ""; $soudan = (isset($_POST["soudan"]) && $_POST["soudan"]) ? $_POST["soudan"] : ""; $howContact = (isset($_POST["howContact"]) && $_POST["howContact"]) ? $_POST["howContact"] : ""; **$comment = (isset($_POST["comment"]) && $_POST["comment"]) ? $_POST["comment"] : "";** $subject_title="ランディングページからお問い合わせがありました。"; $header .= ' '."\n". $name."様"."\n\n". "この度は「ooooooo」にお問い合わせいただき誠にありがとうございます。"."\n\n". '改めてご連絡をさせていただきますので、'."\n". '誠に恐れ入りますが、お待ちいただけますよう宜しくお願い申し上げます。'."\n". '(※このメールはお問い合わせと同時に送信される自動返信メールです。)'."\n\n"; $headeremailadmin .= 'ランディングページから問い合わせがありました。'."\n\n"; $content .= "■お問い合わせ内容■"."\n\n". "【お名前】"."\n ".$name."\n\n". "【電話番号】"."\n ".$tel."\n\n". "【メールアドレス】"."\n ".$email."\n\n". "【不用品の所在地】"."\n ".$address."\n\n". "【ご相談内容】"."\n ".$soudan."\n\n". "【ご希望の連絡方法】"."\n ".$howContact."\n\n". "【お問い合わせ内容】"."\n ".$comment."\n\n"; $footer .= '━━━━━━━━━━━━━━━━━━━━━━━━━━━'."\n". 'ooooooo". '━━━━━━━━━━━━━━━━━━━━━━━━━━━'."\n"; $footer_admin .= ''; $body = $header.$content.$footer; $bodyadmin = $headeremailadmin.$content.$footer_admin; if($email){ if(!e_send_mail('',$email,SUBJECT,$body,FROM_NAME,FROM_ADDR)){ // システムエラー enc_mb_send_mail失敗 //echo 'Successfully'; //exit; } } if(!e_send_mail('',TO_ADDR,$subject_title,$bodyadmin,FROM_NAME,FROM_ADDR)){ // システムエラー enc_mb_send_mail失敗 //echo 'Failed'; //exit; } header('Location: thanks.html'); } ?>
コード

試したこと①

$comment = (isset($_POST["comment"]) && $_POST["comment"]) ? $_POST["comment"] : ""; if ($comment == 0){ $comment = '【お問い合わせ未記入】'; }

試したこと②

$comment = (isset($_POST["comment"]) && $_POST["comment"]) ? $_POST["comment"] : ""; if (!empty($comment)){ $comment = '【お問い合わせ未記入】'; }

結果①

文字を入力した時も「本文が未入力」が出力される。

結果

文字を入力した時も「本文が未入力」が出力される。

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

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

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

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

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

m.ts10806

2020/06/13 02:30

三項演算子の右辺をそのまま使わないのはどうしてでしょう?
Daregada

2020/06/13 02:55

> 正常に動作しているソース全体です 本当に? 「'ooooooo".」とか書いてあるんだけど。
kei344

2020/06/13 03:42

(質問文は編集できます)質問文のコードはコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
guest

回答1

0

ベストアンサー

思い通りにifが動かない時はifの条件を疑うかifの判定対象の値を確認しましょう
確認にはecho print error_log
予期せぬ動作の制御にはtry~catch
入力値を想定しきれない(制御出来ない)のであればassert の使用も有効です

投稿の文章から判断出来るアドバイスは、よく確認しましょうという事ぐらいです

投稿2020/06/13 03:43

hentaiman

総合スコア6426

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問