2011-02-17 67 views
0

我有一個簡單的形式,像這樣:PHP表單,檢查是否正在使用電子郵件

<fieldset id="membershipform"> 

         <ul class="clearfix"> 
          <li id="li-status"> 
           <span>I am a:</span> 
           <menu> 
            <li><label for="student"><input disabled="disabled" type="radio" name="r1" id="student" checked="checked" /> Graduate</label></li> 
            <li><label for="student2"><input disabled="disabled" type="radio" name="r1" id="student2" /> Undergraduate</label></li> 
           </menu> 
          </li> 
          <li id="li-firstname"> 
           <label for="firstname">First Name</label> <input disabled="disabled" type="text" placeholder="First Name" id="firstname" title="First Name" /> 
          </li> 
          <li id="li-lastname"> 
           <label for="lastname">Last Name</label> <input disabled="disabled" type="text" placeholder="Last Name" id="lastname" title="Last Name" /> 
          </li> 
          <li id="li-email"> 
           <label for="email">Email address</label> <input disabled="disabled" type="text" placeholder="Email address" id="email" title="Email address" /> 
          </li> 
          <li id="li-buttons"> 
           <input type="submit" value="Send Application &#9658;" title="Send Application" /> 
          </li> 
         </ui> 

        </fieldset> 

我想這是什麼做的是發佈形式的內容在我的數據庫中的表,但如果電子郵件地址只存在於數據庫中我希望它發出錯誤說'電子郵件已在使用',以防止同一用戶申請。

感謝

編輯:爲了澄清我的問題是什麼像有些人評論下面,他們無法確定是什麼我問。我正在尋找一些示例,說明如何檢查發佈到表中的電子郵件地址是否已經存在,因此會引發錯誤。希望這是有道理的。再次感謝。

+0

你的問題是什麼? – 2011-02-17 01:20:07

+1

你有什麼嘗試過嗎?如果您可以將數據添加到數據庫,那麼您當然也可以檢索它。 – 2011-02-17 01:20:14

回答

3

你可以做這樣的事情:

function email_exists($email) 
{  
    $sql = mysql_db_query("SELECT email FROM table WHERE email = '" . $email . "'"); 

    return(mysql_num_rows($sql)>0); 
} 

if(!email_exists($_GET['email')) 
{ 
    // insert database code here 
} 
2

有兩個簡單的選擇這裏,一般來說。首先是使用SELECT對數據庫進行簡單檢查,以查看返回多少結果。如果> = 1,則電子郵件退出。另一種選擇是在數據庫中發出一個請求,因爲它可以更容易地發出一個請求並讀取茶葉,而不是多次執行,儘管在嘗試插入新行之前檢查電子郵件是否存在。

無論如何,你要做的是在你的MySQL數據庫的郵件列上創建一個唯一的索引。這應該採取任何方式照顧它 - 這將加快您的電子郵件搜索做任何SELECT s,並會導致任何重複INSERT s失敗。由於任何嘗試插入重複電子郵件地址的查詢都會失敗,因此您可以監視PHP端的這些故障,並在正確的數據返回時假定存在電子郵件。

這裏的a link指向MySQL CREATE INDEX命令。它應該像運行這樣的命令一樣簡單:CREATE UNIQUE INDEX email_index ON email;

相關問題