关注互联网、IT技术!

最土混淆ID功能缺陷导致外部链接ID被编码

  •  admin
  •  2011-07-20 03:07:22
  •     
最土程序有一个功能,就是混淆ID,把数字编码,让人看不出来你的项目是第几个。在使用过程中遇到一个问题,就是当页面里,有添加的外部链接时,外部链接的ID也会被编码,导致链接地址错误。 通过查看代码,发现编码的函数在common.php文件中
function obscure_rep($u) {
	if(!option_yes('encodeid')) return $u;
	if(preg_match('#/manage/#', $_SERVER['REQUEST_URI'])) return $u;
	return preg_replace_callback('#(\?|&)id=(\d+)(\b)#i', obscure_cb, $u);
}
其实只要在里面添加一行代码,把不需要编码的页面过滤一下即可。 比如我维护的那个网站,有文章页面,地址是/article.php?id = 1111。添加在文章中的链接,很有可能会被编码造成错误。所以我添加了一个规则,把文章页面过滤掉了,就避免了这个麻烦。代码如下:
function obscure_rep($u) {
	if(!option_yes('encodeid')) return $u;
	if(preg_match('#/manage/#', $_SERVER['REQUEST_URI'])) return $u;
	elseif(preg_match('#article.php#',$_SERVER['REQUEST_URI'])) return $u;//这行代码就把文章页面里的链接过滤了,不进行编码
	return preg_replace_callback('#(\?|&)id=(\d+)(\b)#i', obscure_cb, $u);
}

相关文章

评论

称呼(可以不填)
Email(可以不填)
链接(可以不填)
请输入评论内容*