diff --git a/123.html b/123.html
new file mode 100644
index 0000000..fcfc4b8
--- /dev/null
+++ b/123.html
@@ -0,0 +1,190 @@
+
+
+
+
+ 处理导出的谷歌浏览器书签
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/456.html b/456.html
new file mode 100644
index 0000000..2278491
--- /dev/null
+++ b/456.html
@@ -0,0 +1,193 @@
+
+
+
+
+ 处理导出的谷歌浏览器书签
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bookmarks_2022_5_6.html b/bookmarks_2022_5_6.html
new file mode 100644
index 0000000..a6c6f50
--- /dev/null
+++ b/bookmarks_2022_5_6.html
@@ -0,0 +1,160 @@
+
+
+
+Bookmarks
+Bookmarks
+
+
书签栏
+
+
常用网址
+
+
- V2EX
+
- 金狐电脑工作室-Jinhu Computer Studio
+
- 滴答清单: 一个帮你高效完成任务和规划时间的应用
+
- Today / Me
+
- 【成都-武侯区司机或配送员_司机或配送员招聘_四川易格天承文化传播有限公司】-前程无忧官方招聘网站
+
+
影视
+
+
adult
+
+
- 草榴社區 - powered by phpwind.net
+
- 捷克論壇 JKF
+
- bt下载 爱城 bt下载
+
- Resilio Sync Keys List - BTSync资源
+
- 微力同步 Resilio Sync Key 下载-资源大全 Resilio Sync Keys List - BTSync资源分享 资源搜索
+
- JavBus
+
- Phim sex hd | Phim địt nhau không che | Jav hay nhất 2017
+
- Free Porn Videos & Sex Movies - Porno, XXX, Porn Tube | Pornhub
+
- 小嶋ひより | 一本道
+
- 保存视频,下载视频,YouTube视频下载,YouTube,视频在线,离线视频 - savevd.com
+
- TuKif : PORNO GRATUIT, Tube de Video Porno HD, Streaming Sex
+
- mgstage - 200GANA 230ORE 259LUXU 261ARA 276KITAIKE 277DCV 300MIUM SIRO
+
- 91dizhi_1 on eBay
+
- Browse :: Sukebei
+
- 亚洲无码原创 - 色花堂 - Powered by Discuz!
+
- RARBG Rarbg Index page
+
- Browse :: Sukebei
+
- 免费高清在线视频 - 色爷爷
+
- 色花堂 - Powered by Discuz!
+
- Netflav - 無修正 / Uncensored
+
- 色花堂 - Powered by Discuz!
+
- 大姐姐资源站
+
- 美国LAX CN2 VPS,中国高级KVM VPS,纯SSD VPS
+
- 魔性论坛 - 免费、自由的交流论坛 -
+
- 就去撸撸吧-男人天堂
+
- 微信网页版
+
- 村花论坛
+
- 色花堂-98堂 - Powered by Discuz!
+
- WHERE BT官方博客
+
- 色花堂-98堂 - Powered by Discuz!
+
+
- Transmission WEB 控制器 1.6.0 beta
+
- 歌曲大全-音乐聚合搜索引擎-音乐免费下载mp3-音乐免费下载
+
PT
+
+
- PT之友俱乐部 :: 首页 PTerClub
+
- M-Team
+
- NicePT
+
- 百度网盘-全部文件
+
+
+
购物
+
+
- 欢迎进入-泸州客运中心站
+
- 个人信用信息服务平台
+
- 成都汽车票务网-汽车票余票查询‖汽车票价查询‖汽车票预订‖汽车票网上订票官网
+
- 用户中心首页 - UU163旅行在线
+
+
教程
+
+
- linux-ubuntu使用shadowsocks客户端配置 - 资源教程 - 爱探路
+
- w3school 在线教程
+
- 菜鸟教程 - 学的不仅是技术,更是梦想!
+
+
软件
+
+
- zd423
+
- XunleiHD
+
- 心海e站
+
- 软件盒子
+
- 独木成林 - 专注软件分享与优化
+
- 图标搜索引擎 - 下载469674个免费图标, PNG图标, 网页图标
+
- 销售
+
- baisu: onenav主题 - Gitee.com
+
+
开发者
+
+
- Bootstrap中文网
+
- w3cschool菜鸟教程
+
- 流风清音 - 流风清音 - 网易博客
+
- 图标下载,ICON(PNG/ICO/ICNS)图标搜索下载 | EASYICON.NET
+
- 首页 | EverEdit
+
- Bootswatch: Free themes for Bootstrap
+
- whois.ati.tn
+
- SSL状态在线检测工具 - 亚洲诚信
+
- 获取笑话 - API
+
- 梅林固件
+
- Index of /PandoraBox/Xiaomi-Mini-R1CM/stable/
+
- PUBG Servers Ping
+
- APK Downloader [Latest] Download Directly | Chrome Extension v3 (Evozi Official)
+
- 域名特工 beta
+
- OXAHOST - 查看请求
+
- angular | Font Awesome
+
- Realtime Moderation API - Sightengine
+
- PAYJS
+
- JpGraph - Most powerful PHP-driven charts
+
- PHP的QR码 - 例子
+
- ico图标制作,在线Favicon.ico制作转换工具,实时预览ico生成效果,ico图标下载
+
- CodeIgniter 用户指南
+
- Ansible入门 · Ansible入门
+
- VMware Workstation 15 Pro Keygen
+
- 12578 3840x2160 4k Ultra 高清壁纸 | 桌面背景 - Wallpaper Abyss - 页面 4
+
- Free stock photos · Pexels
+
- ICANN | ICANN认可的注册商的说明和联系信息
+
- ICANN | ICANN认可的注册商
+
- 《Laravel 5.5 中文文档》 | Laravel China 社区
+
- 微擎开发手册 · 看云
+
- 人人商城/数据库字典 - Blueidea
+
- v2-ui,一个全新的多协议多用户 v2ray 面板 | sprov
+
+
其它网址
+
+
- 四川省教育考试院信息查询系统-成绩查询,录取查询
+
+
zhanmei
+
+
- AdGuard Home
+
- AriaNg
+
- ccaaDown
+
- netdata
+
- BT导航网
+
- maopan - Synology DiskStation
+
- Jellyfin
+
- AdGuard Home
+
+
- HK
+
-
+
- YouTube
+
-
+
- whois查询_域名whois查询_域名查询-西部数码域名whois资料查询平台
+
- 西部数码知识系统 (http://www.west.cn)|安装SSL证书,启用HTTPS
+
- 百度统计——最大的中文网站分析平台
+
- 微信网页版
+
- 滴答清单
+
- 离线下载
+
云服务
+
+
- 百度智能云
+
- CDN缓存刷新系统
+
- Online Transmission WEB 控制器
+
+
- 一键添加
+
+
- 领贤
+
- 少女卷轴5:污神整合-傻瓜一键智能安装整合中文版【新整合】 – 叽哩叽哩游戏网ACG(G站)
+
- 添加书签
+
- OneNav
+
diff --git a/class/Api.php b/class/Api.php
index 8d58b60..876dac5 100755
--- a/class/Api.php
+++ b/class/Api.php
@@ -59,18 +59,35 @@ class Api {
if( empty($id) ){
$this->err_msg(-1003,'The category ID cannot be empty!');
}
+ //根据fid查询这个分类是否存在
+ $count = $this->db->count("on_categorys", [
+ "id" => $fid
+ ]);
+
+ //如果fid不是0,且查询结果小于1,则认为这个父级ID是不存在的,则不允许修改
+ if( !empty($fid) && ($count < 1) ) {
+ $this->err_msg(-2000,'父级ID不存在!');
+ }
+
+ //查询fid是否是二级分类的ID,如果是,则不允许修改
+ $category = $this->db->get("on_categorys","*",[
+ "id" => $fid
+ ]);
+ //如果查询到他的父ID不是0,则是一个二级分类
+ if( intval($category['fid']) !== 0 ) {
+ $this->err_msg(-2000,'父分类不能是二级分类!');
+ }
//如果分类名为空
elseif( empty($name ) ){
$this->err_msg(-1004,'The category name cannot be empty!');
}
-
//更新数据库
else{
//根据分类ID查询改分类下面是否已经存在子分类,如果存在子分类了则不允许设置为子分类,实用情况:一级分类下存在二级分类,无法再将改一级分类修改为二级分类
$count = $this->db->count("on_categorys", [
"fid" => $id
]);
- //改分类下的子分类数量大于0,并且将父级ID修改为其它分类
+ //该分类下的子分类数量大于0,并且父级ID修改为其它分类
if( ( $count > 0 ) && ( $fid !== 0 ) ) {
$this->err_msg(-2000,'修改失败,该分类下已存在子分类!');
}
@@ -383,6 +400,7 @@ class Api {
//追加一个默认分类,用来存储部分链接找不到分类的情况
array_push($categoryt,"默认分类");
+
//批量创建分类
$this->batch_create_category($categoryt);
//查询所有分类
@@ -401,7 +419,7 @@ class Api {
foreach ($data as $key => $value) {
$category_name = trim($value['category']);
//如果链接的分类是空的,则设置为默认分类
- $value['category'] = empty( $value['category'] ) ? "默认分类" : $value['category'];
+ $category_name = empty( $category_name ) ? "默认分类" : $category_name;
foreach ($categorys as $category) {
if( trim( $category['name'] ) == $category_name ) {
@@ -419,8 +437,7 @@ class Api {
'weight' => 0,
'property' => $property
];
- // var_dump($link_data);
- // exit;
+
//插入数据库
$re = $this->db->insert('on_links',$link_data);
//返回影响行数
@@ -445,6 +462,7 @@ class Api {
protected function batch_create_category($category_name) {
$i = 0;
foreach ($category_name as $key => $value) {
+ $value = empty($value) ? "默认分类" : $value;
$data = [
'name' => trim($value),
'add_time' => time(),
@@ -866,7 +884,7 @@ class Api {
* 验证是否登录
*/
protected function is_login(){
- $key = md5(USER.PASSWORD.'onenav');
+ $key = md5(USER.PASSWORD.'onenav'.$_SERVER['HTTP_USER_AGENT']);
//获取session
$session = $_COOKIE['key'];
//如果已经成功登录
@@ -1294,6 +1312,13 @@ class Api {
}
}
+ /**
+ * 用户状态
+ */
+ public function check_login(){
+ $status = $this->is_login() ? "true" : "false";
+ $this->return_json(200,$status,"");
+ }
}
diff --git a/controller/admin.php b/controller/admin.php
index ebb0c0b..3957d90 100755
--- a/controller/admin.php
+++ b/controller/admin.php
@@ -2,6 +2,8 @@
/**
* 后台入口文件
*/
+// 载入辅助函数
+require('functions/helper.php');
//检查认证
check_auth($site_setting['user'],$site_setting['password']);
@@ -269,40 +271,12 @@ if ($page == 'ext_js') {
$page = $page.'.php';
-//获取访客IP
-function getIP() {
- if (getenv('HTTP_CLIENT_IP')) {
- $ip = getenv('HTTP_CLIENT_IP');
- }
- elseif (getenv('HTTP_X_FORWARDED_FOR')) {
- $ip = getenv('HTTP_X_FORWARDED_FOR');
- }
- elseif (getenv('HTTP_X_FORWARDED')) {
- $ip = getenv('HTTP_X_FORWARDED');
- }
- elseif (getenv('HTTP_FORWARDED_FOR')) {
- $ip = getenv('HTTP_FORWARDED_FOR');
- }
- elseif (getenv('HTTP_FORWARDED')) {
- $ip = getenv('HTTP_FORWARDED');
- }
- else {
- $ip = $_SERVER['REMOTE_ADDR'];
- }
- return $ip;
- }
-
/**
* 检查授权
*/
function check_auth($user,$password){
- $ip = getIP();
- $key = md5($user.$password.'onenav');
- //获取cookie
- $cookie = $_COOKIE['key'];
- //如果cookie的值和计算的key不一致,则没有权限
- if( $cookie !== $key ){
+ if ( !is_login() ) {
$msg = "
";
require('templates/admin/403.php');
exit;
diff --git a/controller/api.php b/controller/api.php
index c9a3ef4..abe7bc6 100755
--- a/controller/api.php
+++ b/controller/api.php
@@ -397,10 +397,16 @@ EOF;
foreach ($value as $link) {
$title = $link['title'];
$add_time = $link['add_time'];
- echo "$title\n";
+ $url = $link['url'];
+ echo "$title\n";
}
echo "\n";
echo "\n";
}
+}
+
+//获取用户登录状态
+function check_login($api) {
+ $api->check_login();
}
\ No newline at end of file
diff --git a/controller/index.php b/controller/index.php
index 9ac9166..078079b 100755
--- a/controller/index.php
+++ b/controller/index.php
@@ -3,16 +3,30 @@
* 首页模板入口
*/
//如果已经登录,获取所有分类和链接
+// 载入辅助函数
+require('functions/helper.php');
if( is_login() ){
//查询所有分类目录
- $categorys = $db->select('on_categorys','*',[
- "ORDER" => ["weight" => "DESC"]
- ]);
+ $categorys = [];
//查询一级分类目录,分类fid为0的都是一级分类
$category_parent = $db->select('on_categorys','*',[
"fid" => 0,
"ORDER" => ["weight" => "DESC"]
]);
+ //遍历一级分类,然后获取下面的二级分类,获取到了就push
+ foreach ($category_parent as $key => $value) {
+ //把一级分类先加入到空数组
+ array_push($categorys,$value);
+ //然后查询他下面的子分类,再追加到数组
+ $category_subs = $db->select('on_categorys','*',[
+ "fid" => $value['id'],
+ "ORDER" => ["weight" => "DESC"]
+ ]);
+
+ foreach ($category_subs as $category_sub) {
+ array_push($categorys,$category_sub);
+ }
+ }
//根据分类ID查询二级分类,分类fid大于0的都是二级分类
function get_category_sub($id) {
global $db;
@@ -42,16 +56,28 @@ if( is_login() ){
//如果没有登录,只获取公有链接
else{
//查询分类目录
- $categorys = $db->select('on_categorys','*',[
- "property" => 0,
- "ORDER" => ["weight" => "DESC"]
- ]);
+ $categorys = [];
//查询一级分类目录,分类fid为0的都是一级分类
$category_parent = $db->select('on_categorys','*',[
"fid" => 0,
'property' => 0,
"ORDER" => ["weight" => "DESC"]
]);
+ //遍历一级分类,然后获取下面的二级分类,获取到了就push
+ foreach ($category_parent as $key => $value) {
+ //把一级分类先加入到空数组
+ array_push($categorys,$value);
+ //然后查询他下面的子分类,再追加到数组
+ $category_subs = $db->select('on_categorys','*',[
+ "fid" => $value['id'],
+ 'property' => 0,
+ "ORDER" => ["weight" => "DESC"]
+ ]);
+
+ foreach ($category_subs as $category_sub) {
+ array_push($categorys,$category_sub);
+ }
+ }
//根据分类ID查询二级分类,分类fid大于0的都是二级分类
function get_category_sub($id) {
global $db;
@@ -80,29 +106,6 @@ else{
$onenav['right_menu'] = 'user_menu();';
}
-
-//获取访客IP
-function getIP() {
- if (getenv('HTTP_CLIENT_IP')) {
- $ip = getenv('HTTP_CLIENT_IP');
- }
- elseif (getenv('HTTP_X_FORWARDED_FOR')) {
- $ip = getenv('HTTP_X_FORWARDED_FOR');
- }
- elseif (getenv('HTTP_X_FORWARDED')) {
- $ip = getenv('HTTP_X_FORWARDED');
- }
- elseif (getenv('HTTP_FORWARDED_FOR')) {
- $ip = getenv('HTTP_FORWARDED_FOR');
- }
- elseif (getenv('HTTP_FORWARDED')) {
- $ip = getenv('HTTP_FORWARDED');
- }
- else {
- $ip = $_SERVER['REMOTE_ADDR'];
- }
- return $ip;
- }
//获取版本号
function get_version(){
if( file_exists('version.txt') ) {
@@ -114,19 +117,7 @@ function get_version(){
return $version;
}
}
-//判断用户是否已经登录
-function is_login(){
- $key = md5(USER.PASSWORD.'onenav');
- //获取session
- $session = $_COOKIE['key'];
- //如果已经成功登录
- if($session == $key) {
- return true;
- }
- else{
- return false;
- }
-}
+
//将URL转换为base64编码
function base64($url){
$urls = parse_url($url);
diff --git a/controller/login.php b/controller/login.php
index bb4b851..b7b64f7 100755
--- a/controller/login.php
+++ b/controller/login.php
@@ -2,16 +2,20 @@
/**
* 登录入口
*/
+
+// 载入辅助函数
+require('functions/helper.php');
+
$username = $site_setting['user'];
$password = $site_setting['password'];
$ip = getIP();
//如果认证通过,直接跳转到后台管理
-$key = md5($username.$password.'onenav');
+$key = md5($username.$password.'onenav'.$_SERVER['HTTP_USER_AGENT']);
//获取cookie
$cookie = $_COOKIE['key'];
//如果已经登录,直接跳转
-if( $cookie === $key ){
+if( is_login() ){
header('location:index.php?c=admin');
exit;
}
@@ -22,7 +26,7 @@ if( $_GET['check'] == 'login' ) {
$pass = $_POST['password'];
header('Content-Type:application/json; charset=utf-8');
if( ($user === $username) && ($pass === $password) ) {
- $key = md5($username.$password.'onenav');
+ $key = md5($username.$password.'onenav'.$_SERVER['HTTP_USER_AGENT']);
//开启httponly支持
setcookie("key", $key, time()+30 * 24 * 60 * 60,"/",NULL,false,TRUE);
$data = [
@@ -56,29 +60,6 @@ if( $_GET['check'] == 'login' ) {
// header('location:index.php?c=admin');
// }
-//获取访客IP
-function getIP() {
-if (getenv('HTTP_CLIENT_IP')) {
-$ip = getenv('HTTP_CLIENT_IP');
-}
-elseif (getenv('HTTP_X_FORWARDED_FOR')) {
- $ip = getenv('HTTP_X_FORWARDED_FOR');
-}
- elseif (getenv('HTTP_X_FORWARDED')) {
- $ip = getenv('HTTP_X_FORWARDED');
-}
-elseif (getenv('HTTP_FORWARDED_FOR')) {
-$ip = getenv('HTTP_FORWARDED_FOR');
-}
-elseif (getenv('HTTP_FORWARDED')) {
-$ip = getenv('HTTP_FORWARDED');
-}
-else {
- $ip = $_SERVER['REMOTE_ADDR'];
-}
- return $ip;
-}
-
// 载入后台登录模板
require('templates/admin/login.php');
\ No newline at end of file
diff --git a/data.json b/data.json
new file mode 100644
index 0000000..12c36a9
--- /dev/null
+++ b/data.json
@@ -0,0 +1 @@
+[{"name":"常用网址","children":[],"web":[{"url":"https://www.v2ex.com/","title":"V2EX","desc":"V2EX"},{"url":"http://www.jinhu.me/","title":"金狐电脑工作室-Jinhu Computer Studio","desc":"金狐电脑工作室-Jinhu Computer Studio"},{"url":"http://www.dida365.com/","title":"滴答清单: 一个帮你高效完成任务和规划时间的应用","desc":"滴答清单: 一个帮你高效完成任务和规划时间的应用"},{"url":"https://feedly.com/i/my","title":"Today / Me","desc":"Today / Me"},{"url":"https://jobs.51job.com/chengdu-whq/110062245.html?s=01&t=0","title":"【成都-武侯区司机或配送员_司机或配送员招聘_四川易格天承文化传播有限公司】-前程无忧官方招聘网站","desc":"【成都-武侯区司机或配送员_司机或配送员招聘_四川易格天承文化传播有限公司】-前程无忧官方招聘网站"}]},{"name":"影视","children":[{"name":"adult","children":[{"name":"三级分类","children":[{"name":"四级分类","children":[],"web":[{"url":"https://www.baidu.com/","title":"四级书签测试","desc":"四级书签测试"}]}],"web":[{"url":"https://www.baidu.com/","title":"三级书签测试","desc":"三级书签测试"}]}],"web":[{"url":"http://www.t66y.com/index.php?u=388056&vcencode=1603147821","title":"草榴社區 - powered by phpwind.net","desc":"草榴社區 - powered by phpwind.net"},{"url":"http://www.jkforum.net/forum.php","title":"捷克論壇 JKF","desc":"捷克論壇 JKF"},{"url":"http://bt.aisex.com/bt/index.php","title":"bt下载 爱城 bt下载","desc":"bt下载 爱城 bt下载"},{"url":"http://changlai.net/","title":"Resilio Sync Keys List - BTSync资源","desc":"Resilio Sync Keys List - BTSync资源"},{"url":"http://verysync.com/","title":"微力同步 Resilio Sync Key 下载-资源大全 Resilio Sync Keys List - BTSync资源分享 资源搜索","desc":"微力同步 Resilio Sync Key 下载-资源大全 Resilio Sync Keys List - BTSync资源分享 资源搜索"},{"url":"https://www.javbus.com/","title":"JavBus","desc":"JavBus"},{"url":"http://javhd.pro/","title":"Phim sex hd | Phim địt nhau không che | Jav hay nhất 2017","desc":"Phim sex hd | Phim địt nhau không che | Jav hay nhất 2017"},{"url":"https://www.pornhub.com/","title":"Free Porn Videos & Sex Movies - Porno, XXX, Porn Tube | Pornhub","desc":"Free Porn Videos & Sex Movies - Porno, XXX, Porn Tube | Pornhub"},{"url":"https://www.1pondo.tv/search/?s=%E5%B0%8F%E5%B6%8B%E3%81%B2%E3%82%88%E3%82%8A","title":"小嶋ひより | 一本道","desc":"小嶋ひより | 一本道"},{"url":"https://savevd.com/vlist","title":"保存视频,下载视频,YouTube视频下载,YouTube,视频在线,离线视频 - savevd.com","desc":"保存视频,下载视频,YouTube视频下载,YouTube,视频在线,离线视频 - savevd.com"},{"url":"https://tukif.com/","title":"TuKif : PORNO GRATUIT, Tube de Video Porno HD, Streaming Sex","desc":"TuKif : PORNO GRATUIT, Tube de Video Porno HD, Streaming Sex"},{"url":"http://mgs.blogg.org/","title":"mgstage - 200GANA 230ORE 259LUXU 261ARA 276KITAIKE 277DCV 300MIUM SIRO","desc":"mgstage - 200GANA 230ORE 259LUXU 261ARA 276KITAIKE 277DCV 300MIUM SIRO"},{"url":"https://www.ebay.com/usr/91dizhi_1","title":"91dizhi_1 on eBay","desc":"91dizhi_1 on eBay"},{"url":"https://sukebei.nyaa.si/","title":"Browse :: Sukebei","desc":"Browse :: Sukebei"},{"url":"http://www.djdsht.com/forum-36-1.html","title":"亚洲无码原创 - 色花堂 - Powered by Discuz!","desc":"亚洲无码原创 - 色花堂 - Powered by Discuz!"},{"url":"https://rarbgprx.org/index54.php","title":"RARBG Rarbg Index page","desc":"RARBG Rarbg Index page"},{"url":"https://sukebei.nyaa.si/?s=leechers&o=desc","title":"Browse :: Sukebei","desc":"Browse :: Sukebei"},{"url":"https://www.seyeye7.com/","title":"免费高清在线视频 - 色爷爷","desc":"免费高清在线视频 - 色爷爷"},{"url":"https://www.sehuatang.net/forum.php","title":"色花堂 - Powered by Discuz!","desc":"色花堂 - Powered by Discuz!"},{"url":"https://netflav.com/uncensored?page=2","title":"Netflav - 無修正 / Uncensored","desc":"Netflav - 無修正 / Uncensored"},{"url":"https://www.sht1236.me/","title":"色花堂 - Powered by Discuz!","desc":"色花堂 - Powered by Discuz!"},{"url":"https://djjzyz.com/","title":"大姐姐资源站","desc":"大姐姐资源站"},{"url":"https://www.gigsgigscloud.com/premium-us-kvm-vps/","title":"美国LAX CN2 VPS,中国高级KVM VPS,纯SSD VPS","desc":"美国LAX CN2 VPS,中国高级KVM VPS,纯SSD VPS"},{"url":"https://www.moxing.casa/forum.php","title":"魔性论坛 - 免费、自由的交流论坛 -","desc":"魔性论坛 - 免费、自由的交流论坛 -"},{"url":"https://www.978lulu03.xyz/","title":"就去撸撸吧-男人天堂","desc":"就去撸撸吧-男人天堂"},{"url":"https://wx2.qq.com/","title":"微信网页版","desc":"微信网页版"},{"url":"https://www.cunhua.club/forum.php","title":"村花论坛","desc":"村花论坛"},{"url":"https://www.sehuatang.net/","title":"色花堂-98堂 - Powered by Discuz!","desc":"色花堂-98堂 - Powered by Discuz!"},{"url":"http://wherebt.com/blog/2017/blog0418.html","title":"WHERE BT官方博客","desc":"WHERE BT官方博客"},{"url":"https://www.98ddt.xyz/forum.php","title":"色花堂-98堂 - Powered by Discuz!","desc":"色花堂-98堂 - Powered by Discuz!"}]},{"name":"PT","children":[],"web":[{"url":"https://pterclub.com/index.php","title":"PT之友俱乐部 :: 首页 PTerClub","desc":"PT之友俱乐部 :: 首页 PTerClub"},{"url":"https://pt.m-team.cc/index.php","title":"M-Team","desc":"M-Team"},{"url":"https://www.nicept.net/index.php","title":"NicePT","desc":"NicePT"},{"url":"https://pan.baidu.com/disk/home?errmsg=Auth+Login+Sucess&errno=0&ssnerror=0/category?type=1&vmode=list","title":"百度网盘-全部文件","desc":"百度网盘-全部文件"}]}],"web":[{"url":"http://195.154.112.215:9091/transmission/web/","title":"Transmission WEB 控制器 1.6.0 beta","desc":"Transmission WEB 控制器 1.6.0 beta"},{"url":"http://gequdaquan.net/gqss/","title":"歌曲大全-音乐聚合搜索引擎-音乐免费下载mp3-音乐免费下载","desc":"歌曲大全-音乐聚合搜索引擎-音乐免费下载mp3-音乐免费下载"}]},{"name":"购物","children":[],"web":[{"url":"http://www.lz618.net/index.jsp","title":"欢迎进入-泸州客运中心站","desc":"欢迎进入-泸州客运中心站"},{"url":"https://ipcrs.pbccrc.org.cn/","title":"个人信用信息服务平台","desc":"个人信用信息服务平台"},{"url":"http://www.cdqcp.com/","title":"成都汽车票务网-汽车票余票查询‖汽车票价查询‖汽车票预订‖汽车票网上订票官网","desc":"成都汽车票务网-汽车票余票查询‖汽车票价查询‖汽车票预订‖汽车票网上订票官网"},{"url":"http://www.uu163.net/User/","title":"用户中心首页 - UU163旅行在线","desc":"用户中心首页 - UU163旅行在线"}]},{"name":"教程","children":[],"web":[{"url":"https://aitanlu.com/ubuntu-shadowsocks-ke-hu-duan-pei-zhi.html","title":"linux-ubuntu使用shadowsocks客户端配置 - 资源教程 - 爱探路","desc":"linux-ubuntu使用shadowsocks客户端配置 - 资源教程 - 爱探路"},{"url":"http://www.w3school.com.cn/","title":"w3school 在线教程","desc":"w3school 在线教程"},{"url":"http://www.runoob.com/","title":"菜鸟教程 - 学的不仅是技术,更是梦想!","desc":"菜鸟教程 - 学的不仅是技术,更是梦想!"}]},{"name":"软件","children":[],"web":[{"url":"http://www.zdfans.com/","title":"zd423","desc":"zd423"},{"url":"http://blog.xunleihd.com/","title":"XunleiHD","desc":"XunleiHD"},{"url":"http://hrtsea.com/","title":"心海e站","desc":"心海e站"},{"url":"http://www.itopdog.cn/","title":"软件盒子","desc":"软件盒子"},{"url":"http://www.guofs.com/","title":"独木成林 - 专注软件分享与优化","desc":"独木成林 - 专注软件分享与优化"},{"url":"http://findicons.com/","title":"图标搜索引擎 - 下载469674个免费图标, PNG图标, 网页图标","desc":"图标搜索引擎 - 下载469674个免费图标, PNG图标, 网页图标"},{"url":"https://www.netflix.com/watch/81167140?trackId=155573560","title":"销售","desc":"销售"},{"url":"https://gitee.com/baisucode/onenav-theme/tree/master/templates/baisu","title":"baisu: onenav主题 - Gitee.com","desc":"baisu: onenav主题 - Gitee.com"}]},{"name":"开发者","children":[],"web":[{"url":"http://www.bootcss.com/","title":"Bootstrap中文网","desc":"Bootstrap中文网"},{"url":"http://www.w3cschool.cc/","title":"w3cschool菜鸟教程","desc":"w3cschool菜鸟教程"},{"url":"http://haojian138.blog.163.com/","title":"流风清音 - 流风清音 - 网易博客","desc":"流风清音 - 流风清音 - 网易博客"},{"url":"http://www.easyicon.net/","title":"图标下载,ICON(PNG/ICO/ICNS)图标搜索下载 | EASYICON.NET","desc":"图标下载,ICON(PNG/ICO/ICNS)图标搜索下载 | EASYICON.NET"},{"url":"http://www.everedit.cn/","title":"首页 | EverEdit","desc":"首页 | EverEdit"},{"url":"http://bootswatch.com/","title":"Bootswatch: Free themes for Bootstrap","desc":"Bootswatch: Free themes for Bootstrap"},{"url":"http://whois.ati.tn/","title":"whois.ati.tn","desc":"whois.ati.tn"},{"url":"https://www.trustasia.com/tools-ssl-state/faq.xiaoz.me/443","title":"SSL状态在线检测工具 - 亚洲诚信","desc":"SSL状态在线检测工具 - 亚洲诚信"},{"url":"http://www.lsw1994.com/post-181.html","title":"获取笑话 - API","desc":"获取笑话 - API"},{"url":"http://www.mediafire.com/asuswrt-merlin/","title":"梅林固件","desc":"梅林固件"},{"url":"http://downloads.openwrt.org.cn/PandoraBox/Xiaomi-Mini-R1CM/stable/","title":"Index of /PandoraBox/Xiaomi-Mini-R1CM/stable/","desc":"Index of /PandoraBox/Xiaomi-Mini-R1CM/stable/"},{"url":"http://pubg.disquse.ru/","title":"PUBG Servers Ping","desc":"PUBG Servers Ping"},{"url":"https://apps.evozi.com/apk-downloader/","title":"APK Downloader [Latest] Download Directly | Chrome Extension v3 (Evozi Official)","desc":"APK Downloader [Latest] Download Directly | Chrome Extension v3 (Evozi Official)"},{"url":"http://name.tg/","title":"域名特工 beta","desc":"域名特工 beta"},{"url":"https://www.oxahost.tn/myoxa/viewticket.php?tid=499434&c=5EPvCdKa","title":"OXAHOST - 查看请求","desc":"OXAHOST - 查看请求"},{"url":"https://fontawesome.com/","title":"angular | Font Awesome","desc":"angular | Font Awesome"},{"url":"https://sightengine.com/dashboard/","title":"Realtime Moderation API - Sightengine","desc":"Realtime Moderation API - Sightengine"},{"url":"https://payjs.cn/","title":"PAYJS","desc":"PAYJS"},{"url":"https://jpgraph.net/","title":"JpGraph - Most powerful PHP-driven charts","desc":"JpGraph - Most powerful PHP-driven charts"},{"url":"http://phpqrcode.sourceforge.net/examples/index.php?example=005","title":"PHP的QR码 - 例子","desc":"PHP的QR码 - 例子"},{"url":"http://www.favicon-icon-generator.com/favicon","title":"ico图标制作,在线Favicon.ico制作转换工具,实时预览ico生成效果,ico图标下载","desc":"ico图标制作,在线Favicon.ico制作转换工具,实时预览ico生成效果,ico图标下载"},{"url":"https://codeigniter.org.cn/user_guide/","title":"CodeIgniter 用户指南","desc":"CodeIgniter 用户指南"},{"url":"http://getansible.com/","title":"Ansible入门 · Ansible入门","desc":"Ansible入门 · Ansible入门"},{"url":"https://aite.me/vmware.php","title":"VMware Workstation 15 Pro Keygen","desc":"VMware Workstation 15 Pro Keygen"},{"url":"https://wall.alphacoders.com/by_resolution.php?w=3840&h=2160&lang=Chinese&page=4","title":"12578 3840x2160 4k Ultra 高清壁纸 | 桌面背景 - Wallpaper Abyss - 页面 4","desc":"12578 3840x2160 4k Ultra 高清壁纸 | 桌面背景 - Wallpaper Abyss - 页面 4"},{"url":"https://www.pexels.com/","title":"Free stock photos · Pexels","desc":"Free stock photos · Pexels"},{"url":"https://www.icann.org/registrar-reports/accreditation-qualified-list.html","title":"ICANN | ICANN认可的注册商的说明和联系信息","desc":"ICANN | ICANN认可的注册商的说明和联系信息"},{"url":"https://www.icann.org/registrar-reports/accredited-list.html","title":"ICANN | ICANN认可的注册商","desc":"ICANN | ICANN认可的注册商"},{"url":"https://learnku.com/docs/laravel/5.5/","title":"《Laravel 5.5 中文文档》 | Laravel China 社区","desc":"《Laravel 5.5 中文文档》 | Laravel China 社区"},{"url":"https://www.kancloud.cn/king1992/we7devman","title":"微擎开发手册 · 看云","desc":"微擎开发手册 · 看云"},{"url":"http://wiki.blueidea.com/index.php?title=%E4%BA%BA%E4%BA%BA%E5%95%86%E5%9F%8E/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%AD%97%E5%85%B8","title":"人人商城/数据库字典 - Blueidea","desc":"人人商城/数据库字典 - Blueidea"},{"url":"https://blog.sprov.xyz/2019/08/03/v2-ui/#i-4","title":"v2-ui,一个全新的多协议多用户 v2ray 面板 | sprov","desc":"v2-ui,一个全新的多协议多用户 v2ray 面板 | sprov"}]},{"name":"其它网址","children":[],"web":[{"url":"http://cx.sceea.cn/","title":"四川省教育考试院信息查询系统-成绩查询,录取查询","desc":"四川省教育考试院信息查询系统-成绩查询,录取查询"}]},{"name":"zhanmei","children":[],"web":[{"url":"http://192.168.50.3:3001/","title":"AdGuard Home","desc":"AdGuard Home"},{"url":"http://192.168.50.3/ariang.html","title":"AriaNg","desc":"AriaNg"},{"url":"http://192.168.50.3:6081/files/","title":"ccaaDown","desc":"ccaaDown"},{"url":"http://192.168.50.3:19999/#;theme=slate;help=true","title":"netdata","desc":"netdata"},{"url":"http://wherebt.com/","title":"BT导航网","desc":"BT导航网"},{"url":"http://192.168.50.9:5000/","title":"maopan - Synology DiskStation","desc":"maopan - Synology DiskStation"},{"url":"http://192.168.50.3:8096/web/index.html#!/home.html","title":"Jellyfin","desc":"Jellyfin"},{"url":"http://192.168.50.6:3000/","title":"AdGuard Home","desc":"AdGuard Home"}]},{"name":"云服务","children":[],"web":[{"url":"https://cloud.baidu.com/","title":"百度智能云","desc":"百度智能云"},{"url":"https://www.xiaoz.me/api/dcache.html","title":"CDN缓存刷新系统","desc":"CDN缓存刷新系统"},{"url":"http://163.172.35.132:9091/transmission/web/","title":"Online Transmission WEB 控制器","desc":"Online Transmission WEB 控制器"}]}]
\ No newline at end of file
diff --git a/data/bookmarks_2022_5_6.html b/data/bookmarks_2022_5_6.html
new file mode 100644
index 0000000..975ba9d
--- /dev/null
+++ b/data/bookmarks_2022_5_6.html
@@ -0,0 +1,168 @@
+
+
+
+Bookmarks
+Bookmarks
+
+
书签栏
+
+
常用网址
+
+
- V2EX
+
- 金狐电脑工作室-Jinhu Computer Studio
+
- 滴答清单: 一个帮你高效完成任务和规划时间的应用
+
- Today / Me
+
- 【成都-武侯区司机或配送员_司机或配送员招聘_四川易格天承文化传播有限公司】-前程无忧官方招聘网站
+
+
影视
+
+
adult
+
+
- 草榴社區 - powered by phpwind.net
+
- 捷克論壇 JKF
+
- bt下载 爱城 bt下载
+
- Resilio Sync Keys List - BTSync资源
+
- 微力同步 Resilio Sync Key 下载-资源大全 Resilio Sync Keys List - BTSync资源分享 资源搜索
+
- JavBus
+
- Phim sex hd | Phim địt nhau không che | Jav hay nhất 2017
+
- Free Porn Videos & Sex Movies - Porno, XXX, Porn Tube | Pornhub
+
- 小嶋ひより | 一本道
+
- 保存视频,下载视频,YouTube视频下载,YouTube,视频在线,离线视频 - savevd.com
+
- TuKif : PORNO GRATUIT, Tube de Video Porno HD, Streaming Sex
+
- mgstage - 200GANA 230ORE 259LUXU 261ARA 276KITAIKE 277DCV 300MIUM SIRO
+
- 91dizhi_1 on eBay
+
- Browse :: Sukebei
+
- 亚洲无码原创 - 色花堂 - Powered by Discuz!
+
- RARBG Rarbg Index page
+
- Browse :: Sukebei
+
- 免费高清在线视频 - 色爷爷
+
- 色花堂 - Powered by Discuz!
+
- Netflav - 無修正 / Uncensored
+
- 色花堂 - Powered by Discuz!
+
- 大姐姐资源站
+
- 美国LAX CN2 VPS,中国高级KVM VPS,纯SSD VPS
+
- 魔性论坛 - 免费、自由的交流论坛 -
+
- 就去撸撸吧-男人天堂
+
- 微信网页版
+
- 村花论坛
+
- 色花堂-98堂 - Powered by Discuz!
+
- WHERE BT官方博客
+
- 色花堂-98堂 - Powered by Discuz!
+
三级分类
+
+
- 三级书签测试
+
四级分类
+
+
- 四级书签测试
+
+
+
+
- Transmission WEB 控制器 1.6.0 beta
+
- 歌曲大全-音乐聚合搜索引擎-音乐免费下载mp3-音乐免费下载
+
PT
+
+
- PT之友俱乐部 :: 首页 PTerClub
+
- M-Team
+
- NicePT
+
- 百度网盘-全部文件
+
+
+
购物
+
+
- 欢迎进入-泸州客运中心站
+
- 个人信用信息服务平台
+
- 成都汽车票务网-汽车票余票查询‖汽车票价查询‖汽车票预订‖汽车票网上订票官网
+
- 用户中心首页 - UU163旅行在线
+
+
教程
+
+
- linux-ubuntu使用shadowsocks客户端配置 - 资源教程 - 爱探路
+
- w3school 在线教程
+
- 菜鸟教程 - 学的不仅是技术,更是梦想!
+
+
软件
+
+
- zd423
+
- XunleiHD
+
- 心海e站
+
- 软件盒子
+
- 独木成林 - 专注软件分享与优化
+
- 图标搜索引擎 - 下载469674个免费图标, PNG图标, 网页图标
+
- 销售
+
- baisu: onenav主题 - Gitee.com
+
+
开发者
+
+
- Bootstrap中文网
+
- w3cschool菜鸟教程
+
- 流风清音 - 流风清音 - 网易博客
+
- 图标下载,ICON(PNG/ICO/ICNS)图标搜索下载 | EASYICON.NET
+
- 首页 | EverEdit
+
- Bootswatch: Free themes for Bootstrap
+
- whois.ati.tn
+
- SSL状态在线检测工具 - 亚洲诚信
+
- 获取笑话 - API
+
- 梅林固件
+
- Index of /PandoraBox/Xiaomi-Mini-R1CM/stable/
+
- PUBG Servers Ping
+
- APK Downloader [Latest] Download Directly | Chrome Extension v3 (Evozi Official)
+
- 域名特工 beta
+
- OXAHOST - 查看请求
+
- angular | Font Awesome
+
- Realtime Moderation API - Sightengine
+
- PAYJS
+
- JpGraph - Most powerful PHP-driven charts
+
- PHP的QR码 - 例子
+
- ico图标制作,在线Favicon.ico制作转换工具,实时预览ico生成效果,ico图标下载
+
- CodeIgniter 用户指南
+
- Ansible入门 · Ansible入门
+
- VMware Workstation 15 Pro Keygen
+
- 12578 3840x2160 4k Ultra 高清壁纸 | 桌面背景 - Wallpaper Abyss - 页面 4
+
- Free stock photos · Pexels
+
- ICANN | ICANN认可的注册商的说明和联系信息
+
- ICANN | ICANN认可的注册商
+
- 《Laravel 5.5 中文文档》 | Laravel China 社区
+
- 微擎开发手册 · 看云
+
- 人人商城/数据库字典 - Blueidea
+
- v2-ui,一个全新的多协议多用户 v2ray 面板 | sprov
+
+
其它网址
+
+
- 四川省教育考试院信息查询系统-成绩查询,录取查询
+
+
zhanmei
+
+
- AdGuard Home
+
- AriaNg
+
- ccaaDown
+
- netdata
+
- BT导航网
+
- maopan - Synology DiskStation
+
- Jellyfin
+
- AdGuard Home
+
+
- HK
+
-
+
- YouTube
+
-
+
- whois查询_域名whois查询_域名查询-西部数码域名whois资料查询平台
+
- 西部数码知识系统 (http://www.west.cn)|安装SSL证书,启用HTTPS
+
- 百度统计——最大的中文网站分析平台
+
- 微信网页版
+
- 滴答清单
+
- 离线下载
+
云服务
+
+
- 百度智能云
+
- CDN缓存刷新系统
+
- Online Transmission WEB 控制器
+
+
- 一键添加
+
+
- 领贤
+
- 少女卷轴5:污神整合-傻瓜一键智能安装整合中文版【新整合】 – 叽哩叽哩游戏网ACG(G站)
+
- 添加书签
+
- OneNav
+
diff --git a/data/config.php.bak b/data/config.php.bak
new file mode 100644
index 0000000..0ee22aa
--- /dev/null
+++ b/data/config.php.bak
@@ -0,0 +1,34 @@
+ 'sqlite',
+ 'database_file' => 'data/onenav.db3'
+]);
+
+//用户名
+define('USER','xiaoz');
+//密码
+define('PASSWORD','xiaoz.me');
+//邮箱,用于后台Gravatar头像显示
+define('EMAIL','337003006@qq.com');
+//token参数,API需要使用
+define('TOKEN','xiaoz.me');
+//主题风格
+define('TEMPLATE','baisuTwo');
+
+//站点信息
+$site_setting = [];
+//站点标题
+$site_setting['title'] = 'OneNav';
+//文字Logo
+$site_setting['logo'] = 'OneNav';
+//站点关键词
+$site_setting['keywords'] = 'OneNav,OneNav导航,OneNav书签,开源导航,开源书签,简洁导航,云链接,个人导航,个人书签';
+//站点描述
+$site_setting['description'] = 'OneNav是一款使用PHP + SQLite3开发的简约导航/书签管理器,免费开源。';
+
+//这两项不要修改
+$site_setting['user'] = USER;
+$site_setting['password'] = PASSWORD;
diff --git a/data/update.log b/data/update.log
index 5556731..756e2ac 100755
--- a/data/update.log
+++ b/data/update.log
@@ -103,4 +103,17 @@ CREATE INDEX on_options_key_IDX ON on_options ("key");
2. 后台新增根据分类查询链接
3. 离线站点图标(使用标题第一个字符)
4. 修复baisu主题修改二级分类导致分类变一级的问题
-5. 新增主题自定义参数设置
\ No newline at end of file
+5. 新增主题自定义参数设置
+
+20220507
+1. 导入链接支持自动创建分类
+2. 支持批量修改链接属性为公有或私有
+3. 修改默认主题角标大小
+
+20220509
+1. 支持 .html 链接导出
+2. 默认主题搜索支持匹配URL
+
+20220513
+1. 主题分类排序优化
+2. 修改分类优化
\ No newline at end of file
diff --git a/functions/helper.php b/functions/helper.php
index 106a6db..c89941b 100755
--- a/functions/helper.php
+++ b/functions/helper.php
@@ -24,7 +24,7 @@ function getIP() {
function is_login(){
- $key = md5(USER.PASSWORD.'onenav');
+ $key = md5(USER.PASSWORD.'onenav'.$_SERVER['HTTP_USER_AGENT']);
//获取session
$session = $_COOKIE['key'];
//如果已经成功登录
diff --git a/templates/admin/edit_category.php b/templates/admin/edit_category.php
index 63376f5..b6e3e6c 100755
--- a/templates/admin/edit_category.php
+++ b/templates/admin/edit_category.php
@@ -47,6 +47,10 @@
if ( $category['id'] == $category_one['fid'] ) {
continue;
}
+ //如果分类ID的父级ID不能是自己
+ if( $category['id'] == $id ) {
+ continue;
+ }
?>
diff --git a/test.php b/test.php
new file mode 100644
index 0000000..d36bb4b
--- /dev/null
+++ b/test.php
@@ -0,0 +1,36 @@
+ $value) {
+ //获取子节点长度
+ $children_length = count($value->children);
+ if( $children_length === 0 ) {
+ $arr[$value->name] = $value->web;
+ array_push($link_data,$arr);
+ unset($arr);
+ }
+ else{
+ if( count($value->web) !== 0 ) {
+ $new_arr[$value->name] = $value->web;
+ array_push($link_data,$new_arr);
+ unset($new_arr);
+ }
+
+ get_link($value->children);
+ }
+
+ }
+
+}
+get_link($data);
+var_dump($link_data);
\ No newline at end of file
diff --git a/test2.php b/test2.php
new file mode 100644
index 0000000..870b014
--- /dev/null
+++ b/test2.php
@@ -0,0 +1,26 @@
+
(.*)<\/H3>/i",$HTMLh,$category) ){
+ //匹配到文件夹名时加入数组
+ array_push($categoryt,$category[1]);
+ array_push($categorys,$category[1]);
+ }elseif( preg_match('/<\/DL>/i',$HTMLh) ){
+ //匹配到文件夹结束标记时删除一个
+ array_pop($categorys);
+ }elseif( preg_match('/
(.+)<\/A>/i',$HTMLh,$urls) ){
+ $datat['category'] = $categorys[count($categorys) -1];
+ $datat['title'] = $urls[2];
+ $datat['url'] = $urls[1];
+ array_push($data,$datat);
+ }
+}
+$categoryt = array_unique($categoryt);
+var_dump($categoryt);exit;
\ No newline at end of file
diff --git a/version.txt b/version.txt
index d4d215f..d38f6bd 100755
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-v0.9.20-20220429
\ No newline at end of file
+v0.9.21-20220516
\ No newline at end of file