久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

返回列表 發(fā)帖
查看: 2139|回復(fù): 3

[已處理] 可將3.5的PHP版本的最低要PHP7.0作為硬條件:

12

主題

87

回帖

220

積分

應(yīng)用開發(fā)者

貢獻
1 點
金幣
71 個
樓主
發(fā)表于 2023-1-1 23:54:43 | 只看樓主 |倒序瀏覽 |閱讀模式
BUG反饋
程序版本: X3.5
瀏覽器: Chrome 
BUG地址: 隱藏內(nèi)容
BUG截圖: -
測試用戶名: 隱藏內(nèi)容
測試密碼: 隱藏內(nèi)容
PHP版本小于7.0時有一個無法被修復(fù)的硬BUG, 就是所有需要處理數(shù)字的函數(shù)無法識別那個大于21億的數(shù),


intval大于2147483648會返回負數(shù),  time()函數(shù)會返回1910年,  filesize大于2G也會返回負數(shù) 等等....

總之所有需要處理數(shù)字的函數(shù), 都無法處理大于2147483648的數(shù)字(只有純+-法可以),

網(wǎng)上的教程都說要系統(tǒng)64位, 其實是全是錯的,

必須: 系統(tǒng)64位, PHP64位, PHP版本大于大于7.0

這三者缺一不可, 才可以處理大于2147483648的數(shù)字

測試系統(tǒng): windows server 2022  x64


可將dz3.5的PHP版本的最低要PHP7.0作為硬條件在安裝時檢測

1 貢獻

最佳答案

補充一句,X3.5 的 PHP 要求 2020 年多方拉鋸模式談過很多次,PHP 5.6 是各方面平衡的最終決定。
這個最低限制不影響站點使用和應(yīng)用開發(fā),各方面可以選擇適合自己的版本。站點使用可以直接裝 PHP 7 甚至 8 ,應(yīng)用開發(fā)可以選擇不兼容 PHP 5.6 。

PHP 5.6 是最終決定主要原因是 PHP 5.6 能支持很多基礎(chǔ)安全特性且最大程度的保留了對歷史組件、用戶環(huán)境的支持,太高了存量應(yīng)用適配不了(每次 Discuz! 適配 PHP 大版本都是大工程)而且用戶也很可能沒有 PHP 7 的環(huán)境,太低了很多安全特性根本就不支持。
回復(fù)

使用道具 舉報

12

主題

87

回帖

220

積分

應(yīng)用開發(fā)者

貢獻
1 點
金幣
71 個
沙發(fā)
 樓主| 發(fā)表于 2023-1-2 00:05:36 | 只看Ta
還有所有htm模板里面的數(shù)組字符串鍵應(yīng)該全部加上單引號,

2. Discuz攔截了PHP的錯誤處理函數(shù), 攔截可以,  但是應(yīng)該給php返回false, 這樣別人php自帶的錯誤日志才會有記錄在,
現(xiàn)在是discuz攔截錯誤處理函數(shù), 但是discuz自己不會記錄錯誤(那種訪問請求當(dāng)中含有非法字符,已經(jīng)被系統(tǒng)拒絕的安全錯誤才會記錄,語法錯誤代碼錯誤discuz默認不會記錄只會顯示給瀏覽器)


3. 不應(yīng)該去動別人php的error_reporting設(shè)置, 這個error_reporting設(shè)置修改了別人php的錯誤處理級別全就失效了,
   如果只是不想讓錯誤顯示給訪問者的瀏覽器上,  只需要設(shè)置display_errors = Off即可
回復(fù)

使用道具 舉報

12

主題

1655

回帖

2814

積分

Giter

貢獻
151 點
金幣
362 個
板凳
發(fā)表于 2023-1-4 16:32:49 | 只看Ta
32位軟件的int就是這樣的啊,這怎么能是bug呢?多少年來一直都是這樣的,而且Discuz本身也沒有處理大數(shù)的實質(zhì)性需求的。
這就不是bug,你選擇了32位系統(tǒng),就不能處理這么大的數(shù)。數(shù)據(jù)庫里安排的一般也都是int而不是bigint之類的東西。
有一些特殊場景是必須要處理大數(shù)的(如ipv6相關(guān))但是程序里已經(jīng)做了兼容層,可以確保在32位系統(tǒng)上正常運行。

php 8數(shù)組不加單引號是會直接報錯的,但是你發(fā)現(xiàn)模板里面對應(yīng)沒加引號的地方報錯了么?這是因為模板解析引擎里已經(jīng)做了兼容層了。

關(guān)于錯誤處理這塊原來是有優(yōu)化計劃的,但這塊還真不能輕易的改,因為有很多奇奇怪怪的php環(huán)境的存在,很多東西不能像理論上那樣去做,做了容易出問題,最怕的是安全問題。
后續(xù)應(yīng)該會有一些相關(guān)的處理的,但大概率默認也沒法啟用。
外加Discuz現(xiàn)有版本根本不是按正常運行無錯的方式設(shè)計的,雖然之前已經(jīng)花了很大氣力改掉了為數(shù)不少的日常報錯,但殘留的量依然非常可觀。你敢把這部分內(nèi)容直接開進日志,你正常運行1天你的日志就得灌滿。
回復(fù)

使用道具 舉報

2

主題

1410

回帖

2061

積分

應(yīng)用開發(fā)者

啦啦啦~

貢獻
58 點
金幣
325 個
地板
發(fā)表于 2023-1-13 15:55:13 | 只看Ta
補充一句,X3.5 的 PHP 要求 2020 年多方拉鋸模式談過很多次,PHP 5.6 是各方面平衡的最終決定。
這個最低限制不影響站點使用和應(yīng)用開發(fā),各方面可以選擇適合自己的版本。站點使用可以直接裝 PHP 7 甚至 8 ,應(yīng)用開發(fā)可以選擇不兼容 PHP 5.6 。

PHP 5.6 是最終決定主要原因是 PHP 5.6 能支持很多基礎(chǔ)安全特性且最大程度的保留了對歷史組件、用戶環(huán)境的支持,太高了存量應(yīng)用適配不了(每次 Discuz! 適配 PHP 大版本都是大工程)而且用戶也很可能沒有 PHP 7 的環(huán)境,太低了很多安全特性根本就不支持。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

  • 關(guān)注公眾號
  • 有償服務(wù)微信
  • 有償服務(wù)QQ

手機版|小黑屋|Discuz! 官方交流社區(qū) ( 皖I(lǐng)CP備16010102號 |皖公網(wǎng)安備34010302002376號 )|網(wǎng)站地圖|star

GMT+8, 2025-9-19 07:26 , Processed in 0.077615 second(s), 31 queries .

Powered by Discuz! W1.0 Licensed

Copyright © 2001-2025 Discuz! Team.

關(guān)燈 在本版發(fā)帖
有償服務(wù)QQ
有償服務(wù)微信
返回頂部
快速回復(fù) 返回頂部 返回列表