中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在php中使用mysql解決大量用戶登錄問題

發布時間:2021-03-05 15:27:38 來源:億速云 閱讀:161 作者:Leah 欄目:開發技術

怎么在php中使用mysql解決大量用戶登錄問題?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

php有什么用

php是一個嵌套的縮寫名稱,是英文超級文本預處理語言,它的語法混合了C、Java、Perl以及php自創新的語法,主要用來做網站開發,許多小型網站都用php開發,因為php是開源的,從而使得php經久不衰。

表結構如下:

登錄名與ID表,根據login_hash分100張表

復制代碼 代碼如下:

CREATE TABLE user_login(
login_name VARCHAR() 用戶登錄名,可以是“登錄名”、“郵箱”或“手機號”登錄
login_hash BIGINT 用戶登錄名的HASH碼
user_id BIGINT 用戶ID
);
CREATE TABLE user_login0 LIKE user_login;
CREATE TABLE user_login1 LIKE user_login;
… …
CREATE TABLE user_login100 LIKE user_login;
ID與用戶信息表,根據user_id分100張表

CREATE TABLE user_info(
user_id BIGINT 用戶ID
login_pwd CHAR() 用戶登錄密碼
… … 其他信息,家庭住址、手機號、性別等等
);
 
CREATE TABLE user_info0 LIKE user_info;
CREATE TABLE user_info1 LIKE user_info;
… …
CREATE TABLE user_info2 LIKE user_info;
業務實現邏輯:

依賴服務器:實現一個自增ID的服務(相當于oracle的sequence),也可以自己實現(用PHP+MySQL或者用C實現都可以)。目的是可以 從這個服務中取ID,每次取的ID數都是在上次基礎上+1,和MySQL的autoincrement很像,只是不能在表內部自增。

注冊流程:

1)驗證用戶名、郵箱、手機號、密碼等格式。省略…

2)從服務中取一個ID,假設是115。

3)如果用戶的登錄類型是郵箱(如:$loginName='songhuan@zixue.it'),則在登錄名前加上前綴登錄名結果(如:$loginName='mail_songhuan@zixue.it')

4)求登錄名的HASH值:$loginHash=md5($loginName); 對md5值hash,可以求asc碼,或者用自己的算法,最后得出$loginHash=16位或32位的整數

5)$tableName  = 'user_login' . ($loginHash%100),如果獲取user_login表名,假如結果為user_login88。

$tableName  = 'user_info' . (115%100),如果獲取user_info表名。

6)執行SQL:

復制代碼 代碼如下:

INSERT INTO user_login88 (login_name, login_hash, user_id) VALUES ('songhuan@zixue.it', 183239324323, 1);
INSERT INTO user_info15 (user_id, login_pwd) VALUES (115, 'afieflefiefladifadfadfe');


登錄流程:

1)如果用戶的登錄類型是郵箱(如:$loginName='songhuan@zixue.it'),則在登錄名前加上前綴登錄名結果(如:$loginName='mail_songhuan@zixue.it')

2)

復制代碼 代碼如下:

$loginHash=ord(md5($loginName));

3)

復制代碼 代碼如下:

$tableName  = 'user_login' . ($loginHash%100);

假如結果為user_login88

4)執行SQL:

復制代碼 代碼如下:

SELECT id FROM user_login88 WHERE login_hash = $loginHash;

如果查詢不到數據,則登錄名不存在

5)如果能獲取到,id=115,則

復制代碼 代碼如下:

$tableName  = 'user_info'.(115%100);

SELECT id, pwd … FROM user_info15 WHERE id = 115;

6)匹配密碼,如果密碼不相等,返回false

7)如果密碼相等,將用戶ID加密放入COOKIE,將用戶信息存入Memcache.

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

冕宁县| 汾阳市| 巩义市| 花莲市| 锡林郭勒盟| 象山县| 友谊县| 榆社县| 宜宾市| 万年县| 鸡泽县| 仪陇县| 龙胜| 平邑县| 丹东市| 宜宾县| 五大连池市| 乐都县| 营口市| 磴口县| 庆安县| 青阳县| 云和县| 东阳市| 隆林| 岳池县| 肥西县| 鄂伦春自治旗| 山西省| 达孜县| 成武县| 获嘉县| 繁昌县| 安康市| 济南市| 民勤县| 修武县| 都江堰市| 澳门| 台州市| 南川市|