前言
typecho的附件其实和文章性质一样,附件也有单独的页面,也可以进行评论,附件页面的地址格式如https://zezeshe.com/attachment/1293/
,1293就是附件的id,其实文章id和附件id是同一个东西,所以有的时候发布文章时id,文章id并不连贯。
typecho的附件页面除了管理员外,其他人不能直接找到附件页面,那么怎么做可以找到别人的附件页面,然后进行评论,皮一下呢?
答案是用php
让php访问从id为1的页面访问,如https://zezeshe.com/attachment/1/
,如果返回状态404,那么id+1继续访问,直到访问到非404的地址,然后输出该地址,跳出for循环。
<?php
header('content-type:text/html;charset=utf-8');
for($i=1;$i<300;$i++){
$url = 'https://域名/attachment/'.$i;
$headers = get_headers($url);
if (strpos($headers[0], '404'))
{echo $i;}else{
echo '<br>他的附件页面地址为<br>'.$url;break;
}
}
?>
上述代码中$i就是代表id的,可以看出来我写的是循环到300,就是怕超时,如果300还没出来,就改下i的默认值和,循环变量在跑一遍...[谁让我是渣渣呢!] 【部分人开了debug模式,即使不存在的页面也不是404状态,这样的网站就没办法了!】
模板作者如何关闭附件页面的评论功能呢 答案是用if判断下,如果是附件页面就不输出评论框,并显示提示文字“附件页面禁止评论”
<?php if ($this->is('attachment')) : ?><h4 class="comment-close">附件页面禁止评论</h4>
<?php else: ?>你的评论框代码部分<?php endif; ?>
后续 该文章发布后当晚我就想能不能纯前端的实现这个呢,于是弄了一晚上,然后刚刚做了个视频演示,欢迎大家前去投币: https://www.bilibili.com/video/av25724719/