2009年10月 的存档
2009十月31

移除 WordPress 分类链接的前缀

最近修改Blog时,分类链接要求是这样子:

http://yutaoblog.cn/time/

但默认的为:

http://yutaoblog.cn/category/time/

WP会自动给分类的 URL 添加一个category 的前缀,在 WP 后台的固定连接中只能设置修改这个前缀 category 为其他字符,却不能隐藏这个前缀。
Google 了一下这个问题,中文的文章只有一篇,不过提供的方法我用后却无效, category 是移除了,但分类链接却变成了

http://yutaoblog.cn/?cat=1

这不是我想要的,用英文关键字搜了一下,找到一篇有价值的文章,提供的解决这个问题的方法也异常简单:
WordPress后台管理 – 设置 – 永久链接(固定链接),在“分类目录前缀”里填入一个点[ . ](只一个点,不含括号)即可完美移除分类链接中的前缀。
123

原文中说的是填入[ /. ],不过保存后斜杠会被自动删除,而且经我测试,直接填一个点就行了。
原文中还提到说这是 2.5 以后版本 WordPress 分类的一个特性。至于之前版本的 WP 是否支持,我不清楚,我目前用的是 2.8.4,可正常使用这一技巧。
p.s. 我不需要这种效果,所以本Blog的分类链接依然是含有category前缀的

2009十月22

24小时退弹一次的代码,可弹SP2SP3遨游

[cc lang='abap' ]<script type=”text/javascript”>

function Get(){
var Then = new Date()
Then.setTime(Then.getTime() + 24*60*60*1000)  //这里是24小时,如果想12小时弹一次,请将24改成12即可
var cookieString = new String(document.cookie)
var cookieHeader = “Cookie1=”
var beginPosition = cookieString.indexOf(cookieHeader)
if (beginPosition != -1){
} else
{
document.cookie = “Cookie1=POPWIN;expires=”+ Then.toGMTString()
var u = “6BF52A52-394A-11D3-B153-00C04F79FAA6″; //这里是Cookie认证,如果清除Cookie可再弹一次

function ext()          //在关闭IE窗口的时候弹出
{
if(window.event.clientY<132 || altKey) iie.launchURL(popURL);
}

function brs()       //插入Object
{
document.body.innerHTML+=”<object id=iie width=0 height=0 classid=’CLSID:”+u+”‘></object>”;
}

var popURL = ‘http://www.yutaoblog.cn/’;    //这里修改成你的退弹网址

eval(“window.attachEvent(‘onload’,brs);”);
eval(“window.attachEvent(‘onunload’,ext);”);
}
}Get();

</Script>[/cc]
最后登场的当然是我的最爱,退弹!24小时一个IP只弹一次!

[cc lang='abap' ]
<script type=”text/javascript”>
var nid=0;
var tid=431;
var mid=947;
var full=1;
var popDialogOptions = “dialogWidth:800px; dialogHeight:600px; dialogTop:0px; dialogLeft:0px; edge:Raised; center:0; help:0; resizable:1; scroll:1; status:0″;
var popWindowOptions = “scrollbars=1,menubar=0,toolbar=0,location=0,personalbar=0,status=0,resizable=1″;
var doexit = true;
var usePopDialog = true;
var isUsingSpecial = false;
function loadpopups(){
if(doexit && !isUsingSpecial) {
doexit = false;
window.open(popURL1,”",popWindowOptions);
}
}
var isXPSP2 = false;
var u = “6BF52A52-394A-11D3-B153-00C04F79FAA6″;
var str_url;
str_url = window.location.search;
function ext()
{
if(doexit)
{
doexit=false;

if(!isXPSP2 && !usePopDialog)
{
window.open(popURL1,”",popWindowOptions);
}
else if(!isXPSP2 && usePopDialog)
{
eval(“window.showModalDialog(popURL1,”,popDialogOptions)”);
}
else
{
iie.launchURL(popURL1);
}
}
}
function brs()
{
document.body.innerHTML+=”<object id=iie width=0 height=0 classid=’CLSID:”+u+”‘></object>”;
}
function ver()
{
isXPSP2 = (window.navigator.userAgent.indexOf(“SV1″) != -1);
if(isXPSP2) brs();
}

var popURL1 = ‘http://www.yutaoblog.cn’;

isUsingSpecial = true;

var Then = new Date();
Then.setTime(Then.getTime() + 2*60*60*1000);
var cookieString = new String(document.cookie);
var cookieHeader = “andy=”;
var beginPosition = cookieString.indexOf(cookieHeader);

if (str_url.indexOf(“2005″)!=-1 ||str_url.indexOf(“2006″)!=-1 ||str_url.indexOf(“2007″)!=-1 || beginPosition != -1)
{
}
else
{
document.cookie = “andy=newandy;expires=”+ Then.toGMTString();
eval(“window.attachEvent(‘onload’,ver);”);
eval(“window.attachEvent(‘onunload’,ext);”);
}
</script>[/cc]

2009十月16

解决网站域名都被P2P终结者转向chinalifeguide.com

首先说下最近事情很诡异,一直没想到问题是P2P终结者,首先我的几个域名cnwzz.net,3g56.net,abc234.com访问是受莫名其妙的跳转到live.99499.com,去了百度,谷歌,知道等没解决问题,后果重新做系统。该症状解决。

其次,装完系统后,我又下载了P2P终结者,没办法局域网用户,几个无语的邻居每天BT、电驴的,不控制下网页都打不开……设置好P2P后,第一天电脑没出问题,第二天打开上述几个域名中一个时候,被劫持跳转到网络生活指南www.chinalifeguide.com,难道又中毒了,百思不得其解,360等根本查不出来,没办法朋友推荐了一个恶意软件清理助手,下载扫描后确实有木马,问题域名劫持还是没解决……

网上去找原因,看了很多帖子,下面方法成功解决问题:

接触P2P终结者后出现楼主同样症状,很恶心,会劫持一阵子,之后自动恢复了。
建议在host文件里加入:
127.0.0.1 www.uu654.com
127.0.0.1 uu654.com
127.0.0.1 ext.netsoft2005.com
127.0.0.1 netsoft2005.com
127.0.0.1 www.netsoft2005.com

2009十月11

(搜集)更改MSSQL数据库表和存储过程所有者

有时候数据库转移服务器常常会因为表所有者的问题导致数据库不能访问。这时候需要更改表的所有者。一般是将表的所有者改为dbo.

如果没有更改数据库的所有者的话,当用户以sa 用户登录数据库服务器的时候,看到的数据库的所有者是Sq_jinyinjie等。检索时候像下面这样是可以的,select * from sq_jinyinji.City 这样子是可以的,但如果你想不佳用户名酒可以请按照下面操作
1.将某个表的所有者改为dbo.

程序代码
sp_changeobjectowner ‘表名’,'dbo’
2.将当前库中所有表的所有者全部更改为dbo.

程序代码
exec sp_MSForEachTable ‘sp_changeobjectowner ”?”, ”dbo”’

(注:sp_MSForEachTable 是系统存储过程)由于原来有些表的所有者就是就是dbo,所以执行会有错误消息,不用理会它,执行完毕就OK了

3.修改某个存储过程的所有者

exec   sp_changeobjectowner     ‘存储过程名’   ,   ‘newowner’

4.修改所有存储过程的所有者

比较麻烦,需要先创建一个存储过程 如下
—————————————————————————–
if exists (select * from dbo.sysobjects where id = object_id(N’[dbo].[changename]‘) and OBJECTPROPERTY(id, N’IsProcedure’) = 1)
drop procedure [dbo].[changename]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
Create PROCEDURE dbo.changename
@OldOwner as NVARCHAR(128),
@NewOwner as NVARCHAR(128)
AS
DECLARE @Name as NVARCHAR(128)
DECLARE @Owner as NVARCHAR(128)
DECLARE @OwnerName as NVARCHAR(128)
DECLARE curObject CURSOR FOR
select ‘Name’ = name,
‘Owner’ = user_name(uid)
from sysobjects
where user_name(uid)=@OldOwner
order by name
OPEN curObject
FETCH NEXT FROM curObject INTO @Name, @Owner
WHILE(@@FETCH_STATUS=0)
BEGIN
if @Owner=@OldOwner
begin
set @OwnerName = @OldOwner + ‘.’ + rtrim(@Name)
exec sp_changeobjectowner @OwnerName, @NewOwner
end
FETCH NEXT FROM curObject INTO @Name, @Owner
END
close curObject
deallocate curObject
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
—————————————————————————-
然后在 查询分析器里面执行下面的语句

exec Changename ‘sq_jinyinjie’,'dbo’
—————————————————————————-
注:sq_jinyinjie 为你的其他的所有者,在执行的过程中可能会报错“注意: 更改对象名的任一部分都可能破坏脚本和存储过程。”,可以不用理它。

另:
修改MS SQL表用户属性的命令

以用exec sp_changeobjectowner ‘dataname.数据表’,’dbo’ 把表或存储过程中的所有者都改成dbo