bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

關閉discuzX3.2注冊頁面的注冊郵箱驗證-創新互聯

論壇升級后發現注冊用戶在輸入任何郵箱email時,一直提示email 地址無效.用firephp跟蹤發現:隨機生成的email的后綴是@localhost!

我們提供的服務有:成都網站制作、成都網站設計、微信公眾號開發、網站優化、網站認證、劍河ssl等。為上千企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的劍河網站制作公司

找到原因,修改如下:

關閉discuzX3.2注冊頁面的注冊郵箱驗證

//原來代碼if(empty($email) && $_G['setting']['forgeemail'])
{$_GET['email'] = $email = strtolower(random(6)).'@'.$_SERVER['HTTP_HOST'];
}//但是如果本地調試emai后綴就是@localhost,不符合郵箱的規則if(empty($email) && $_G['setting']['forgeemail'])
{$_GET['email'] = $email = strtolower(random(16)).'@'.'klaus.com';
}//增加了16位隨機碼,減少生成相同的郵箱概率;
//后綴固定,這樣就不提示'Email 地址無效'了!

關閉discuzX3.2注冊頁面的注冊郵箱驗證

但是這個感覺太lower了,回到dz3.1以前的玩法是:

在DZ3.2以前的版本的后臺我們可以在全局——注冊與訪問——取消郵箱注冊必填如下圖:
關閉discuzX3.2注冊頁面的注冊郵箱驗證

接下來就問題來了,Discuz官方團隊可能也考慮到了這個問題,也許他們也像我這樣認為這個地方在后臺出現沒多大必要,于是他們就在X3.2版本中更新了這個模塊,更新的結果我覺得應該是這樣的:在后臺取消這個設置,但數據庫里面存儲的信息不變,而且在注冊的時候不再使用這個數據庫里面的設置的值為依據。于是就造成了上面的問題了,雖然讓用戶覺得不需要必須填(因為沒紅星),但不填之后注冊不了

問題分析

通過對X3.1后臺設置分析發現這里是一個radio類型的,也就是開關(廢話而已,誰都看得出來);表單name為settingnew[forgeemail],值為0和1,0為關閉,1為打開,這個跟一般的習慣都是一樣的。也就是說這個值選擇1時我們注冊的時候可以不需要填寫郵箱,反之也就是默認情況下我們必須填寫郵箱才能注冊帳號。

而做過Discuz二次開發的同學都應該清楚,其實后臺類似這樣的設置數據都是存儲在common_setting這個數據表中,而很快我發現這個數據表中直接有forgeemail這個記錄,說明這個地方dz是直接保存的(不想保存高亮值信息那樣,還通過進制轉化,哈哈,不用再看源代碼去了)。如下圖(當然下面是默認的樣子)
關閉discuzX3.2注冊頁面的注冊郵箱驗證

問題解決

說到這里大家就應該明白了什么問題了,其實這個問題就是3.2以后這個數據表中的skey為forgeemail的記錄只是用于判斷是否帶紅星,而不用于判斷是不是真要填;換句話說不管這里設置的是0還是1,你的網站注冊的時候都得填寫郵箱(這可能也是DZ團隊在升級改變這個問題所忽視的地方,比如就算強制設計成必填,那么也應該把數據庫的這個字段值在升級的時候自動覆蓋成0了)。

那么如果徹底解決(也就是可以讓你的網站實現用戶不不必填寫郵箱也可以注冊),這個相對比較復雜,要修改你注冊表單的驗證程序,而且我個人也不推薦這么做,這里就不詳述了。

那么接下來就是把注冊的時候帶上紅星(其實默認的時候就是這樣的),當然問題是針對在3.2之前通過后臺設置過這值的網站。那么現在去數據庫找到common_setting這個數據表找到skey值forgeemail的svalue改為默認的0就可以了,也可以在數據庫管理工具或者網站后臺運行以下sql語句

update pre_common_setting set 'svalue'='0' where  'skey'='orgeemail'
注意:這里的表前綴為DZ的默認的pre_,如果你修改了,改成你新修改的

discuzX3.2后臺關閉注冊郵箱必填選項的功能。詳細過程如下:
步驟1:source/admincp/admincp_setting.php 文件
查找:

    showsetting('setting_access_register_send_register_url', 'settingnew[sendregisterurl]', $setting['sendregisterurl'], 'radio');

大概是440-441行:
增加以下代碼:

    showsetting('setting_access_register_forge_email', 'settingnew[forgeemail]', $setting['forgeemail'], 'radio');

步驟2:打開source/language/lang_admincp.php 文件
查找: 一個郵箱只允許注冊一個帳戶

大概811行,增加以下代碼:

'setting_access_register_forge_email' => '取消注冊郵箱必填',

'setting_access_register_forge_email_comment' => '開啟后如果用不不填寫注冊郵箱,將自動生成一個郵箱地址',

步驟3:修改source/class/class_member.php
大概611行:
原文是:

關閉discuzX3.2注冊頁面的注冊郵箱驗證

$email = strtolower(trim($_GET['email']));if(empty($this->setting['ignorepassword'])) {if($_GET['password'] !== $_GET['password2']) {
   showmessage('profile_passwd_notmatch');
}if(!$_GET['password'] || $_GET['password'] != addslashes($_GET['password'])) {
  showmessage('profile_passwd_illegal');
 } $password = $_GET['password'];
} else {       $password = md5(random(10));
       }
}

關閉discuzX3.2注冊頁面的注冊郵箱驗證

修改為(或直接替換以下:)

關閉discuzX3.2注冊頁面的注冊郵箱驗證

$email = strtolower(trim($_GET['email']));if(empty($email) && $_G['setting']['forgeemail']) {    $_GET['email'] = $email = strtolower(random(6)).'@'.$_SERVER['HTTP_HOST'];
}if(empty($this->setting['ignorepassword']))
{    if($_GET['password'] !== $_GET['password2']) {
        showmessage('profile_passwd_notmatch');
    }    if(!$_GET['password'] || $_GET['password'] != addslashes($_GET['password']))
    {
        showmessage('profile_passwd_illegal');
    }    $password = $_GET['password'];
} 
else {    $password = md5(random(10));
}
}

關閉discuzX3.2注冊頁面的注冊郵箱驗證

工具->更新緩存:
全局->注冊與訪問控制:
關閉discuzX3.2注冊頁面的注冊郵箱驗證

如果你想在注冊頁面不顯示 注冊郵箱選項,直接去掉模板中的相應的email代碼即可。

另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

分享名稱:關閉discuzX3.2注冊頁面的注冊郵箱驗證-創新互聯
分享URL:http://vcdvsql.cn/article0/didjoo.html

成都網站建設公司_創新互聯,為您提供網站維護企業建站品牌網站制作企業網站制作外貿建站服務器托管

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都做網站