今天发现药吧访问不了,一问,那边说被人黑了,所有数据包括备份数据全被删除了,没办法恢复
不过幸好前段日子药吧被黑,所以我想更换成帝国CMS,已经把数据弄回本地并转换好了
就是新模板没制作好
于是我向空间商提出换成香港空间,他答应了,很快就开好了
我上传数据后发现个大问题,帝国CMS生成的某些文件是空的
让我非常郁闷,因为是第一次用,困难重重啊
我是按照文章ID生成文件的
然后我本地生成了一次,发现一样存在这个问题
然后我开始一步一步查找原因
生成链接
http://127.0.0.23/e/admin/ReHtml/DoRehtml.php?from=ReHtml%2FChangeData.php&tbname%5B%5D=news&tbname%5B%5D=download&tbname%5B%5D=photo&tbname%5B%5D=flash&tbname%5B%5D=movie&tbname%5B%5D=shop&tbname%5B%5D=article&tbname%5B%5D=info&classid=0&startday=&endday=&selectday=2012-02-10&retype=1&startid=14999&endid=15031&havehtml=1&Submit6=%BF%AA%CA%BC%CB%A2%D0%C2&enews=ReNewsHtml
查看代码找到
../ecmschtml.php?enews=ReNewsHtml&classid=0&from=ReHtml/ChangeData.php&retype=1&startday=&endday=&startid=14999&endid=15031&havehtml=1&reallinfotime=1328811992&tbname=news
查找ecmschtml.php里面是调用e/class/chtmlfun.php的ReNewsHtml函数
通过查找这个函数发现了真正的生成文件函数
GetHtml($r,”,1);//生成信息文件
这个函数在e/class/functions.php
通过测试我发现问题处在没办法获取模板
问题出在约2233行的这句
$add[newstempid]=$add[newstempid]?$add[newstempid]:$class_r[$add[classid]][newstempid];
$add[newstempid]为1就能生成,为0就不行,因为默认模板的ID肯定大于0的
$class_r这个数组里的参数决定了$add[newstempid]
查找$class_r,他在\e\data\dbcache\class1.php和e\data\dbcache\class.php里
一看就知道是缓存,肯定是修改栏目才会更新
然后我仔细对比了一下不能生成的文档的栏目,发现原来默认模板没设置好
让我百思不得其解的是,貌似不选会提示的啊,当时究竟是如何提交成功的
还有一点,生成空白文件,ECMS竟然没提示,幸好我发现得早,要不会给访客带来极为不好的印象
为了避免这种情况的再次发生,我自己在2233行后添加了提醒
if($add[newstempid]
阅读全文
找了很久才发现这个相册
垃圾百度和163都不给外链
真是够小气的
还是一些小网站好
当然有一定资本的网站最好
唉,国外的又几乎被和谐了,要不用国外的也蛮好的
阅读全文
当时还是用dede5.1弄的~现在升级都是个麻烦,升级了两次才成功
阅读全文
function multi(pagenum,tagid)
{
var taget_obj = document.getElementById(tagid);
var taget_obj_page = document.getElementById("page_"+tagid);
myajax = new DedeAjax(taget_obj,false,false,'','','');
myajax.SendGet2("/plus/arcmulti.php?mtype=0&pnum="+pagenum+'&tagid='+tagid);
myajax = new DedeAjax(taget_obj_page,false,false,'','','');
myajax.SendGet2("/plus/arcmulti.php?mtype=1&pnum="+pagenum+'&tagid='+tagid);
DedeXHTTP = null;
}
分页
<a href='javascript:void(0)' class='current'>1</a> <a href='javascript:multi(2,"index")' title='2'>2</a>
arcmulti.php自己弄一个就行了
阅读全文
个人感觉这种企业站没必要用ECSHOP~
但是客户要求用也没办法
改细节改了两个月~真服了他们,过个把星期就说哪里哪里又要改一下~
两个小时弄完后就开始等下一个星期了
阅读全文
然后我拆开来看了一下,发现也不是很难~但是很容易把排线什么的弄坏
所以简单弄了一下,把里面的灰尘清了一下
结果还是不能充电,我怀疑是充电器的线有问题了~
因为以前被我不小心烤到过,不过一直都可以用,也就没注意
但是现在可能真的接触不良了
于是我下定决定把线给剪了,弄得短短的自己接上
这样就可以最大可能排除线长导致的中间断了,接触不良
弄好以后发现真的是线的问题
不过让我奇怪的是电池一点电都没有的时候
用电脑充电也不行,回想拆机的时候发现里面有颗小电池
极有可能是机子内部的电池已经老化了,在完全没电的时候也不能起作用了
类似于电脑主板那种,那小电池可以作为时间等的用电
现在这个小电池不起作用了,所以每次手机完全没电的时候
时间都会乱
阅读全文
猜想可能是在JS里,搜索了半天有人没见到
最后用出那招“另存为”
终于发现了CSS,是在引入的一个JS后莫名其妙出现的
我查看了那个JS文件,里面有个莫名其妙的函数
eval(function(p,a,c,k,e,d){while(c--){if(k){p=p.replace(new RegExp('\\b'+c.toString(a)+'\\b','g'),k)}}return p}('4.3("<2 1=\\"5\\" b=\\"6\\/0\\" a=\\"\\/9\\/8\\/7.0\\" \\/>")',12,12,'css|rel|link|writeln|document|stylesheet|text|login_css|login|images|href|type'.split('|')))
这种命名方法很奇怪啊,一搜索才知道是加密的代码
用那个网页提供的程序解码后,内容为
document.writeln("<link rel=\"stylesheet\" type=\"text\/css\" href=\"\/images\/login\/login_css.css\" \/>")
解码程序地址:http://www.jb51.net/article/9705.htm
我复制一份以防万一
eval(function(p,a,c,k,e,d)系列解密javascript程序
<script>
a=62;
function encode() {
var code = document.getElementById('code').value;
code = code.replace(/[\r\n]+/g, '');
code = code.replace(/'/g, "\\'");
var tmp = code.match(/\b(\w+)\b/g);
tmp.sort();
var dict = [];
var i, t = '';
for(var i=0; i<tmp.length; i++) {
if(tmp[i] != t) dict.push(t = tmp[i]);
}
var len = dict.length;
var ch;
for(i=0; i<len; i++) {
ch = num(i);
code = code.replace(new RegExp('\\b'+dict[i]+'\\b','g'), ch);
if(ch == dict[i]) dict[i] = '';
}
document.getElementById('code').value = "eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k||e(c);k=[function(e){return d[e]}];e=function(){return'\\\\w+'};c=1};while(c--)if(k)p=p.replace(new RegExp('\\\\b'+e(c)+'\\\\b','g'),k);return p}("
+ "'"+code+"',"+a+","+len+",'"+ dict.join('|')+"'.split('|'),0,{}))";
}
function num(c) {
return(c<a?'':num(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36));
}
function run() {
eval(document.getElementById('code').value);
}
function decode() {
var code = document.getElementById('code').value;
code = code.replace(/^eval/, '');
document.getElementById('code').value = eval(code);
}
</script>
<textarea id=code cols=80 rows=20>
</textarea><br>
<input type=button onclick=encode() value=编码>
<input type=button onclick=run() value=执行>
<input type=button onclick=decode() value=解码>
阅读全文
一次是在插了外接屏幕以后
一次是在玩CSS的时候
垃圾显卡看来还是不行啊
稍微玩一点大型的游戏就死机
为了延长笔记本寿命,还是少玩为好了
手机又充不上电,郁闷死了
弄了一个晚上才弄好,学会拆机了
不过不敢拆得太散,怕自己装不回去
能用还是先用这吧,以后再赚钱买新的
阅读全文