迅睿CMS框架是一款PHP8高性能·簡(jiǎn)單易用的CMS開源開發(fā)框架,基于MIT開源許可協(xié)議發(fā)布,免費(fèi)且不限制商業(yè)使用,是免費(fèi)開源的產(chǎn)品,以萬端互聯(lián)為設(shè)計(jì)理念,支持的微信公眾號(hào)、小程序、APP客戶端、移動(dòng)端網(wǎng)站、PC網(wǎng)站等多終端式管理系統(tǒng)。
聯(lián)系官方銷售客服
1835022288
028-61286886
最新版本(4.3.13)在后臺(tái)添加用戶的時(shí)候一直提示"賬號(hào)名不允許注冊(cè)"。請(qǐng)問大家有這個(gè)問題嗎?
后臺(tái)用戶設(shè)置這都是默認(rèn)設(shè)置:
是win服務(wù)器嗎
你是不是設(shè)置錯(cuò)了賬號(hào)的正則表達(dá)式
回復(fù)@迅??蚣芗夹g(shù)-景攸 Linux8.2 PHP8.0
回復(fù)@初次使用 正則這里也是留空的
不允許賬號(hào)的字符串,看看是否存在回車空白等
回復(fù)@迅??蚣芗夹g(shù)-景攸 試過很多了組合了都不行,簡(jiǎn)單的復(fù)雜的,長(zhǎng)的短的都不行,奇了怪了
不允許賬號(hào)的字符串,看看是否存在回車空白等,或者輸入admin,然后保存再注冊(cè)
回復(fù)@迅??蚣芗夹g(shù)-景攸 感謝回復(fù),自己排查了一下,發(fā)現(xiàn)/dayrui/Fcms/Library/Form.php存在一處bug:
public function check_username($value) { exong_test(0,$value,\Phpcmf\Service::C()->member_cache['register'],\Phpcmf\Service::C()->member_cache['register']['notallow']); if (!$value) { return dr_return_data(0, dr_lang('賬號(hào)不能為空'), ['field' => 'username']); } elseif (\Phpcmf\Service::C()->member_cache['register']['preg'] && !preg_match(\Phpcmf\Service::C()->member_cache['register']['preg'], $value)) { return dr_return_data(0, dr_lang('賬號(hào)格式不正確'), ['field' => 'username']); } elseif (strpos($value, '"') !== false || strpos($value, '\'') !== false) { return dr_return_data(0, dr_lang('賬號(hào)名存在非法字符'), ['field' => 'username']); } elseif (\Phpcmf\Service::C()->member_cache['config']['userlen'] && mb_strlen($value) < \Phpcmf\Service::C()->member_cache['config']['userlen']) { return dr_return_data(0, dr_lang('賬號(hào)長(zhǎng)度不能小于%s位,當(dāng)前%s位', \Phpcmf\Service::C()->member_cache['config']['userlen'], mb_strlen($value)), ['field' => 'username']); } elseif (\Phpcmf\Service::C()->member_cache['register']['notallow']) { // 放在最后一次比較 foreach (\Phpcmf\Service::C()->member_cache['register']['notallow'] as $a) { if (strpos($value, $a) !== false) { return dr_return_data(0, dr_lang('賬號(hào)名不允許注冊(cè)'), ['field' => 'username']); } } } return dr_return_data(1, 'ok'); }
其中的
} elseif (\Phpcmf\Service::C()->member_cache['register']['notallow']) {
一直為true。
說明如下:
查看數(shù)據(jù)庫發(fā)現(xiàn)member_cache['register']['notallow']默認(rèn)為[""],在php8里,if([""])一直為true,所以這里不管怎么設(shè)置都會(huì)進(jìn)入下面的判斷體,導(dǎo)致在后臺(tái)增加用戶名時(shí),如果沒有設(shè)置禁止注冊(cè)的用戶名,會(huì)一直提示“賬號(hào)名不允許注冊(cè)”。請(qǐng)老大修復(fù)一下。
最近服務(wù)器更新了php8,感覺迅??蚣茉趐hp8的兼容性上還有很多的小bug,還是希望老大能仔細(xì)排查一下程序,避免因?yàn)檫@些小毛病影響了咱們迅??蚣艿母兄P量嗔?。
樓主不太了解php啊,if([""])本身就是正確的代碼啊
回復(fù)@黃老邪 我知道if([""])是正確的代碼,只是這個(gè)判斷永遠(yuǎn)都為true,那還加這個(gè)判斷干什么,直接執(zhí)行if里邊的foreach循環(huán)體就行了啊。不糾結(jié)了,老大剛剛已經(jīng)修復(fù)這個(gè)bug了
是win服務(wù)器嗎
你是不是設(shè)置錯(cuò)了賬號(hào)的正則表達(dá)式
回復(fù)@迅??蚣芗夹g(shù)-景攸 Linux8.2 PHP8.0
回復(fù)@初次使用 正則這里也是留空的
不允許賬號(hào)的字符串,看看是否存在回車空白等
回復(fù)@迅??蚣芗夹g(shù)-景攸 試過很多了組合了都不行,簡(jiǎn)單的復(fù)雜的,長(zhǎng)的短的都不行,奇了怪了
不允許賬號(hào)的字符串,看看是否存在回車空白等,或者輸入admin,然后保存再注冊(cè)
回復(fù)@迅??蚣芗夹g(shù)-景攸 感謝回復(fù),自己排查了一下,發(fā)現(xiàn)/dayrui/Fcms/Library/Form.php存在一處bug:
其中的
一直為true。
說明如下:
查看數(shù)據(jù)庫發(fā)現(xiàn)member_cache['register']['notallow']默認(rèn)為[""],在php8里,if([""])一直為true,所以這里不管怎么設(shè)置都會(huì)進(jìn)入下面的判斷體,導(dǎo)致在后臺(tái)增加用戶名時(shí),如果沒有設(shè)置禁止注冊(cè)的用戶名,會(huì)一直提示“賬號(hào)名不允許注冊(cè)”。請(qǐng)老大修復(fù)一下。
最近服務(wù)器更新了php8,感覺迅??蚣茉趐hp8的兼容性上還有很多的小bug,還是希望老大能仔細(xì)排查一下程序,避免因?yàn)檫@些小毛病影響了咱們迅??蚣艿母兄P量嗔?。
樓主不太了解php啊,if([""])本身就是正確的代碼啊
回復(fù)@黃老邪 我知道if([""])是正確的代碼,只是這個(gè)判斷永遠(yuǎn)都為true,那還加這個(gè)判斷干什么,直接執(zhí)行if里邊的foreach循環(huán)體就行了啊。不糾結(jié)了,老大剛剛已經(jīng)修復(fù)這個(gè)bug了