zblog中用户中心-邀请码注册插件的导出功能补充

自己加了一个导出未使用的邀请码功能,可惜我不是入驻作者,没有权限发布,之前被一条大河拒了,他说我抄他代码,不给我过审还冷嘲热讽,我一气之下,就没继续申请了,话说我是专业搞java开发的,并且我当时是第一次尝试php插件开发,用别人的文件框架,里面修改自己的东西怎么了,你tm的就没用过复制粘贴,草

言归正传

下面是功能代码,想用的可以自己加

main.php里两处

第一处:

php 复制代码
<input type="submit" class="button" onclick="$('#reset').val('outcsv');" value="导出所有未使用邀请码(csv)" />

第二处:

php 复制代码
   if (GetVars('reset', 'POST') == 'outcsv') {
        day_Out_Csv();
    }

然后就是include.php里的

加载最后即可

php 复制代码
function day_Out_Csv(){
    global $zbp;
    $day_invitecode_Table = '%pre%day_invitecode';
    $day_invitecode_DataInfo = array(
        'ID'         => array('reg_ID', 'integer', '', 0),
        'InviteCode' => array('reg_InviteCode', 'string', 50, ''),
        'AuthorID'   => array('reg_AuthorID', 'integer', '', 0),
        'IsUsed'     => array('reg_IsUsed', 'boolean', '', false),
        'IP'         => array('reg_IP', 'string', 50, ''),
        'Time'       => array('reg_Time', 'integer', '', 0),
    );
    $sql = $zbp->db->sql->Select($day_invitecode_Table, '*', array(array('=', 'reg_AuthorID', 0), array('=', 'reg_AuthorID', 0)), null, null, null);
    $array = $zbp->GetListCustom($day_invitecode_Table, $day_invitecode_DataInfo, $sql);
    $sql = "SELECT * FROM users";
    $result =$array;
    $length = count($result);
    if ($length > 0) {
        $filename = "file";
        if(!is_readable($filename))
        {
            is_file($filename) or mkdir($filename,0700);
        }
        $filename = 'file/yqm_csv.csv';
        if (file_exists($filename)) {
            unlink($filename);
        }
        $file = fopen($filename, "w");
        stream_filter_prepend($file, 'convert.iconv.utf-8/gbk');
        fputcsv($file, array('id', '邀请码'));

        for($i = 0; $i < $length; $i++) {
            $data = json_decode($result[$i]);
            $nar = array();
            $nar[0]=$i+1;
            $nar[1]=$data->InviteCode;
            fputcsv($file, $nar);
        }
        fclose($file);

    }

    #下载文件
    $file_path = 'file/yqm_csv.csv';
    if (file_exists($file_path))
    {
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename=' . basename($file_path));
        header('Content-Transfer-Encoding: binary');
        header('Content-Length: ' . filesize($file_path));
        readfile($file_path);
        exit;
    }
    else
    {
        die('File not found.');
    }

}

实现功能如下:

文件会先生成在插件同目录下,每次生产会先删除之前,的下载路径是在后台登录时可下载

不用担心黑客通过文件访问下载,只要你的后台没有被攻入,就没有权限在不登录的情况下下载

相关推荐
BingoGo1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack4 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理5 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
QQ5110082855 天前
python+springboot+django/flask的校园资料分享系统
spring boot·python·django·flask·node.js·php
WeiXin_DZbishe5 天前
基于django在线音乐数据采集的设计与实现-计算机毕设 附源码 22647
javascript·spring boot·mysql·django·node.js·php·html5