PHP 判斷Email或帳號重複註冊

首先找到插入紀錄的語法(ABC為連線的資料庫名稱)

 

mysql_select_db($database_ABC, $ABC);
$Result1 = mysql_query($insertSQL, $ABC) or die(mysql_error());

 

以下原始碼要放在插入紀錄前,用來判斷如果重複使用相同Email來註冊,
不要插入紀錄而是回到原本頁面,並回填已填的資料

mysql_select_db($database_ABC, $ABC);
$loginemail = $_POST['Email'];
$query_mail = sprintf("SELECT Email FROM member_sys WHERE Email=%s",GetSQLValueString($_POST['Email'], "text"));
$mail = mysql_query($query_mail,$ABC) or die(mysql_error());
$row_mail = mysql_fetch_assoc($mail);
$totalRows_mail = mysql_num_rows($mail);
if ($totalRows_mail!=0) {

$insertGoTo = "?masg=223&Email=".$_POST['Email']."&pwd=".$_POST['pwd']."&Name=".$_POST['Name']."&NameID=".$_POST['NameID']."&Phone=".$_POST['Phone']."&Address=".$_POST['Address'];
header(sprintf("Location: %s", $insertGoTo));
}

ABC為連線的資料庫名稱

member_sys為連線的資料表名稱

藍色的字為欄位名稱

紅色的字為回傳的訊息代號,可以隨便取,是用來判別接收到此訊息時該秀什麼訊息文字出來。

如果$totalRows_mail不等於0,表示已經有人使用相同的Email來註冊過。

$insertGoTo是用來存轉址用的字串,因為是回到原本的頁面,所以沒有寫網頁路徑,"?"後方的一串傳遞字串是為了回到原本頁面後可以回填欄位,避免會員註冊時因少填了一個欄位在轉頁後資料被清空。

 

以下原始碼也要放在插入記錄前,用來判斷如果全部欄位都有資料要插入紀錄

if ($totalRows_mail==0) {
......
}

如果$totalRows_mail等於0,表示沒有有人使用相同的Email來註冊過。

紅色的字為插入紀錄的程式碼

 

以下原始碼是示範表單欄位的寫法

<label for="Email"></label>
<input name="Email" type="text" id="Email" value="<?php echo $_GET['Email']; ?>" size="50" />
<span class="title_04"><?php if ($_GET['masg']==223) echo "此E-mail已註冊過"; ?></span>登入時請用E-mail帳號

藍色的字為欄位名稱

紅色的字為回傳的訊息代號,可以隨便取,用來判別接收到此訊息時該秀什麼訊息文字出來。