■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

メールフォーム入力時に表示されるエラーメッセージについて

yunyun > メールフォーム入力時に表示されるエラーメッセージについて @ 2015/4/22 13:16
※スレッドを立てる場所を間違えていました。。。
 こちらに再度掲載いたします。

baserCMSもPHPも初心者です。
テーマ「bccolors」を使用してコツコツと自身のサイトを制作中のところ、
以下を修正したいと思うのですが、方法がわかりませんのでご教示いただければ幸いです。

メールアドレスの入力に、Eメール比較チェックを実行しています。
上下のフィールドに入力したアドレスが違った場合、現状では添付ファイルのように

「必須項目です。」
「入力データが一致していません。」

と2つのメッセージが出てしまうのですが、この場合の挙動として

「入力データが一致していません。」

この1文のみの表示にしたいのです。

各フィールドの設定は以下の通りです。
(上)email_1/[項目名]メールアドレス/[タイプ]Eメール/[必須マーク]ON/[入力チェック]Eメールチェック
(下)email_2/[項目名]メールアドレス確認/[タイプ]テキスト/[必須マーク]OFF(初期値ON)/[入力チェック]Eメールチェック
以上2つをグループにして連帯させ、Eメール比較チェックをONにしています。

メールに関するController.phpの修正かな、とは思うのですが、
なにぶんPHP初心者のため、どう手を加えたら良いのかわかりません。

以上よろしくお願いいたします。


■ BaserCMSのバージョン:3.0.6.1
■ レンタルサーバー名:ロリポップ
■ スマートURLの利用:ON
■ 設置フォルダ:サブフォルダ
■ 利用しているデータベース:MySQL
■ PHPスキル(自己評価

hanhunhun > Re: メールフォーム入力時に表示されるエラーメッセージについて @ 2015/5/20 11:32
yunyunさん

返信が遅くなったのでもう解決しているかもしれませんが一応応急処置的な方法が見つかりましたのでご報告します。

まず、方法として

1.「必須項目です。」のエラーを吐き出す方法がvalidで吐き出すVALID_〜エラーを見て吐き出していたのでまずメールフォームとその他の必須項目のフォームでエラーをだす条件を分けました。

/Users/KoichiFukuda/Documents/Projects/basercms3.0.7/theme/nada-icons/Elements/mail_input.php内の

引用:
if ($field['group_valid']) {
if ($this->Mailform->error("Message." . $field['group_field'] . "_format", "check")) {
echo $this->Mailform->error("Message." . $field['group_field'] . "_format", "形式が不正です。");
} else {
if ($field['valid'] === 'VALID_NOT_EMPTY') {
echo $this->Mailform->error("Message." . $field['group_field']."", "必須項目です。");
}

if (($this->Mailform->value("Message." . $field['field_name']) ==='') and ($field['group_field'] === 'email')){
echo $this->Mailform->error("Message." . $field['group_field']."", "必須項目です。");
}

}

echo $this->Mailform->error("Message." . $field['group_field'] . "_not_same", "入力データが一致していません。");
echo $this->Mailform->error("Message." . $field['group_field'] . "_not_complate", "入力データが不完全です。");
}


赤字部分の条件をメール以外の必須項目フォームで該当エラーがでるようにしました。

その次に

引用:
if ($field['group_valid']) {
if ($this->Mailform->error("Message." . $field['group_field'] . "_format", "check")) {
echo $this->Mailform->error("Message." . $field['group_field'] . "_format", "形式が不正です。");
} else {
if ($field['valid'] === 'VALID_NOT_EMPTY') {
echo $this->Mailform->error("Message." . $field['group_field']."", "必須項目です。");
}
if (($this->Mailform->value("Message." . $field['field_name']) ==='') and ($field['group_field'] === 'email')){
echo $this->Mailform->error("Message." . $field['group_field']."", "必須項目です。");
}


}

echo $this->Mailform->error("Message." . $field['group_field'] . "_not_same", "入力データが一致していません。");
echo $this->Mailform->error("Message." . $field['group_field'] . "_not_complate", "入力データが不完全です。");
}


上記赤字部分でメールフォームが未記入の場合に「必須項目です。」のエラーを出すようにしました。

予測なんですが$field['valid']はなにかしらのエラーがあった場合には常にエラーコードを出すみたいなのでメールフォームの時のみフォーム値が空かどうかで判定するようにしました。
これで一応自分の環境では出来ましたので参考になれば幸いです。

■ BaserCMSのバージョン:3.0.9
■ レンタルサーバー名:ローカル
■ 設置フォルダ: C/MAMP/htdocs
■ 利用しているデータベース:MySQL
■ PHPスキル(自己評価):多分できない

yunyun > Re: メールフォーム入力時に表示されるエラーメッセージについて @ 2015/7/2 19:45
hanhunhun様

長らくアクセスしていなかったため、すっかりご返事が遅れて大変申し訳ございません。

なかなか回答がつかないため、半ば諦めておりましたが、
ご教授いただいた方法で見事に解決することができました!

これでスッキリしました(笑)
本当にありがとうございます!

■ BaserCMSのバージョン:3.0.6.1
■ レンタルサーバー名:ロリポップ
■ スマートURLの利用:ON
■ 設置フォルダ:サブフォルダ
■ 利用しているデータベース:MySQL
■ PHPスキル(自己評価

ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
25 人のユーザが現在オンラインです。 (24 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 25