站点动态:欢迎您!今天是 2025-11-21 星期五!

emlog文章使用的是blog表中gid自增来作为文章的ID,但是由于后台有删除文章的功能,一旦删除文章那么gid自增就会出现断号。

解决删除导致断号的问题有2种方法:

方法一:不删除文章,采用转为草稿再重新编辑发布的方法,适用于没有删除过文章的。(一般都已经删除文章了才会找到这篇文章)

方法二:只要在添加文章的时候判断gid之前的有没有断号问题,有的话直接插入,没有的话自增。


修改方法

看到emlog BBS有人需要这个代码(emlog统计指定时间内发表的文章数量),所以简单的写一下。

通过log_model.php中的模块函数getLogNum不用自己费力的去写函数了,直接构造数据库查询语句就可以使用这个函数来读取emlog文章数量了。

PS:只要你去研究emlog的核心代码,很多代码都是可以通过emlog自带的核心代码来实现效果的,不用费力不讨好的自己去写数据库查询函数。还能不破坏emlog速度和稳定性。


以下是这段代码,你可以在模版文件的任何地方使用,这个只是简单写一下,当然这个还可以写成函数的格式。建议使用的时候自己改写成函数形式来使用。

Bug描述

今天论坛有人说评论有BUG,我看了一下,无意中注意到isLogCanComment函数。

function isLogCanComment($blogId) { if (Option::get('iscomment') == 'n') { return false; } $query = $this->db->query("SELECT allow_remark FROM ".DB_PREFIX."blog WHERE gid=$blogId"); $show_remark = $this->db->fetch_array($query); if ($show_remark['allow_remark'] == 'n' || $show_remark === false) { return false; }else { return true; } }

以上是isLogCanComment函数的代码,数据库(连接方式使用mysqli)查询$show_remark的值应该是空值NULL,所以不能用===false。

注意:数据库连接方式使用mysqli就会出现这个问题

影响就是POST伪造gid,可以把评论发布到不存在或者未审核未发布的文章下,影响应该不大。

RouterOS指定内网IP走指定接口

RouterOS(以下简称ROS)经常会使用到多拨和VPN等功能,默认情况下全局流量都从默认的接口通过。 如果需要指定某个IP/IP段只从某个/多个指定的接口通过,那么就需要用到路由标记功能。

这次我是ROS接了软路由LEDE,因为需要使用LEDE的koolproxy插件去电视盒的广告,但是不想改变现有网络的结构。所以想到ROS使用VPN拨号到LEDE的PPTP服务器,然后标记内网电视盒的IP走LEDE,从而达到去广告的目的。

 

设置方法:

1、LEDE创建PPTP服务器


2、PPP,点击 + 按钮,选择“PPTP Client”,“Connect To”填写LEDE的wan口ip

Mikrotik RouterOS升级降级

最近在玩mikrotik RouterOS(以下简称ROS),这是我比较喜欢的一款路由软件,性能和功能比较强大。


ROS升级:

1、去官网下载升级包,根据自己的设备下载对应的升级文件main package,比如我这边使用是别人的虚拟机打包破解版本(如图:可以看到当前版本是ROS 5.18,插件也是5.18),所以应该下载x86的main package,还有需要下载对应的插件包Extra packages。

官网地址: https://mikrotik.com/download(建议:如果想使用ROS,请支持正版)

RouterOS使用VLAN实现多线多拨

大部分软路由网口是偏少的,一般也就3~4个网口,所以如果多条物理ADSL线路,RouterOS(以下简称ROS)需要用到web网管型交换机来扩展WAN。

这边以4条ADSL,8口web网管型交换机,以及4口ROS软路由为测试环境。


详细设置:

1、首先在Web网管型交换机4个网口设置VLAN_ID:10,20,30,40,还有设置一个trunk口连接到软路由ether1上


2、创建VLAN,Winbox --> Interfaces --> Interface,重命名ether1为WAN,Interfaces -->VLAN,新建4个VLAN:VLAN10,VLAN20,VLAN30,VLAN40。

我前面有文章《RouterOS利用DNSPOD的API接口实现DDNS动态解析》写过通过PHP服务器更新DNSPOD解析的域名IP,但是更多的是带来安全问题,所有这次写了一个RouterOS(以下简称ROS)的原生脚本来实现域名的动态解析。


版本说明

1、最低版本支持RouterOS v6.43,低于这个版本的要么升级,要么还是使用第三方服务器来动态解析。

2、不存在的记录,不会自动添加,需要手动在DNSPOD添加记录,线路为默认,不支持单记录多线路解析。为什么不加自动了添加域名之类的,因为一次添加永久有效,所以脚本中不添加自动了。节省ROS性能(我懒)

3、只支持IPv4,不支持IPv6

RouterOS通过VRRP实现单线多拨以及PCC负载均衡

单线多拨/一线多拨需要运营商的支持,可以达到叠加速度(也要运营商支持)以及获取多个IP地址的目的。

RouterOS(以下简称ROS)可以通过VRRP显示PPPOE多拨,本文虚拟机虚拟ROS以及自建PPPoE服务器,WAN口是ether1,LAN口是ether2,来实现1线3拨以及使用PCC规则来达到负载均衡的效果。


一、VRRP设置

1、打开“Interfaces” - “VRRP”,点击“+”


2、添加3个VRRP,name分别为vrrp1,vrrp2,vrrp3


3、VRRP选项卡分别设置vrrp1的VRID为1, vrrp2的VRID为2, vrrp3的VRID为3

RouterOS多IP使用src-nat上网并对应内网IP地址

本教程主要介绍 RouterOS(以下简称ROS)多IP(多拨或者多宽带)使用src-nat上网,并指定内网的IP通过指定线路上网。

平时的教程都是masquerade伪装上网,所以这次星知苑出品的这个教程使用的是src-nat上网,主要是因为src-nat的效率比masquerade的高。

本教程不适合初学者,过程中很多步骤略过怎么配置,初学者请先学习ROS基本配置再过来查看本教程。


一、环境介绍

1、ESXi6.5虚拟机虚拟ROS、Win7和WinXP

2、ROS多网卡,分别连接2个外网WAN1和WAN2,内网LAN连接Win7和WinXP