YzmCMS-新增短信接口

YzmCMS 7.0任意函数调用RCE 漏洞研究分析 YzmCMS是一款基于YZMPHP开发的一套轻量级开源内容管理系统,YzmCMS简洁、安全、开源、免费,可运行在Linux、Windows、MacOSX、Solaris等各种平台上,专注为公司企业、个人站长快速建站提供解决方案。YzmCMS某些接口调用了 db_pdo类的where方法 导致了远程命令执行漏洞,未经身份验证的远程攻击者可利用此漏洞执行任意系统指令,写入后门文件,最终可获取服务器权限。 阅读详情

YzmCMS是一款轻量级开源内容管理系统,它采用OOP(面向对象)方式自主开发的框架。基于PHP+Mysql架构,并采用MVC框架式开发的一款高效开源的内容管理系统,可运行在Linux、Windows、MacOSX、Solaris等各种平台上。便于进行二次开发,小编对这款软件还是比较了解的,小编今天就以新增短信接口为例为大家讲解一下如何进行二次开发,我们使用的短信接口是短信宝短信群发平台的短信接口,短信宝短信群发平台非常稳定,发送速度快,注册就送测试短信,推荐大家使用。

首先我们打开项目:application\admin\view\system_set.html文件,在237~256行增加短信宝配置代码:

 <div class="tabCon"><div class="row cl">
     <label class="form-label col-xs-4 col-sm-2">短信宝用户名:</label>
     <div class="formControls col-xs-8 col-sm-9">
      <input type="text" name="smsbao_user" value="<?php echo $data["smsbao_user"];?>"  class="input-text" style="width:50%">
     </div></div>
    <div class="row cl">
     <label class="form-label col-xs-4 col-sm-2">短信宝密码:</label>
     <div class="formControls col-xs-8 col-sm-9">
      <input type="text" name="smsbao_pass" value="<?php echo $data["smsbao_pass"];?>"  class="input-text" style="width:50%">
     </div></div>
    <div class="row cl">
     <label class="form-label col-xs-4 col-sm-2">短信签名:</label>
     <div class="formControls col-xs-8 col-sm-9">
      <input type="text" name="smsbao_sign" value="<?php echo $data["smsbao_sign"];?>"  class="input-text" style="width:50%">
     </div>
    </div>
   </div> 

接着打开项目:application\member\controller\index.class.php文件,替换register方法:

public function register(){ 
  $config = get_config();
  //检查是否允许新会员注册
  if($config['member_register'] == 0) showmsg('管理员关闭了新会员注册!', 'stop');
  
  if(isset($_SESSION['_userid']) && $_SESSION['_userid']){
   showmsg(L('login_success'), U('member/index/init'), 1);
  }
   
   
  if(isset($_POST['dosubmit'])){
   
   if(empty($_SESSION['code']) || strtolower($_POST['code']) != $_SESSION['code']){
    $_SESSION['code'] = '';
    showmsg(L('code_error'), '', 1);
   }
   if (empty($_SESSION['mobile_code']) || strtolower($_POST['mobile_code']) != $_SESSION['mobile_code']) {
    $_SESSION['mobile_code'] = '';
    showmsg(L('手机验证码不正确'),'',1);
   }
   $_SESSION['code'] = '';
   
   $member = D('member');
   $data = array();
   $data['username'] = isset($_POST['username']) && is_username($_POST['username']) ? trim($_POST['username']) : showmsg(L('user_name_format_error'));  
   $data['password'] = isset($_POST['password']) && is_password($_POST['password']) ? trim($_POST['password']) : showmsg(L('password_format_error')); 
   $data['email'] = isset($_POST['email']) && is_email($_POST['email']) ? trim($_POST['email']) : showmsg(L('mail_format_error'));   
   $data['mobile'] = isset($_POST['mobile']) && is_mobile($_POST['mobile']) ? trim($_POST['mobile']) : showmsg(L('手机号不正确'));    
 
   $result = $member->where(array('username'=>$_POST['username']))->find();
   if($result) showmsg(L('user_already_exists'));
   $result = $member->where(array('email'=>$_POST['email']))->find();
   if($result) showmsg("邮箱已存在!");
   $results = $member->where(array('mobile'=>$_POST['mobile']))->find();
   if($results) showmsg("手机已存在");
   $data['nickname'] = $data['username'];
   $data["password"] = password($data['password']);
   $data['regdate'] = $data['lastdate'] = SYS_TIME;
   $data['regip'] = $data['lastip'] = getip();
   $data['groupid'] = '1';
   $data['amount'] = '0.00';
   $data['point'] = $data['experience'] = $config['member_point'];  //经验和积分
   $data['status'] = ($config['member_check'] || $config['member_email']) ? 0 : 1;  
   $data['userid'] = $member->insert($data, true);  
   if(!$data['userid']) showmsg("注册失败!");
   
   D('member_detail')->insert($data, true, false); //插入附表
   
   if($config['member_email']){  //是否需要邮件验证
    $mail_code = $_SESSION['mail_code'] = md5(microtime(true).$data['userid']);
    $_SESSION['userid'] = $data['userid'];
    $url = SITE_URL."index.php?m=member&c=index&a=register&mail_code=$mail_code&userid={$data['userid']}&verify=1";
    $message = '请点击邮箱验证地址:<a href="'. $url .'">'. $url .'</a>';
    $res = sendmail($data['email'], '会员邮箱验证', $message);
    if(!$res) showmsg('邮件发送失败,请联系网站管理员!', 'stop');
    showmsg('我们已将邮件发送到您的邮箱,请尽快完成验证!');
   }elseif($config['member_check']){  //是否需要管理员审核
    showmsg('注册成功,由于管理员开启审核机制,请耐心等待!');
   }
   
   $_SESSION['_userid'] = $data['userid'];
   $_SESSION['_username'] = $data['username'];
   set_cookie('_userid', $data['userid']);
   set_cookie('_username', $data['username']);
   set_cookie('_nickname', $data['username']);
   set_cookie('_groupid', $data['groupid']);  
   showmsg('注册成功!', U('member/index/init'), 1);   
   
  }else{
   if(!empty($_GET['verify'])) {
    $mail_code = isset($_GET['mail_code']) ? trim($_GET['mail_code']) : showmsg(L('illegal_operation'));
    $userid = isset($_GET['userid']) ? intval($_GET['userid']) : showmsg(L('illegal_operation'));
    if(isset($_SESSION['mail_code']) && $mail_code==$_SESSION['mail_code'] && $userid==$_SESSION['userid']){
     unset($_SESSION['mail_code'], $_SESSION['userid']);
     D('member')->update(array('status' => 1, 'email_status' => 1),array('userid'=>$userid));
     showmsg('邮箱验证成功!', U('member/index/login'), 2);
    }else{
     showmsg('验证失败,可能是验证时间已过期!', U('member/index/register'));
    }
   }
   include template('member', 'register');
  }  
  
 } 

接着打开项目:application\member\controller\reset.class.php文件,增加reset_mobile方法:

public function reset_mobile(){
  session_start();
  $_SESSION['step'] = isset($_SESSION['step']) ? $_SESSION['step'] : 1;
 
  if ($_SESSION['step']==1 && isset($_POST['dosubmit'])) {
   if(empty($_SESSION['code']) || strtolower($_POST['code']) != $_SESSION['code']){
    $_SESSION['code'] = '';
    showmsg(L('code_error'), '', 1);
  }
 
  $data = $this->_check($_POST['username']);
  if(empty($data['mobile'])) showmsg('您没有绑定手机,请选择其他方式找回密码!', 'stop');
  $ret = sendsms($data['mobile']);
  if ($ret != 0) {
   showmsg('短信发送失败,请联系网站管理员!');
  }
 
  $_SESSION['mobile'] = $data['mobile'];
  $_SESSION['userid'] = $data['userid'];
  $_SESSION['emc_times'] = 5;
  $_SESSION['step'] = 2;
 
 
  }elseif($_SESSION['step'] ==2 && isset($_POST['dosubmit'])){
   if($_SESSION['emc_times']=='' || $_SESSION['emc_times']<=0){
     $_SESSION['step'] = 1;
     showmsg("验证次数超过5次,请重新获取短信验证码!");
   }
   if(!empty($_SESSION['mobile_code']) && strtolower($_POST['mobile_code']) == strtolower($_SESSION['mobile_code'])){
     unset($_SESSION['emc_times']);
     $_SESSION['step'] = 3;
   }else{
     $_SESSION['emc_times'] = $_SESSION['emc_times']-1;
     showmsg('短信校验码错误!','',1);
   }
 
  }else if($_SESSION['step']==3 && isset($_POST['dosubmit'])){
   
   if(!isset($_POST['password']) || !is_password($_POST['password'])) showmsg(L('password_format_error'));
   
   D('member')->update(array('password' => password($_POST['password'])),array('userid'=>$_SESSION['userid']));
   unset($_SESSION['step'], $_SESSION['code'], $_SESSION['mobile_code'], $_SESSION['mobile'], $_SESSION['userid']);
   showmsg('更新密码成功!', U('member/index/login'));
   
  }
 
  include template('member', 'reset_mobile');
 }

接着打开项目:application\member\view\default\register.html,在127行增加以下代码:

<script type="text/javascript">
 var time = 0;
 var res = null;
 
 function sendTime(){
  clearTimeout(res); // 先清空一下倒计时资源。
        time--; // 倒计时时间递减。
 
        // 如果倒计时到达0时,则恢复按钮原来的内容
        if (time <= 0) {
            time = "获取验证码";
            $('.huoqu').text(time);
            clearTimeout(res);
            time = 0;
            return;
        }
 
        // 倒计时的内容写到按钮里面
        $('.huoqu').text("剩余" + time + "秒");
        res = setTimeout("sendTime()", 1000);
 }
 
 $(function(){
 
  var flg = true;
 
  $('.huoqu').on('click',function(){
   console.log(123);
                var mobile = $("#mobile").val();
                var code = $("#code").val();
                var reg = /^1[3,4,5,7,8]\d{9}$/;
                var ret = false;
                if (code == '') {layer.msg('请填写验证码'); return ret;}
    if (!reg.test(mobile)) {layer.msg('手机号码不正确');return ret;}
   if (0 == time) {
                var data = {"code" : code, "mobile" : mobile};
                var err = "";
 
                if (flg == true) {
                    flg = false;
                    // ajax提交请求
      $.ajax({   
     type: "post",   
     url: "{U('public_checksms')}",   
     dataType: "html",
     async: false, 
     data: data, 
     beforeSend: function(){
       $("#dosubmit").attr({ disabled: "disabled" });
     },    
     success: function(msg){  
      if(msg == '0'){
        time = 60;
        sendTime();
        layer.msg('短信发送成功!');        
        ret = true;         
      }else if(msg == '1'){
        layer.msg('验证码不正确');     
      }else if(msg == '2'){
        layer.msg('短信配置不正确');     
      }else{
        layer.msg(msg);
      }     
     } 
      });
                }
                $('.codeimg').click();
                return ret;
            }
  })
 
 })
</script> 

最后打开项目:common\function\system.func.php文件,增加sendsms方法

function sendsms($mobile)
{
 $config = get_config();
 $user = $config['smsbao_user'];
 $pass = $config['smsbao_pass'];
 $sign = $config['smsbao_sign'];
 if (empty($user) && empty($pass) && empty($sign)) {
  return 2;
 }
 $code = rand(1000,9999);
 $content = '【'.$sign.'】您的验证码为:'.$code.'请妥善保存!';
 $url = 'http://api.smsbao.com/sms?u='.$user.'&p='.md5($pass).'&m='.$mobile.'&c='.$content;
 $result = file_get_contents($url);
 if ($result == 0) {
  $_SESSION['mobile_code'] = $code;
  return '0';
 }else{
  return $result;
 }
 
 
}

好了,经过以上的替换,短信宝的短信平台已经替换成功了,可以正常使用了。我们进行测试发送。

报备一下短信宝的VIP模板,这样就可以走短信宝的优质通道了,即便遇到敏感文字都不会人工审核,短信内容3~5秒就可送达。
轻量级开源内容管理系统-YzmCMS v6.0源码 介绍: YzmCMS是一款轻量级开源内容管理系统,它采用OOP(面向对象)方式自主开发的框架。基于PHP+Mysql架构,并采用MVC框架式开发的一款高效开源的内容管理系统,可运行在Linux、Windows、MacOSX、Solaris等各种平台上。 它可以让您不需要任何专业技术轻松搭建您需要的网站,操作简单,很容易上手,快捷方便的后台操作让您10分钟就会建立自己的爱站。在同类产品的比较中,YzmCMS更是凸显出了体积轻巧、功能强大、源码简洁、系统安全等特点,无论你是做企业网站、新闻网站、个人博客、门户网 阅读详情

相关推荐

【漏洞复现】YzmCMS-远程命令执行-pay_callback

YZMCMS是一款轻量级、高效且开源的内容管理系统,它基于PHP+Mysql架构,采用自主研发的YZMPHP框架和MVC模式进行开发。该系统具有卓越的跨平台性能,能够稳定运行在Linux、Windows、MacOSX、Solaris等多种操作系统上。YzmCMS pay_callback 接口处存在远程命令执行漏洞,恶意攻击者可能利用此漏洞执行恶意命令,获取服务器敏感信息,最终可能导致服务器失陷。

漏洞复现 1425

YzmCMS内容管理系统 简单搭建一个自己的本地网站

什么是CMS ​内容管理系统(content management system,CMS),是一种位于WEB前端(Web 服务器)和后端办公系统或流程(内容创作、编辑)之间的软件系统。内容的创作人员、编辑人员、发布人员使用内容管理系统来提交、修改、审批、发布内容。这里指的“内容”可能包括文件、表格、图片、数据库中的数据甚至视频等一切你想要发布到Internet、Intranet以及Extranet网站的信息。 内容管理还可选地提供内容抓取工具,将第三方信息来源,比如将文本文件、HTML网页、Web服务、关

xtx4506的博客 1414

YzmCMS pay_callback 远程命令执行漏洞复现

YzmCMS /pay/index/pay_callback.html接口存在远程命令执行漏洞,未经身份验证的远程攻击者可利用此漏洞执行任意系统指令,写入后门文件,最终可获取服务器权限。

0xSec 2445

YzmCMS轻爽极简风格Eric模版源码

简介: 模板说明:基于本次时间关系,以及对YzmCMS完整性的支持,本次发布的“Eric”模版主题,暂不提供“会心”相关模版,仅提供常用的通用模版。 同时,本次发布的“Eric”主题模版文件中,已移除默认模版中一些非必要的模版,仅保留一些通用模版(首页、列表页、资源列表页、内容页、关于我/单页等),当前模版主题中提供的模版文件已经能够满足大部分网站使用。 如需调用默认模板中的文件或使用该模板时出现诸如“XXX模版缺失”的问题,可自行将默认模版中的其他文件拷贝到该模版中,即可。 安装说明:YzmCMS

没有开通的博客 406

YZMCMS教程之安装篇

1.下载文件2.本地创建站点,解压文件如下:3.域名/index.html进行一步步安装:4.最后安装完成:5.更新后台栏目:

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 700

YzmCMS轻量级开源CMS v5.4

YzmCMS是一款轻量级开源内容管理系统,它采用OOP(面向对象)方式自主开发的框架。基于PHP+Mysql架构,并采用MVC框架式开发的一款高效开源的内容管理系统,可运行在Linux、Windows、MacOSX、Solaris等各种平台上。它可以让您不需要任何专业技术轻松搭建您需要的网站,操作简单,很容易上手,快捷方便的后台操作让您10分钟就会建立自己的爱站。在同类产品的比较中,YzmCMS更是凸显出了体积轻巧、功能强大、源码简洁、系统安全等特点,无论你是做企业网站、新闻网站、个人博客、门户网站、行业网站、电子商城等,它都能完全胜任,而且还提供了非常方便的二次开发体系,是一款全能型的建站系统!安装方式:访问根目录下install.php,根据提示系统将自动安装成功;YzmCMS特点:源码简洁因为YzmCMS是由一人独自开发完成,所以系统所有源码风格全部统一,源码非常干净、无冗余代码!开发灵活YzmCMS系统采用MVC框架式开发,增加了程序的维护性、可扩展性,并采用模块化开发设计,使二次开发变得简单、容易。开源YzmCMS系统是100%开源的PHP程序,保证系统的代码更健壮和更安全。

YZMCMS V5.3后台SSRF漏洞审计:从原理到实战修复

服务器端请求伪造(SSRF)是一种常见的安全漏洞,其核心原理在于攻击者能够诱使服务器应用程序向任意内部或外部资源发起HTTP请求。由于请求源自受信任的服务器端,攻击者可以借此绕过客户端访问限制,探测或攻击内网服务、读取敏感文件,甚至作为攻击跳板。在内容管理系统(CMS)等Web应用中,SSRF漏洞常出现在数据采集、远程下载、模板更新等需要服务器主动发起网络请求的功能模块中,对业务安全构成严重威胁。本文以YZMCMS V5.3后台的SSRF漏洞为例,深入剖析其代码层面的成因,并提供了从输入验证、安全HTTP客

weixin_33798152的博客 474

yzmCMS-php

因为YzmCMS是由一人独自开发完成,所以系统所有源码风格全部统一,源码非常干净、无冗余代码! 开发灵活 YzmCMS系统采用MVC框架式开发,增加了程序的维护性、可扩展性,并采用模块化开发设计,使二次开发变得简单、容易。 开源 YzmCMS系统是100%开源的PHP程序,保证系统的代码更健壮和更安全。 轻量级 YzmCMS系统在保持强大的功能前提下,整体压缩包仅不足5MB,比同类CMS至少缩小一倍,是您可以快速了解和研究它

CSRF&SSRF 漏洞重点知识总结

CSRF(Cross-site request forgery)跨站请求伪造,又称,攻击者诱导已登录目标网站的用户访问恶意页面/链接,利用浏览器自动携带Cookie的特性,冒用用户身份执行非法操作。

2403_84076271的博客 163

YzmCMS轻量级开源CMS v5.8

为您提供YzmCMS轻量级开源CMS下载,YzmCMS是一款轻量级开源内容管理系统,它采用OOP(面向对象)方式自主开发的框架。基于PHP+Mysql架构,并采用MVC框架式开发的一款高效开源的内容管理系统,可运行在Linux、Windows、MacOSX、Solaris等各种平台上。它可以让您不需要任何专业技术轻松搭建您需要的网站,操作简单,很容易上手,快捷方便的后台操作让您10分钟就会建立自己的爱站。在同类产品的比较中,YzmCMS更

YzmCMS轻量级开源CMS v5.5

YzmCMS是一款轻量级开源内容管理系统,它采用OOP(面向对象)方式自主开发的框架。基于PHP+Mysql架构,并采用MVC框架式开发的一款高效开源的内容管理系统,可运行在Linux、Windows、Mac

CSRF与SSRF漏洞原理、实战与防御全解析

在Web安全漏洞体系中,**CSRF(跨站请求伪造)与SSRF(服务器请求伪造)**是两类极易被忽视、但危害极高的服务端漏洞。两者名字相似、都属于“请求伪造”,但攻击位置、利用逻辑、防御手段完全不同。CSRF是借用用户身份在前端发起跨站操作,重点防护Token与Cookie策略;SSRF是借用服务器身份访问内网资源,是内网安全的重大威胁,必须严格限制请求地址与协议;二者都是“请求伪造”,但攻击层面、利用逻辑、防护思路完全不同,不可混淆;实战中先判断漏洞出发点:用户浏览器触发→CSRF;

cjianghha的博客 436

YzmCMS轻量级开源CMS v3.5

YzmCMS是一款轻量级开源内容管理系统,基于PHP+Mysql架构,采用OOP方式自主开发的框架(YZMPHP)。可运行在Linux、Windows、MacOSX、Solaris等各种平台上,程序完全采用MVC模块式开发、面向对象设

在线影视播放网站PHP电影网站源码自动采集MKCMS升级版

在线影视播放网站PHP电影网站源码自动采集,MKCMS升级版米酷模板含WAP手机版附三套模板。将源码上传到空间 (PHP5.3~5.6 版本),搜索不能用的,请切换 PHP 版本。安装完成后,/admin/ 进入后台,账号密码 admin。/install/ 进入安装,根据引导填写数据库信息。更多同类源码分享,欢迎关注。

破损的天堂鸟博客 758

黑金AXU9EG开发板深度学习部署全流程解析

本文详细解析了黑金AXU9EG开发板的深度学习模型部署全流程,从环境搭建、模型转换到上板验证,提供了实用的技术指导和优化技巧。该开发板基于Xilinx Zynq UltraScale+ MPSoC架构,特别适合边缘计算场景,通过FPGA加速实现高效AI推理。

weixin_29062613的博客 448

手把手教你驱动6脚三位一体数码管:从引脚分析到C语言扫描代码实战

本文详细解析了如何逆向工程并驱动6脚三位一体数码管的全过程,从引脚分析到C语言扫描代码实战。通过系统化的测试和优化,作者总结出一套高效的驱动架构和调试方法,适用于工业设备中的非标准数码管应用。

weixin_42632434的博客 213

【已安装成功】记部署yzmcms的一些重点

一、基础环境概况 操作系统:Redhat7.4 数据库软件:mysql5.7(注意得加装libs-compat组件,否则下面php-mysql安装缺少依赖) 中间件:httpd(apache) 基础软件:php、php-gd、php-mysql 二、安装yzmcms的概况 1、将下载的yzmcms包解压缩,把里面的所有文件放到/var/www/html目录下 2、在浏览器地址栏输入192.xxx.xxx.xxx/index回车,进入安装引导页面 3、安装前检查显示,缺少写入文件夹的权限。通过

sinat_34624126的博客 1604

别再只会regress了!用Stata的csdid命令搞定多期DID的完整实操指南

本文详细介绍了如何在Stata中使用csdid命令进行多期DID分析,解决传统DID方法在交错处理场景下的局限性。通过完整的实操指南,包括环境搭建、核心语法、结果解读和高阶应用,帮助研究者更准确地评估政策效果,适用于计量经济学和实证研究领域。

weixin_30236595的博客 582

织梦dedecms免费转换到yzmcms教程(含插件下载)

织梦dedecms免费转换到yzmcms教程(含插件下载) 自2021年09月30号,DedeCMS官方发布一封公开信,信中对于商业程序使用发出了授权通告,除个人非营利网站外都要购买DedeCMS商业使用授权,对于国内大批网站来说都是一个灾难性的消息。而且 DedeCMS已经完成了 AI机器人取证的阶段,下一步就是对到期之后还不缴费的网站采取维权措施了。如果你的网站想要长期持续性的发展商业行为,还是考虑下是否要转换为其他程序继续运行,其转换的程序大部分人会选择易优和wordpress,但博主本人非常不喜欢w

耀华博客 1087

SoIC、CoWoS、InFO一次讲透:从2D/2.5D/3D看懂先进封装

先进封装是后摩尔时代提升芯片性能的关键路径,但面对SoIC、CoWoS、InFO这些名词,很多人容易混淆。理解它们,需从最基本的2D、2.5D、3D封装概念入手:2D是传统平房,2.5D通过硅中介层实现高密度互连,3D则让芯片直接堆叠。CoWoS作为2.5D中介层封装,已成为AI芯片与HBM高带宽存储集成的行业标准;SoIC通过铜-铜混合键合实现真正的3D堆叠,为逻辑与缓存提供极致带宽;InFO以扇出型封装兼顾成本与集成度,广泛用于移动SoC。在系统级封装(SiP)和CPO共封装光学等前沿趋势中,这些技术往

weixin_42388898的博客 313

K-L展开 (Karhunen-Loeve expansion)

K-L变换

susan_wang1的博客 2万+

yzmcms常用标签

yzmcms常用标签 全局标签 关键字、描述和页面标题 <title>{$seo_title}</title> <meta name="keywords" content="{$keywords}" /> <meta name="description" content="{$description}" /> js和css路径代码 <link href="{STATIC_URL}peiyin/css/base.css" type="text/css"

xinshouxuexi1的博客 1230

团结引擎+OpenHarmony 2实战篇:从零构建鸿蒙应用开发环境

本文详细介绍了如何从零开始构建鸿蒙应用开发环境,重点讲解了团结引擎与OpenHarmony 2的实战配置步骤。内容包括DevEco Studio安装、OpenHarmony SDK配置、团结引擎集成及项目创建等关键环节,帮助开发者快速搭建高效的开发环境,提升鸿蒙应用开发效率。

weixin_29294395的博客 265

YzmCMS内核简约风非常不错的博客自媒体主题模板

本次发布的“Eric”主题模版文件中,已移除默认模版中一些非必要的模版,仅保留一些通用模版(首页、频道页、列表页、资源列表页、内容页、关于我/单页等),当前模版主题中提供的模版文件已经能够满足大部分网站使用。

优快云专家-微编程的博客 270

pyecharts在jupyter notebook中不能够渲染图表问题。

在使用jupyter notebook中使用pyecharts绘制可视化图表的时候,发现图表不能渲染到页面中,生成的html是没问题的,本文主要解决在jupyter notebook中不能渲染这个问题。

猿小白的博客 1167

linux系统下XDMA驱动的安装与测试问题总结

先看两个常见的问题。一个是驱动安装问题,一个是驱动测试错误;error 512 能识别PCIE的设备,但是The kernel modle installed correctly, but no devices were recognized.

whm128的博客 3807
上一篇: 聚乐云支付系统新增短信接口
下一篇: PHPOK企业站新增短信接口
mindev
博客等级 码龄10年 11粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值