這兩種狀況都不太好,艾瑪須要明確的知道問題出在哪裏,並修復它。 php
1. 顧客會收到空郵件是由於發送促銷廣告時艾瑪並無填寫內容,不當心按下了發送鍵,致使郵件發出去了,可是沒有任何內容。
同理,顧客登記郵箱時也可能並無填寫內容,可是卻成功登記空的,甚至錯誤的內容,因此要對這些這些數據進行驗證。 mysql
//若是姓名和郵箱都是空的,強制退出。 if(empty($name) && empty($email)) { exit('請填寫姓名 和 郵箱'); } //若是姓名 或者 郵箱都是空的,強制退出。 else if(empty($name) || empty($email)){ exit('請填寫姓名 或者 郵箱'); }
2. 而顧客收到多條郵件是由於相同的郵件地址登記了屢次,因此艾瑪發送促銷廣告時,重複的郵件也發送過去了。 sql
解決辦法是顧客登記時須要先檢查郵件是否已經存在了。//執行SQL語句。 $query = "SELECT * FROM email_list WHERE email = '{$email}'"; $result = mysqli_query($dbc,$query) or die('執行SQL語句出錯'); $row = mysqli_fetch_assoc($result); //若是查詢到有記錄了,強制退出。 if($row) { exit('您已經登記了郵件了'); }
3. 對於以前的重複郵件,刪除 顧客重複的郵件時,不能經過郵件地址來刪除,這樣作的話,會把全部重複的郵件一併刪除,因此須要修改數據庫表,創建惟一值,刪除經過惟一值刪除。 數據庫
//修改數據庫表,創建惟一值。 ALTER TABLE email_list ADD id INT NOT NULL AUTO_INCREMENT FIRST,ADD PRIMARY KEY (id);修改刪除方式爲選擇式刪除。
<?php //定義常量,鏈接數據庫,並設置編碼。 define('HOST','localhost'); define('USER','root'); define('PWD','root'); define('DB','elvis_store'); $dbc = mysqli_connect(HOST,USER,PWD,DB) or die('鏈接數據庫失敗'); mysqli_set_charset($dbc,"utf8"); //若是提交了刪除請求,刪除對應id的顧客資料 if(isset($_POST['submit'])) { $id = $_POST['id']; foreach($id as $key){ $query = "DELETE FROM email_list WHERE id ='{$key}'"; $result = mysqli_query($dbc,$query) or die('執行SQL語句出錯'); echo '郵件編號:'.$key.' 刪除完畢<br />'; } } // 列出顧客郵件列表 echo '<form action="'.$_SERVER["PHP_SELF"].'" method="post">'; $query = "SELECT * FROM email_list"; $result = mysqli_query($dbc,$query) or die('執行SQL語句出錯'); while($row = mysqli_fetch_assoc($result)){ echo '<input type="checkbox" name="id[]" value="'.$row[id].'"/>'.$row[name]." ".$row[email].'<br />'; } echo '<input type="submit" name="submit" value="刪除選中郵件" /></form>'; ?>