首页
壁纸
友情链接
留言板
读者墙
关于博客
网站统计
更多
免责声明
推荐
工具箱
在线音乐
小霸王
小黑屋
栅格之地
WIKI
Search
1
php报错open_basedir restriction in effect问题和TP5的think-log-viewer
1,167 阅读
2
博客美化和优化过程记录及实用技巧【停止更新】
1,146 阅读
3
Typecho博客主题Joe7.7.1美化优化记录【持续更新】
1,101 阅读
4
给你网站博客的评论添加一键打卡功能
988 阅读
5
聊聊rel=external nofollow和rel=noopener noreferrer
931 阅读
编程相关
WEB前端
网站建设
生活随笔
经验分享
登录
Search
标签搜索
博客美化
经验分享
网站优化
Joe主题
php
css
typecho
javascript
html
external
nofollow
noopener
ajax
session
跨域
thinkphp
animation
cdn
七牛云
宝塔
小天
累计撰写
21
篇文章
累计收到
186
条评论
首页
栏目
编程相关
WEB前端
网站建设
生活随笔
经验分享
页面
壁纸
友情链接
留言板
读者墙
关于博客
网站统计
免责声明
推荐
工具箱
在线音乐
小霸王
小黑屋
栅格之地
WIKI
搜索到
20
篇与
小天
的结果
2021-12-18
一行CSS代码给网站文本文字添加颜色动态变化
{message type="success" content="一行CSS代码给网站文本文字添加颜色动态变化"/}一行CSS代码给网站文本文字添加颜色动态变化 .word-color-change{animation:change 10s infinite; }@keyframes change{0%{color:#5cb85c;}25%{color:#556bd8;}50%{color:#e40707;}75%{color:#66e616;}100% {color:#67bd31;}}.word{animation:change 10s infinite; }@keyframes change{0%{color:#5cb85c;}25%{color:#556bd8;}50%{color:#e40707;}75%{color:#66e616;}100% {color:#67bd31;}}代码中.word为html标签class值,或ID值,color后面是十六进制颜色码,不知道什么颜色适合你,可以从下面网站参考: https://www.bootcss.com/p/websafecolors/
2021年12月18日
233 阅读
1 评论
5 点赞
2021-12-17
博客美化和优化过程记录及实用技巧【停止更新】
{alert type="warning"}请前往新文章 !!!Typecho博客主题Joe7.7.1美化和优化过程记录及实用技巧【持续更新】 {/alert}{message type="error" content="此页面主要记录博客美化和优化过程及一些实用技巧【停止更新】优化&美化内容有些可能会仅适用于本Joe主题[7.3.6],也会包含通用内容,请注意分辨。最后更新:2021-12-22 19:04:19 星期三"/} {message type="info" content="关于速度的优化"/}安装好系统后,小天能想到的第一个优化的就是速度,“君欲善其事,必先利其器”嘛。速度在CDN方面的优化,小天就不多赘述了,可以参考我的另一篇文章 《真正的Typecho非插件实现全站css,js,图片静态资源CDN加速 !阿里、腾讯、七牛、又拍云等通用!》除了做好CDN,其次就是缓存了,这里小天是直接安装的Tpcache缓存插件,采用Redis缓存驱动 。 PS:小天已经关闭了该插件,启用插件后,会出现评论提交报错等系列问题。关于头像的优化,Joe主题采用的头像源是gravatar,小天更换为了 dn-qiniu-avatar.qbox.me 七牛云的加速头像源。小方面就是主题设置,关闭一些不必要的功能:鼠标特效、2D人物模型、炫酷的动画等等吧{message type="info" content="关于SEO的优化"/}seo方面小天也是小白,知之甚少。开启SiteMap功能做好Robots.txt维护好站长平台给网站博客侧边栏加一个请协助SEO优化添加文章搜一下功能:Joe主题找到usr/themes/Joe/public下的batten.php 30行左右,插入如下代码,其他主题同理。<span class="text"> <a href="https://www.baidu.com/s?wd=<?php $this->title() ?>+site:www.xtboke.com" target="_blank">搜一下</a></span> <span class="line">/</span>{message type="warning" content="博客列表缩略图美化"/}Joe主题自带的列表缩略图是随机40张图片,感觉不是小天要的风格;所以小天自己找了一些美图,放到了static静态文件夹里,同时也镜像到了七牛云,剩下的就是修改了。找到 theme/Joe/core/function.php 的232行$result[] = 'https://cdn.jsdelivr.net/npm/typecho-joe-next@6.0.0/assets/thumb/' . rand(1, 42) . '.jpg';替换为:$result[] = __TYPECHO_CDN_DIR__ . 'static/images/thumb/' . rand(1, 201) . '.jpg';TYPECHO_CDN_DIR 是在Typecho主目录下的config.inc.php里定义的CDN目录,这里可以看我上面提到的那篇文章;这里为什么我没有直接写CDN域名呢?是因为方便切换回本地域名,切换时,只需要记得更改__TYPECHO_CDN_DIR__的值就可以了。{message type="warning" content="页面加载耗时的功能和样式的实现"/}可以看到小天博客底部页面的一些样式和功能样式的实现:可以去【 shields.io 】网站去自定义,种类很多,像ICP、版权信息等等。功能的实现:找到usr/themes/Joe/public目录下的footer.php第47行,加入以下代码document.getElementById('pagetimes').innerHTML = '<img src="https://img.shields.io/badge/页面加载耗时:-<?php _endCountTime(); ?>-green">';_endCountTime()是获取页面耗时的函数;pagetimes是前台标签的ID值,放到前台你想显示的位置即可。<a href="javascript:(0)" id="pagetimes"></a>{message type="error" content="其他优化"/} 关于Joe主题7.3.6直播列表未找到数据的优化 关于Joe主题7.3.6侧边栏最新回复显示数量失效的优化 非插件typecho给博客加个评论等级-仿虎牙直播贵族 给你网站博客的评论添加一键打卡功能 一行CSS代码给网站博客添加灰色默哀色 一行CSS代码给网站文本文字添加颜色动态变化未完 待续
2021年12月17日
1,146 阅读
1 评论
19 点赞
2021-12-17
什么是跨域?session如何共享?PHP和Ajax跨域问题的解决方法
{message type="warning" content="什么是跨域?"/}跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。所谓同源是指,域名,协议,端口均相同,只要有一个不同,就是跨域。http://www.xtboke.com/index.html 调用 http://www.xtboke.com/api.php (非跨域)http://www.xtboke.com/index.html 调用 http://www.xtboke2.com/api.php (主域名不同:xtboke/xtboke2,跨域)http://tool.xtboke.com/index.html 调用 http://music.xtboke.com/api.php (子域名不同:tool/music,跨域)http://www.xtboke.com:8080/index.html 调用 http://www.xtboke.com:8081/api.php (端口不同:8080/8081,跨域)http://www.xtboke.com/index.html 调用 https://www.xtboke.com/api.php (协议不同:http/https,跨域){message type="info" content="localhost和127.0.0.1虽然都指向本机,但也属于跨域。"/}{message type="warning" content="解决办法"/}跨域的解决办法有很多,本文主要分享一下通过设置Access-Control-Allow-Origin来实现跨域。例如:客户端的域名是client.xtboke.com,而请求的域名是server.xtboke.com。如果直接使用ajax访问,会有以下错误:XMLHttpRequest cannot load http://server.xtboke.com/server.php. No 'Access-Control-Allow-Origin' header is present on the requested resource.Origin 'http://client.xtboke.com' is therefore not allowed access.{message type="info" content="1.允许单个域名访问"/}指定某域名(http://client.xtboke.com)跨域访问,则只需http://server.xtboke.com/api.php文件头部添加如下代码: header('Access-Control-Allow-Origin:http://client.xtboke.com');{message type="info" content="2.允许多个域名访问"/}指定多个域名(http://client1.xtboke.com、http://client2.xtboke.com等)跨域访问,则只需在http://server.xtboke.com/api.php文件头部添加如下代码:$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : ''; $allow_origin = array('http://client1.xtboke.com', 'http://client2.xtboke.com' ); if(in_array($origin, $allow_origin)){header('Access-Control-Allow-Origin:'.$origin);}{message type="info" content="3.允许所有域名访问"/}允许所有域名访问则只需在http://server.xtboke.com/api.php文件头部添加如下代码:header('Access-Control-Allow-Origin:*');{message type="warning" content="SESSION共享问题:"/}下面是我整理的一份PHP session跨域共享的代码示例,记录一下。client.php tool.xtboke.com<?php header("Content-Type:text/html;charset=utf-8"); *session_start(); $token = md5(uniqid(rand(), TRUE)); $_*SESSION["token"]=$token; ?> <script src="//www.xtboke.com/jquery/jquery-1.9.1.js"></script> <script type="text/javascript"> $.ajax({ type:'get', url: "https://www.xtboke.com/server.php", dataType: "jsonp", jsonp:'callback', data:{ 'cToken':"<?php echo $_*SESSION['token'];?>" }, xhrFields: {withCredentials: true}, crossDomain: true, success: function(data) { $(".info").html("客户端token:" + data.cToken + "<br/>服务端token:" + data.sToken+"<br/>是否相等:" + data.ifEq); } }); </script> <div class="info"></div>server.php music.xtboke.com<?php session_*start(); $origin = isset($_SER*VER['HTTP_*ORIGIN'])? $_SER*VER['HTTP_*ORIGIN'] : ''; $allow_origin = array( 'https://tool.xtboke.com', 'https://tool2.xtboke.com' ); if(in_array($origin, $allow_origin)){ header('Access-Control-Allow-Origin:'.$origin); //跨域且使用session时不能使用 * header("Access-Control-Allow-Credentials: true" );//是否携带cookie } $arr = array( 'cToken'=>$_*GET['cToken'], 'sToken'=>$_*SESSION['token'], 'ifEq'=>$_*SESSION['token']==$_*GET['cToken']?'yes':'no' ); $callback = !empty($_*GET['callback']) ? trim($_*GET['callback']) : ''; if(!empty($callback)) { echo $callback."(".*json_encode($arr).")"; }else{ echo *json_encode($arr); }
2021年12月17日
710 阅读
2 评论
14 点赞
2021-12-17
不刷新页面,修改浏览器url地址
最近的项目遇到的问题,记录一下,不刷新页面,修改浏览器url地址。直接上代码: var url= window.location.href; if(url.indexOf("info/")>0){ url= url.substr(0,url.length-1); history.pushState("", "", url+'912'); }主要用的是history的pushState方法,上面这段代码实现的是,如果存在info/,就替换info/后面的参数,而不发生页面的刷新。后面再详细和大家整理一下 history的pushState和replaceState。
2021年12月17日
676 阅读
1 评论
9 点赞
2021-11-19
关于Joe主题7.3.6侧边栏最新回复显示数量失效的优化
{message type="info" content="关于Joe主题7.3.6侧边栏最新回复显示数量失效的优化"/}Joe主题[7.3.6]侧边栏最新回复评论的显示数量,我在后台 评论列表数目 里设置之后,前台页面没有反应,于是小天翻找源码,找到了问题所在。找到usr/themes/Joe/public目录下的aside.php,第132行.<?php $this->widget('Widget_Comments_Recent', 'ignoreAuthor=true&pageSize=5')->to($item); ?>修改为:<?php $this->widget('Widget_Comments_Recent', 'ignoreAuthor=true')->to($item); ?>{callout color="#f31212"}删除pageSize=5即可,在这里作者把显示的数量给固定了,因此后台设置评论列表数目后无反应。这里删除pageSize=5,代码会自动读取后台的配置。var/Widget/Comments/Recent.php{/callout}$this->parameter->setDefault(array('pageSize' => $this->options->commentsListSize, 'parentId' => 0, 'ignoreAuthor' => false));
2021年11月19日
423 阅读
1 评论
4 点赞
2021-11-11
关于Joe主题7.3.6直播列表未找到数据的优化
{message type="info" content="关于直播列表未找到数据的优化"/}Joe主题[7.3.6]直播列表页,当点击某个分类没有数据时候,加载动画会一直显示,给用户体验不好;这里小天做了修改,当没有数据的时候提示一下暂无数据。找到usr/themes/Joe/assets/js目录下的joe.live.js,第54行.if (res.code !== 1) return;修改为:if(res.code !== 1){ $('.joe_live__list').html('<p>暂无数据!</p>'); return; }{callout color="#f31212"}修改完后,把joe.live.js压缩,然后复制到joe.live.min.js即可。{/callout}
2021年11月11日
336 阅读
0 评论
4 点赞
2021-10-15
给你的网站博客侧边栏添加一个联系我/关注我/个人信息
{callout color="#1865e2"}因为本主题侧边栏没有联系我的功能,所以小天寻思自己弄一个。下面的代码放到主题侧边栏位置即可。{/callout}隐藏内容,请前往内页查看详情
2021年10月15日
679 阅读
24 评论
8 点赞
2021-09-17
聊聊rel=external nofollow和rel=noopener noreferrer
{message type="info" content="大家应该都知道rel=’nofllow’的作用,它是告诉搜索引擎,不要将该链接计入权重。因此多数情况下,我们可以将一些不想传递权重的链接进行nofllow处理;例如一些非本站的链接,不想传递权重,但是又需要加在页面中的像 统计代码、备案号链接、供用户查询的链接等等。"/}除了rel=’nofollow’还有两种链接属性形式,一种是rel=’external’,另一种是rel=’external nofollow’。这两种分别代表什么意思呢?又有何区别呢?{callout color="#0f73f5"}rel="external"{/callout}此属性的意思是告诉搜索引擎,这个链接不是本站链接,其实作用相当于target=‘_blank’。为什么要这样写呢?因为有些网站因为是采用严格的DOCTYPE声名的,如果你在网页源码中的第一行看到:在这种情况下target=”_blank”会失效,因此采用rel=’external’这个参数来替代。{callout color="#0f73f5"}rel="external nofollow"{/callout}其实上面已经说过rel=’nofollow’ 和 rel=’external’ 两种属性的所代表的意思了。这个属性基本上是相当于将两种属性结合起来,大致可以解释为 “这个链接非本站链接,不要爬取也不要传递权重”。因此在SEO的角度来说,是一种绝对隔绝处理的方法,可以有效减少蜘蛛爬行的流失。{callout color="#0f73f5"}rel="nofollow noopener noreferrer"{/callout}超链接 target="_blank" 要增加 rel="nofollow noopener noreferrer" 来堵住钓鱼安全漏洞。如果你在链接上使用 target="_blank"属性,并且不加上rel="noopener"属性,那么你就让用户暴露在一个非常简单的钓鱼攻击之下。为了告知来自于不受保护的站点的用户,我们运行一个利用了这个缺陷的脚本。if (window.opener) { window.opener.location="https://tool.xtboke.com?referrer="+document.referrer; } 我相信绝大多数站点都没有恰当地处理这个问题,为了限制 window.opener的访问行为,原始页面需要在每个使用了target="_blank"的链接中加上一个rel="noopener"属性。然而,火狐不支持这个属性值,所以实际上你要用 rel="noopener noreferrer"来完整覆盖。
2021年09月17日
931 阅读
1 评论
9 点赞
2021-08-25
php报错open_basedir restriction in effect问题和TP5的think-log-viewer
首先说一下think-log-viewer:基于 Thinkphp5 开发的日志浏览组件,该组件提供了一键浏览当前项目日志的功能;然后在使用的时候发现一个问题,本地windows部署系统没有问题,线上linux系统部署报错如下:[2] ErrorException in Log.php line 40 fopen(): open_basedir restriction in effect. File(/opt/rasp_php72/logs/alarm/alarm.log.2020-08-14) is not within the allowed path(s): (/www/wwwroot/www.xtboke.com/:/tmp/:/proc/)经过研究,发现是.user.ini文件的问题,一般在根目录,我在用宝塔建站时候,勾选了防跨站攻击(open_basedir)。解决办法:在.user.ini文件后面追加 :/opt/rasp_php72/logs/,然后重启PHP即可。扩展:1.FTP里可能看不到这个文件,需要在SSH远程登陆里修改。2.ssh方式修改.user.ini权限问题,可用chattr -i .user.ini解除权限。3.检查logs目录权限,如果没有权限的话,执行 chmod 777 /opt/rasp_php72/logs 增加权限。
2021年08月25日
1,167 阅读
0 评论
9 点赞
1
2