必須項目ではないので、何か入力されたときのみメールチェックをしたいのですが、
function isMailError ( $mail ) {
if($mail==null)
{
return true;
}
if ( !preg_match( '/^([a-z0-9_]|\-|\.|\+)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,6}$/i', $mail ) ){
return true;
} else {
return false;
}
}
この設定ではうまくいきません。なぜでしょうか?
ご指導よろしくお願い致します。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
if($mail==null)
{
return true;
}
が
if($mail==null)
{
return false;
}
でした。
前のスレッドで聞いて下さいね。
No.2
- 回答日時:
こんな感じでどうでしょ?
function isMailError ( $mail=null ) {
if($mail==="" or is_null($mail)) return false;
if ( !preg_match( '/^([a-z0-9_]|\-|\.|\+)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,6}$/i', $mail ) ){
return true;
} else {
return false;
}
}
No.3
- 回答日時:
> if ( !preg_match( '/^([a-z0-9_]|\-|\.|\+)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,6}$/i', $mail ) ){
! は条件を反転させますので、正しいメールアドレスが入力され「なかった」場合に true を返してしまいます。
PHP: 論理演算子 - Manual
http://php.benscom.com/manual/ja/language.operat …
下記コードで期待通りの結果を確認しました。
<?php
function isMailError ($mail) {
if (preg_match( '/^[\w.\-+]+@(?:[\w\-]+\.)+[a-z]{2,6}$|^$/i', $mail ) ){
return true;
} else {
return false;
}
}
header('Content-Type: text/plain; charset=UTF-8');// Content-Typeヘッダ出力
$mail = '';
echo "mail= \"".$mail."\"\n";
echo "return \"".isMailError($mail)."\"\n";
$mail = 'test@test.com';
echo "mail= \"".$mail."\"\n";
echo "return \"".isMailError($mail)."\"\n";
?>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メールフォームのタイトルが文...
-
php 完了画面の送信メールのコ...
-
mb_send_mail関数が利用出来ない
-
PHPsendmailにて送信元を変更
-
mb_send_mailについて
-
VBA 添付ファイルをつけてメー...
-
mailやmb_send_mail関数で、本...
-
mb_send_mail() 第 4、5 引数の...
-
さくらサーバーにて、phpからメ...
-
サーバーによってはmb_send_mai...
-
index.phpに入るには、どうすれ...
-
onedrive にexcelファイルをア...
-
PHP postgreSQL(teraterm)を用...
-
フォントの色を変えるには?
-
【file_exists】ファイルが存在...
-
PHPで取得したHTML内のdiv要素...
-
.phpと.incファイルの違いはな...
-
3つ以上の論理積は利用可能なの...
-
VB.NET 最下位のディレクトリ名...
-
xamppでPHPのフォームからメー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
さくらサーバーにて、phpからメ...
-
php 完了画面の送信メールのコ...
-
メールフォームのタイトルが文...
-
PHPsendmailにて送信元を変更
-
PHPからメールを送る@さくらイ...
-
mailやmb_send_mail関数で、本...
-
mail関数を使った場合のReturn-...
-
mb_send_mail関数が利用出来ない
-
ワードプレス 予約システム
-
phpでのメール転送(添付ファイ...
-
VBA EXCELからメールを送...
-
複数行の文字列をメールのヘッ...
-
【初歩?】変数をセットできな...
-
Received-SPFでレンタルサーバ...
-
PHP CRONでメールの自動受信を...
-
PHPからのメールがこない
-
mb_send_mailでタイトルにハテ...
-
メールの本文が取得できない
-
PHPでトラックバック機能 HTTP...
-
POP Before SMTPでメールを送信...
おすすめ情報