2013-12-22 59 views
0

我決定在註冊時禁用空間按鈕。如果你的名字和姓氏像別人一樣,只有在這種情況下,你會被要求添加一個用戶名和登錄。每個人都會問!以不同的順序直到成功

在我的登錄表單中,您需要在同一個輸入中編寫您的姓名,但在我的數據庫中,第一個姓和最後一個姓在不同的列中。使用php的explode()函數我將單詞分隔到數組,然後輕鬆地在數據庫中檢查它。但那些擁有兩個姓氏或名字的人呢?例如Sacha Baron Cohen。有沒有一種方法(如果是這樣,我想與此同時)做出循環直到成功?我的意思是:

  • 第一:薩沙·拜倫·最後:科恩
  • 第一:薩沙最後:拜倫·科恩
  • 第一:薩沙最後:科恩
  • 第一張: Sacha 最後:男爵
  • 最後:薩沙第一:拜倫·科恩

依此類推,直到成功或之後嘗試了所有的選項?怎麼做? 謝謝!

(我認爲如果我把所有人的名字和姓氏都帶上已經寫好的密碼,然後不需要每次都連接到數據庫,它會更快)

我正在談論唱歌英寸存儲在數據庫中的名字和姓氏。他們在註冊時被詢問(兩個單獨的領域)。

+0

您無法知道某人的名字和姓氏。有些名字由'-'連接,但有時候人們只有3個名字而沒有加入字符。所以最後你只能賭博第一個和最後一個名字是什麼。你總是需要要求用戶分別插入他們的名字和姓氏。從數據庫字段中加入姓氏和名字並嘗試匹配它們也不安全,並且對數據庫非常重要。這可能會導致衝突,其中名字和姓氏的唯一組合可以是相同的,但不是實際上相同的名字和姓氏。 – 2013-12-22 17:54:54

+0

總是最好分配用戶名,而不必篩選包含兩個姓氏的姓氏。如果這是一個成員頁面,我認爲它是。你可以使用'LIKE'作爲'%name%'或'name%'通配符或'FULLTEXT'搜索,但也有其他方法使用'IN'子句。 –

+0

@Allendar我正在談論唱歌英寸存儲在數據庫中的名字和姓氏。他們在註冊時被詢問(兩個單獨的領域)。 –

回答

0

這是行不通的。

想想這個例子:

有一個叫人: 最後史蒂夫馬克:

第一亨德森

另一人被稱爲:

第一:史蒂夫 last:Marc Henderson

用您的方法掃描「Steve Marc Henderson」時無法得到確切的答案。 執行此操作的唯一可能方式是在人員登錄時將輸入限制爲一個名字和一個姓氏。

+0

但仍有密碼;在註冊時,你會被要求輸入一個強大的密碼,直到你的密碼變爲綠色(如果其中三個爲真:8個字符集,數字,字母,大字母(ABC ..)等),它將不會繼續。他們沒有辦法擁有相同的密碼。 –

+0

我很抱歉,編程時這是一種非常糟糕的思維方式,他們總有可能擁有相同的名稱和密碼,這就是爲什麼每個平臺都使用唯一的標識符(例如暱稱或電子郵件),因爲它只能存在一次。編程時,您需要確保一切完全準確無誤... – Lotzki