パソコンQ&A

PHPのメール確認フォーム

ユーザー登録などでメールアドレス入力フォームはよく使われると思います。
[参考記事] JavaScriptでのチェック

少なくとも満たしていなければいけないルールのみでのチェックです。
正規表現でのチェック条件
(1)空入力は禁止
(2)@は1つ
(3)英文字または数字で始まる
(4)ドメインは英文字または数字で始まる
(5)ドメインは英文字で終わる
(6),(コロン)は使えない
(7)確認アドレスと一致している

(1)空入力は禁止
(2)@は1つ
(3).(ドット)は1つ以上
(4)文字の長さは7文字以上
(5),(コロン)は使えない
(6)確認アドレスと一致している
HTML

<form name="enter" action="#" method="post">
メール
<input type="text" name="mail" />
<input type="text" name="mail2" />(確認)
<input type="submit" value="送信" />
</form>


PHP

if (!preg_match(
    '/^[a-z0-9][a-z0-9_¥.¥-]*@[a-z0-9][a-z0-9_¥.¥-]+[a-z]$/i',
    $mail)) {
  echo "不正なメールアドレスです。";
}elseif($mail!=$mail2){
  echo "確認用メールアドレスが一致していません。";
}else{
  echo "正しいメールアドレスです。";
}

/*
/^[A-Za-z0-9][A-Za-z0-9_¥.¥-]*@[A-Za-z0-9][A-Za-z0-9_¥.¥-]+[A-Za-z]$/
でもよい
*/


JavaScriptでのチェックと同じようにすると

if($mail == ""){
  echo "メールアドレスを入力してください。";
  exit;
}

$cflag1 = 0;
for($i=0; $i < mb_strlen($mail); $i++){
  if(substr($mail,$i,1) == "@"){
    $cflag1++;
  }
}
$cflag2 = strpos($mail,".");
if($cflag1 != 1 || $cflag2 < 1 || mb_strlen($mail) < 7){
  echo "メールアドレスを正しく入力してください。";
  exit;
}

$cflag3 = 0;
for($i=0; $i < mb_strlen($mail); $i++){
  if(substr($mail,$i,1) == ","){
    $cflag3++;
  }
}
if($cflag3>0){
  echo "メールアドレスに使用できない文字が含まれています。<br />『.』と『,』を間違っていませんか。";
  exit;
}

if($mail!=$mail2){
  echo "確認用メールアドレスが一致しません。";
  exit;
}

△上に戻る

このページはリンクフリーです。設定などは自己責任で…
Copy Right kikky

kikky.net