ngtwewy

1,菜单函数 wp_nav_menu()wp_nav_menu( array( 'theme_location' => '', //[保留]用于在调用导航菜单时指定注册过的某一个导航菜单名,如果没有指定,则显示第一个 'menu' => 'top_main1', //[可删]使用导航菜单的名称调用菜单,可以是 id, slug, name (按顺序匹配的) 。 'container' => false, //[可删]最外层容器标签名 'container_class' => '',//[

2020-05-22    PHP   
ngtwewy

1. 【强制】隶属于用户个人的页面或者功能必须进行权限控制校验。 说明:防止没有做水平权限校验就可随意访问、修改、删除别人的数据,比如查看他人的私信内容。2. 【强制】用户敏感数据禁止直接展示,必须对展示数据进行脱敏。 说明:中国大陆个人手机号码显示为:137****0969,隐藏中间 4 位,防止隐私泄露。3. 【强制】用户输入的SQL参数严格使用参数绑定或者METADATA字段值限定,防止SQL注入, 禁止字符串拼接 SQL 访问数据库。反例:某系统签名大量被恶意修改,即是因为对于危险字符 # --没有进行转义,导致数据库更新时,where 后边的信息被注释掉,对全库进行更新。4. 【强制

2020-04-27    PHP   
ngtwewy

CSRF 背景与介绍CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一。其他安全隐患,比如 SQL 脚本注入,跨站域脚本攻击等在近年来已经逐渐为众人熟知,很多网站也都针对他们进行了防御。然而,对于大多数人来说,CSRF 却依然是一个陌生的概念。即便是大名鼎鼎的 Gmail, 在 2007 年底也存在着 CSRF 漏洞,从而被黑客攻击而使 Gmail 的用户造成巨大的损失。CSRF 攻击实例CSRF 攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在并未授权的情况

2020-04-05    PHP   
ngtwewy

场景:有些复杂的原生SQL语句查询,出错了没有报错:try{ $sth = $dbh->prepare($sql); $sth->execute(); $articles = $sth->fetchAll(\PDO::FETCH_ASSOC); } catch (\PDOException $e){ return $this->json($e->getMessage()); } 分析:PDO 提供了三种不同的错误处理模式,以满足不同风格的应用开发:PDO::ERRMODE_SILENT此为默认模式。 PDO 将只简单地设置错误码,可使用 PDO::

2020-03-29    PHP   
ngtwewy

场景:一次查询,返回给前端一个列表,需要在列表的每一项中加一个相关子对象。比如,返回给前端一个文章列表,列表中的每一项中,都要有一个文章作者的信息对象,如下:{ "count": "548", "list": [ { "id": "620", "user_id": "1", "category_id": "17", "name": "买藕了", "thumbnail": "", "content": "一斤藕半斤都是空心的,以后不买了...", "comment_counter": "0", "like_counte

2020-03-29    PHP   
ngtwewy

准备工作:1、Workerman版本不小于3.3.72、PHP安装了openssl扩展3、已经申请了证书(pem/crt文件及key文件)放在磁盘任意目录代码: array( // 请使用绝对路径 'local_cert'=> '磁盘路径/server.pem', // 也可以是crt文件 'local_pk'=> '磁盘路径/server.key', 'verify_peer'=> false, // 'allow_self_signed' => true, //如果是自签名证书需要开启此选项 ) ); // 这里设置的是websocket协议(端口任意,但是需要保证没被其它

2020-02-29    PHP   
ngtwewy

软件开发中的两种常用代码复用模式,继承和组合。继承:强调 父类与子类 的关系,即子类是父类的一个特殊类型;组合:强调 整体与局部 的关系,侧重的一种需要的关系;软件开发中有一条原则,叫做组合优于继承。这是因为从耦合度来看,继承要高于组合。继承关系中,子类与父类保持着高度的依赖关系,加上 PHP 不支持多继承,为了避免重写编写代码,很多功能都被统一封装到父类中。这样做有两个坏处:一是随着继承的层数和子类的增加,代码复杂度不断增加,大量的方法都将面临着重写;二是这些功能对于一些子类来说可能是不必要的,破坏了代码的封装性。trait ezcReflectionReturnInfo { functi

2020-02-22    PHP   
ngtwewy

/** * 递归获取所有 ID * @param array $array 所有分类列表 * @param [type] $id 子分类ID */ function get_all_parents($array, $id){ $arr = []; foreach ($array as $v) { if($v['id'] == $id){ $arr[] = $id; if($v['parent_id'] != 0){ $arr = array_merge(

2020-02-16    PHP   
ngtwewy

use think\paginator\driver\Bootstrap; // 获取用户上传列表 $page    = input('page/d') > 0 ? input('page/d') : 1;  $per_page  = Config::get('per_page'); $offset   = ($page-1) * $per_page; $sql = "..."; $list = db()->query($sql); // 查询总条数 $count = "SELECT count(*) AS count from tp_item"; $count = d

2020-02-05    PHP   
ngtwewy

前端篇地址:https://javascript.net.cn/article?id=652相关文档:https://restfulapi.cn/d/271一,WebSocket 简介WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,浏览器和服务器之间就可以创建一个持久性的连接,两者之间就直接可以数据互相传送。现在,很多网站为了实现推送技术,所用的技术都是 Ajax 轮询。轮询是在特定

2020-02-03    PHP   
ngtwewy

数组函数:1.排序类:【1.无返回值,传值引用,就直接对原数组进行了修改】按V:sort,rsort,asort,arsort,按K:ksort,krsortsort() 按升序对给定数组的值排序,不保留键名rsort() 对数组逆向排序,不保留键名asort() 对数组排序,保持索引关系arsort() 对数组逆向排序,保持索引关系ksort() 按键名对数组排序krsort() 将数组按照键逆向排序natsort() 用自然顺序算法对数组中的元素排序natcasesort() 自然排序,不区分大小写2.键值操作类:【都有返回值,没有在原来参数上修改】array_values($arr);

2020-01-31    PHP   
ngtwewy

php生成唯一识别码uuid/*生成唯一标志 *标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxxxx-xxxxxxxxxx(8-4-4-4-12) */ functionuuid() { $chars = md5(uniqid(mt_rand(), true)); $uuid = substr ( $chars, 0, 8 ) . '-' . substr ( $chars, 8, 4 ) . '-' . substr ( $chars, 12, 4 ) . '-' . substr ( $chars, 16, 4 ) . '-' . substr (

2019-11-16    PHP   
ngtwewy

$postStr = file_get_contents("php://input");因为一般PHP中register_globals参数都设置了On,禁止了使用$GLOBALS["HTTP_RAW_POST_DATA"];php://inputphp://input 是个可以访问请求的原始数据的只读流。 POST 请求的情况下,最好使用 php://input 来代替 $HTTP_RAW_POST_DATA,因为它不依赖于特定的 php.ini 指令。 而且,这样的情况下 $HTTP_RAW_POST_DATA 默认没有填充, 比激活 always_populate_raw_post_da

2019-11-03    PHP   
ngtwewy

public function fileUrl($url) { $file = 'uploads/files/'.$url; if (file_exists(\dirname(__FILE__).$file)) { return $this->error("文件不存在"); } // 新文件名 $filename = explode('.', $file); $filename = array_pop($filename); $filename = time().'.'.$filename;

2019-07-07    PHP   
ngtwewy

一般还是ORM的事务方便一些,下面是PHP原生PDO MySQL的事务。 function getPDO(){ $dsn = 'mysql:dbname='.config('database')['database'].';host='.config('database')['hostname']; $username = config('database')['username']; $password = config('database')['password']; try { $dbh = new P

2019-06-25    PHP   
随机推荐
php解析模板路径
express不是内部或外部命令,也不是可运行的程序或批处理文件
div随页面滚动遇顶固定的两种方法(智能浮动层)
Premiere 小技巧汇总笔记
Ecshop二次开发之后台添加新栏目
树妖1
windows中Git的换行符为 CRLF
微信上传图片
Cordova 权限问题 Error: spawn EACCES
为什么 PDO 无法捕获异常