国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > CMS > 織夢(mèng)DEDE > 正文

織夢(mèng)實(shí)現(xiàn)會(huì)員限制用戶(hù)單日下載軟件資源的上限方法

2024-07-12 08:47:49
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要為大家詳細(xì)介紹了織夢(mèng)實(shí)現(xiàn)會(huì)員限制用戶(hù)單日下載軟件資源的上限方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,有需要的朋友可以收藏方便以后借鑒。

使用織夢(mèng)做過(guò)下載站點(diǎn)的朋友可能知道,織夢(mèng)的下載站會(huì)員是可以如果滿(mǎn)足條件一日內(nèi)是可以無(wú)限制下載的,這個(gè)對(duì)于某些“不太地道的”用戶(hù)可 能會(huì)給服務(wù)器早成非常大的壓力,這個(gè)時(shí)候我們一般是希望通過(guò)二次開(kāi)發(fā)實(shí)現(xiàn)這樣一種功能,對(duì)單用戶(hù)會(huì)員實(shí)現(xiàn)單日下載次數(shù)的限制。說(shuō)得直白一點(diǎn)就是限制會(huì)員每天的下載次數(shù)。說(shuō)干就干,下面是361源碼給大家分享的實(shí)現(xiàn)辦法,如果對(duì)您有幫助請(qǐng)給個(gè)贊或者給我們技術(shù)一些狗糧打賞,如果您覺(jué)得沒(méi)什么實(shí)際的意義也感謝您的訪問(wèn):

織夢(mèng)實(shí)現(xiàn)會(huì)員限制用戶(hù)單日下載軟件資源的上限方法

    1、首先在數(shù)據(jù)表dede_member增加一個(gè)字段記錄日期和當(dāng)日下載的軟件的ID組成的一個(gè)字串,例如:“201701113|1##2##3”,這個(gè)樣子我用的是varchar類(lèi)型長(zhǎng)度255,默認(rèn)值就是“201701113|1##2##3”

    2、在后臺(tái)-系統(tǒng)-系統(tǒng)基本參數(shù)-增加一個(gè)系統(tǒng)參數(shù),我選擇分類(lèi)是站點(diǎn)設(shè)置,這里主要是設(shè)置下載的上限值,類(lèi)型數(shù)字型,說(shuō)明“單用戶(hù)單日下載次數(shù)上限”,名稱(chēng)是“cfg_dlimit”,測(cè)試期間我設(shè)置的是3

    3、在plus目錄下找到download.php在如下位置增加下面一段代碼(大約190行之下,會(huì)員級(jí)別判斷之下):

//判斷下載次數(shù)是否達(dá)到當(dāng)日上限        if($cfg_ml->M_Rank > $needRank && $needMoney > 0){            if(isset($GLOBALS['cfg_dlimit']) && $GLOBALS['cfg_dlimit'] > 0 ){                $dtSql = "SELECT `dtime` FROM `dede_member` WHERE `mid`='{$cfg_ml->M_ID}'";                $dt = $dsql->GetOne($dtSql);                if($dt['dtime'] == ''){                    #沒(méi)有對(duì)應(yīng)記錄,構(gòu)建并記錄更新用戶(hù)記錄                    $dtStr = date('Ymd')."|".$id;                    $updtsql = "UPDATE `dede_member` SET `dtime`='{$dtStr}' WHERE `mid`='{$cfg_ml->M_ID}'";                    $dsql->ExecuteNoneQuery($updtsql);                }else{                    #有記錄,開(kāi)始拆分判斷并且進(jìn)行計(jì)算處理                    $tmp = explode('|', $dt['dtime']);                    #判斷記錄日期是否是今天,是則返回剩余次數(shù),不是則返回系統(tǒng)限制上限                    $today = date('Ymd');                    if($today == $tmp[0]){                        $arr = explode('##',$tmp[1]);                        #判斷當(dāng)前id是否包含在內(nèi)                        if(!in_array($id, $arr)){                            #判斷總下載次數(shù)                            if(count($arr) >=  $GLOBALS['cfg_dlimit']){                                #超限,不予下載                                $msgtitle = "你不能下載軟件:{$arctitle}!";                                $moremsg = "你今日的下載上限 <font color='red'>".$GLOBALS['cfg_dlimit']." 次</font> 已滿(mǎn)!";                                include_once(DEDETEMPLATE.'/plus/view_msg.htm');                                exit(0);                            }else{                                $newArr = array_merge($arr,[$id]);                                // echo $id;                                // print_r($arr);                                // print_r($newArr);                                // //echo $a = implode(',', $newArr);                                $dtNew = date('Ymd')."|".implode('##', $newArr);                                #未超限,更新下載id記錄                                $dtInsert = "UPDATE `dede_member` SET `dtime`='{$dtNew}' WHERE `mid`='{$cfg_ml->M_ID}'";                                $dsql->ExecNoneQuery($dtInsert);                            }                        }                    }else{                        //echo 7;                        #不是今天,那么構(gòu)建                        $dtStr = date('Ymd')."|".$id;                        $updtsql = "UPDATE `dede_member` SET `dtime`='{$dtStr}' WHERE `mid`='{$cfg_ml->M_ID}'";                        $dsql->ExecuteNoneQuery($updtsql);                    }                }            }//-----        }

邏輯是,指定下載權(quán)限以上的用戶(hù)受限,小于或者等于權(quán)限的用戶(hù)不受限,免費(fèi)資源不受限,重復(fù)下載不計(jì)次數(shù)。

    4、如果親想在后臺(tái)顯示用戶(hù)當(dāng)日剩余的下載次數(shù),那么修改如下兩個(gè)文件,dede/member_main.php和dede/templets/member_main.htm

dede/member_main.php 文件最下面增加:

//function GetDtime($dt){    if($dt == ''){        return $GLOBALS['cfg_dlimit'];    }else{        $tmp = explode('|', $dt);        #判斷記錄日期是否是今天,是則返回剩余次數(shù),不是則返回系統(tǒng)限制上限        $today = date('Ymd');        if($today == $tmp[0]){            $arr = explode('##',$tmp[1]);            return is_array($arr) ? $GLOBALS['cfg_dlimit'] - count($arr) : $GLOBALS['cfg_dlimit'];        }else{            return $GLOBALS['cfg_dlimit'];        }    }}

dede/templets/member_main.htm 文件修改第130行:

金幣:{dede:field.money /} 積分:{dede:field.scores /}

修改為:

金幣:{dede:field.money /} 積分:{dede:field.scores /} 剩下:{dede:field.dtime function="GetDtime(@me)" /}

后臺(tái)在注冊(cè)會(huì)員別變即可查看到需要的值

    5、如果想在用戶(hù)中心顯示當(dāng)前登錄會(huì)員的當(dāng)日下載剩余次數(shù),那么修改 include/memberlogin.class.php,在第390行之下(重置用戶(hù)信息之下),增加如下代碼:

/**        獲取當(dāng)前用戶(hù)當(dāng)然下載限制剩余量    */    function GetDtime($dsql){        $mid = $this->M_ID;        $dt = $dsql->GetOne("Select `dtime` from `dede_member` where mid='$mid' ");        if($dt['dtime'] == ''){            return $GLOBALS['cfg_dlimit'];        }else{            $tmp = explode('|', $dt['dtime']);            #判斷記錄日期是否是今天,是則返回剩余次數(shù),不是則返回系統(tǒng)限制上限            $today = date('Ymd');            if($today == $tmp[0]){                $arr = explode('##',$tmp[1]);                return is_array($arr) ? $GLOBALS['cfg_dlimit'] - count($arr) : $GLOBALS['cfg_dlimit'];            }else{                return $GLOBALS['cfg_dlimit'];            }        }    }

 然后在用戶(hù)中心使用 <?php echo $cfg_ml->GetDtime($dsql); ?> 即可顯示剩余的次數(shù)。

到這里就完成了改造,有需求的朋友可以自己嘗試一下,處理前注意備份文件和數(shù)據(jù)庫(kù),防止出錯(cuò)!

以上就是織夢(mèng)實(shí)現(xiàn)會(huì)員限制用戶(hù)單日下載軟件資源的上限方法的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)和解決疑問(wèn)有所幫助,也希望大家多多支持武林網(wǎng)。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 吉安市| 扶余县| 望都县| 鄂伦春自治旗| 贵阳市| 惠东县| 左贡县| 周口市| 都昌县| 木兰县| 同德县| 临高县| 弥勒县| 曲靖市| 英吉沙县| 泊头市| 祁连县| 陇西县| 永仁县| 恩施市| 克东县| 淳化县| 土默特右旗| 高安市| 高陵县| 斗六市| 邵武市| 紫金县| 徐闻县| 兴隆县| 灵璧县| 清丰县| 邵东县| 三台县| 永德县| 宜宾县| 阜平县| 合川市| 彭泽县| 武汉市| 庆城县|