鍍金池/ 問(wèn)答/ PHP問(wèn)答
兮顏 回答

TP5的話可以這樣
數(shù)據(jù)庫(kù)里面有一個(gè)記錄IP的字段 我們就暫時(shí)命名為:ip
記錄訪問(wèn)時(shí)間的字段 create_time
記錄訪問(wèn)節(jié)點(diǎn)的字段: node

打開(kāi)模型自動(dòng)寫入時(shí)間戳

$ip = request()->ip();
$node = request()->url();
$result = (new 模型類())->where('ip,$ip)->where('node',$node)->find();
if(null === $result || $result['create_time'] < time()-3600 ){
    (new 模型類())->save([
     'node'=>$node,
     'ip'=>$ip
    ]);
}

應(yīng)該也可以這樣

$currTime = time()-3600;
$result = (new 模型類())->where('ip,$ip)->where('node',$node)->whereTime('create_time','<',$currTime)->find();
if(null === $result){
    (new 模型類())->save([
     'node'=>$node,
     'ip'=>$ip
    ]);
}
心沉 回答

你可以看看tp中session函數(shù)源碼, 是否有前綴.

痞性 回答

"../index.php?postfix="+<?php echo $postfix;?>;
如果 $postfix = '你好'
你這個(gè)語(yǔ)句會(huì)變成
"../index.php?postfix="+你好;
這個(gè)js肯定報(bào)錯(cuò)啦。

雨萌萌 回答

建議做成異步隊(duì)列,當(dāng)某個(gè)條件觸發(fā)時(shí)候往對(duì)接丟數(shù)據(jù),然后進(jìn)行計(jì)算,也不一定等到凌晨計(jì)算我現(xiàn)在也是分紅方案,我這邊是當(dāng)用戶充值時(shí)候,寫入隊(duì)列,異步計(jì)算。隊(duì)列我采用是beanstalked 隊(duì)列支持?jǐn)?shù)據(jù)持久化

陌上花 回答

都是打水印的話,為什么不把這不操作交給后端處理。
你們通過(guò)$.ajax 發(fā)送數(shù)據(jù)的時(shí)候你的這個(gè) base64 是 直接字符串過(guò)去,還是怎么處理的。
麻煩貼下 你們network 的請(qǐng)求參數(shù)方便查看

墨染殤 回答

出現(xiàn)亂碼是因?yàn)榫幋a與解碼使用的格式不一致,需要修改數(shù)據(jù)庫(kù)與代碼的中的編碼格式:

1.查看數(shù)據(jù)庫(kù)使用的編碼設(shè)置 一般使用utf-8 
(數(shù)據(jù)庫(kù)編碼設(shè)置參考:https://www.cnblogs.com/liyingxiang/p/5877764.html)
2.查看代碼的編碼格式,并與數(shù)據(jù)庫(kù)統(tǒng)一
3.命令行有個(gè)單獨(dú)的僅限當(dāng)前控制臺(tái)的編碼設(shè)置
    set names gbk /set names uft8 
巴扎嘿 回答

Java 的 keycloak 支持 O2auth2 ,單點(diǎn)登錄, 權(quán)限系統(tǒng)等
PHP 的 UserFrosting 主要是一個(gè)帳號(hào)管理系統(tǒng)

妖妖 回答

你要從數(shù)據(jù)庫(kù)的角度去思考這個(gè)問(wèn)題。
這個(gè)id是無(wú)關(guān)緊要的。

首頁(yè),總頁(yè)數(shù)不是通過(guò)這個(gè)id算出來(lái)的,是直接在數(shù)據(jù)庫(kù)里 count出來(lái)的。
其實(shí),我們是不知道這些id會(huì)在第幾頁(yè)的。
一般的都是你要先選擇是第幾頁(yè),然后才從數(shù)據(jù)庫(kù)中查出來(lái)這頁(yè)上有哪些id,這塊就是用 數(shù)據(jù)庫(kù)的便宜量來(lái)計(jì)算的 limit 頁(yè)數(shù)*每頁(yè)數(shù)量,每頁(yè)數(shù)量。

毀憶 回答

RewriteCond %{REQUEST_FILENAME} !-f
先檢測(cè)有無(wú)這個(gè)文件

初念 回答

function __construct($action){}
你這里面?zhèn)魅氲?action在方法中是不是沒(méi)有使用到?
所以說(shuō)這個(gè)參數(shù)有和沒(méi)有都一樣。
但是你__construct()構(gòu)造方法中已經(jīng)設(shè)置了參數(shù),
所以你實(shí)例化類就一定要傳入?yún)?shù)。
一句后:參數(shù)是必傳的,但得到的值和你傳入的參數(shù)是完全沒(méi)有關(guān)系的。

慢半拍 回答

看你的配置似乎沒(méi)什么問(wèn)題。

ErrorLog "|bin/rotatelogs -l logs/error_%Y%m%d.log 86400"
若相惜 回答
2,各位是否有訓(xùn)練面向?qū)ο蟮乃季S的方法,謝謝。

寫過(guò)幾萬(wàn)行代碼再說(shuō)。

你好胸 回答
select * from table_1 RIGHT JOIN table_2 ON table_1.id = table_2.uid
where table_1.status = 1 AND table_2.level_id = 1 AND table_2.level_id = 2

這段代碼意思是同一條table2的記錄同時(shí)是等級(jí)1和等級(jí)2,是個(gè)假命題。。
改的話需要right join兩次table2

select table_1.* from table_1 
RIGHT JOIN table_2 t2Lv1 ON table_1.id = t2Lv1.uid ON t2Lv1.level_id = 1
RIGHT JOIN table_2 t2Lv2 ON table_1.id = t2Lv2.uid ON t2Lv2.level_id = 2
where table_1.status = 1
GROUP BY table_1.id

大致思路就是這樣

艷骨 回答

array_filter($array, function($values){return is_array($values)?false:true;})

心癌 回答

你可以兩個(gè)tab只有一個(gè)內(nèi)容區(qū)域放置表單, 切換tab只用來(lái)獲取當(dāng)前是密碼登錄還是驗(yàn)證碼登錄
然后根據(jù)這個(gè)狀態(tài)返回不同的formItem就好了這樣 點(diǎn)擊登錄的時(shí)候只會(huì)驗(yàn)證當(dāng)前對(duì)應(yīng)的 formItem了

不一定啊,也可以在內(nèi)存中操作啊,其本質(zhì)是讀取文件流,暫存在內(nèi)存中,程序運(yùn)行完就釋放掉了,我這里隨便寫個(gè)例子:

$str=file_get_contents("xxx.txt");
echo $str;

這是從文件中讀取內(nèi)容,然后保存在字符串變量里(在內(nèi)存中哦),excel也是一樣的,你可以去找找第三方庫(kù)例如PHPExcel,總之還有很多,道理是一樣的。

可以加群一起學(xué)習(xí)交流:630418030

你好胸 回答

樓主的想法很好,其實(shí)一般情況就是這樣做的,我不知道你看的是什么人的代碼,除非需要判斷的地方很少,不然,一般是把需要登錄的放到一起,再繼承一個(gè)基類,在基類的_initialize()函數(shù)中把子類都需要用的數(shù)據(jù)和權(quán)限判斷處理好。

另外,用戶信息不需要每次請(qǐng)求都去數(shù)據(jù)庫(kù)找,可以直接放到session中。