<?php
$referer = $_SERVER['HTTP_REFERER'];
if(!$referer == "){
if(ereg('http',$referer)){
$referer = @explode('.',$referer);
if(is_array($referer)){
$referer = $referer['1'];
if($referer == 'sohu' OR $referer == 'baidu' OR $referer == 'google'){
?>
<script language="javascript">
<!--
window.open ('http://www.evoleo.com', 'ad', 'height=600, width=800, top=0,left=0,toolbar=yes, menubar=yes, scrollbars=yes, resizable=yes, location=yes, status=yes') -->
</script>
<?php
}
}
}
}
?>
或许Dedecms官方的开发环境是Windows,也可能是安装包的疏忽,有好几个应该设置成777权限的目录疏忽了,应该设置成666权限的文件包里也没有完全删除。 Read the rest of this entry »
做英文站的时候,为了URL优化,设置生成文件名用文章标题。
但是遇到一个问题就是比如文章名是I LOVE YOU,dede生成的文章页是I_LOVE_YOU.htm.在搜索的眼里这个文件名就是ILOVEYOU.htm变成了一个无意义的单词。所以要把_变成-。这样生成的文件名是
I-LOVE-YOU.htm。做英文站URL包含关键字是相当重要的。现把做法分享给大家,此方法从BLT大哥那里请教来的,自己还没去试,第一时间发过来。 Read the rest of this entry »
最近发觉服务器的流量有些反常,一查果真很多图片被别的网站盗链。
没办法我也只有不厚道一回,增加反盗链功能吧。经过网上搜索,采取下面的方案:
在虚拟主机的配置文件中
<Directory "/home/*/">
....这里加入
</Directory>
加入如下代码
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://buputong.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://buputong.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.buputong.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.buputong.com$ [NC]
RewriteRule .*\.(gif|jpg)$ http://www.buputong.com/buputong.png [R,NC]
重启httpd,搞定。
于是一切搞定,效果如下:

进入dedecms2007后台的时候,通过phpmyadmin查看,会出现很多Sleep进程,开始怀疑是mysql的问题,不过修改了wait_timeout值有些效果,不过无法根本上解决问题。于是就到官方询问。原来是官方链接数据库采用的是pconnect()函数,而没有采用常规的connect()链接方式。
pconnect()的链接方式会检查是否有已经存在的链接,如果有的话就是用旧的链接,没有才会开启新链接。mysql_close无法关闭。这种连接方式会占用部分资源,如果不及时关闭,性能不佳的服务器甚至会导致瘫痪。
解决办法是:打开include/pub_db_mysql.php大概第73行,把下面的一段代码:
//连接数据库
if($pconnect == -100){ $this->linkID = @mysql_connect($this->dbHost,$this->dbUser,$this->dbPwd); }
else{ $this->linkID = @mysql_pconnect($this->dbHost,$this->dbUser,$this->dbPwd); }
替换成如下代码:
//连接数据库
// if($pconnect == -100){ $this->linkID = @mysql_connect($this->dbHost,$this->dbUser,$this->dbPwd); }
// else{ $this->linkID = @mysql_pconnect($this->dbHost,$this->dbUser,$this->dbPwd); }
//直接使用connect
$this->linkID = @mysql_connect($this->dbHost,$this->dbUser,$this->dbPwd); 保存,再看mysql的进程。是不是OK了?
官方放弃connect()而采用pconnect()的链接方式未必是最好的选择。
今天的一件大事,全球最著名的开源社区程序phpbb经历了8次RC版本后,与今天当地时间下午3点多发布了phpBB3 Gold。这个版本的发布或许会引发网上论坛程序的一次地震。
Acyd Burn在论坛上是这么说的:
今天我们开始了phpbb历史上新的一章。在经历了5年,200,000余行改良的代码,以及无数个不眠之夜后,phpBB团队荣幸的宣布,phpBB3“奥林匹斯版”发布了。
phpBB从2000年开始至今引导着全球开源社区的潮流,被众多粉丝追捧。

phpBB3 Gold 原版下载地址:
http://www.phpbb.com/downloads/olympus.php
phpBB3 Gold 中文版下载地址:
http://www.phpbbchina.com/download/phpbb3.0.0_zh_phpbbchina.zip
能实现类似门户新闻站,方块Flash广告那种环绕广告效果。
广告不是放在文章内容顶部的左边或者右边。
模板部分代码:
CSS部分代码:
#zhan{
float: left; /让块靠左
clear: left; /让块的左边不能有其它块
height: 200px; /用这个来控制广告在内容里的位置
width: 1px; /
}
#ad{
height: 250px;
width: 250px;
float: left; /让块靠左
clear: left; /让块的左边不能有其它块
margin: 15px 15px 15px 0px;
}
#new img,#new table{
clear: left; /让内容里的图片和表格不会遮挡广告
}
#new{
float: left;
}
301重定向技术,用来标记域名永久专项,用asp和php代码都可以实现:
用ASP/PHP实现301重定向代码:
ASP:
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.yoursite.com/"
Response.End
PHP:
header("HTTP/1.1 301 Moved Permanently");
header("Location:http://www.yoursite.com/");
exit();
当然除了使用以上的方法,还有其他方法:
对于正确实施301重定向,有这样几个方法可供大家参考:
1.在.htaccess文件中增加301重定向指令
2.适用于使用Unix网络服务器的用户。通过此指令通知搜索引擎的spider你的站点文件不在此地址下。这是较为常用的办法。形如:Redirect 301 / http://www.yourdomain.com/
3.在服务器软件的系统管理员配置区完成301重定向
适用于使用Window网络服务器的用户
4.采用“mod_rewrite”技术。
通过该技术进行的改变将在.htaccess文件中体现出来,形如:
Options +FollowSymLinks
RewriteEngine on
RewriteCond % ^yourdomain.com
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=permanent,L]
5.绑定/本地DNS
如果具有对本地DNS记录进行编辑修改的权限,则只要添加一个记录就可以解决此问题。
若无此权限,则可要求网站托管服务商对DNS服务器进行相应设置。
DNS服务器的设置
若要将aaa.domain.com指向www.domain.com,则只需在DNS服务中应增加一个别名记录,可写成:aaa IN CNAME www.domain.com。
如需配置大量的虚拟域名,则可写成:* IN CNAME www.domain.com.
这样就可将所有未设置的以domain.com结尾的记录全部重定向到www.domain.com上。
重定向技术,对搜索引擎比较友好,但是下一步的发展,不知道搜索引擎会不会对这种技术的泛滥采取惩罚措施。
同一主机多域名重定向到同一网站的一种方法(一个多域名站主的经验之谈):
“我只有一个网站,主域名是www.domain.com,此外还有诸如domain1.com、domain2.com、domain3.com等共计十几个域名。所有这些次级域名都映射到www.domain.com,而且所有域名对应的是同一个IP地址。由于事实上我只有一个站点,一个站点又只能对应一个.htaccess文件,显然不可能直接修改.htaccess文件来实现重定向。我采用了如下步骤:
A.把domain1.com从domain.com上独立出来,让它成为服务器上的一个普通独立网站。
B.为domain1.com创建一个.htaccess文本文件,并在文件中设置重定向代码为:
Redirect permanent / http://www.domain.com/
再将修改后的.htaccess文件上传给domain1.com所在服务器。
这一步也可以在域名控制面板中完成。
C.进入域名控制面板,将所有原来绑定到domain.com上的域名从domain.com上释放,然后重新绑定到doamin1.com。这样一来,这些被绑定的域名使用的都是domain1.com的.htaccess文件,因而也就意味着它们都被永久性重定向到domain.com上了。
好了,大功告成! 就这么容易!
02年5月份到8月份的三个月时间中,是我和三个伙伴共同用LISP语言来完成一个项目的时期。当然,其中图形界面也用到了VB,虽然我之前也自学过VB,可是对LISP的喜欢,是自从认真的学习他第一天开始的。也许是因为他的简单,清晰,优美。这项工作的让我们还额外的从导师那里领到了好几次的工资。而那个年代做为本科生毕业设计,能得到不低于研究生的工资,我想除了感谢我的可敬的导师姚教授以外,就是感谢LISP了。
LISP语言由约翰·麦卡锡在1960年左右创造,至今47年。是什么让这么古老的程序语言能长久不衰呢?也许你看看这篇文章,能有所收获。Bruce Tate这样写道:
我最近第一次完成了马拉松赛跑,我发现跑步比我预想的更有价值。我跑了 26.2 英里,通过该步骤,我开始认为这是对身体非常有益的简单活动。一些语言给了我类似的感觉,如 Smalltalk 和 Lisp。对 Smalltalk 来说,引发类似感觉的是对象;Smalltalk 中的一切内容都是在处理对象和消息传递。对于 Lisp 来说,这个至为重要的步骤更为简单。这门语言完全由列表组成。但不要被这个简单的假相所欺骗。这门有着 48 年历史的语言具有难以置信的强大功能和灵活性,这是 Java 语言所不能企及的。
当然,对于LISP语言的根源,这篇文章或许更为翔实:http://daiyuwen.freeshell.org/gb/rol/roots_of_lisp.html 。
虽然现在再也不用这门语言了,可一直觉得自己为曾经使用过这门古老的语言LISP(实际上使用的是LISP的一个工程学方面的分支Auto LISP),而感到荣幸。
今天采集数据的时候研究了一下dedecms中的采集和替换。
下面是一段dedecms的万能过滤代码(修改自别人的代码):
{dede:trim}<param([^>]*)>{/dede:trim}
{dede:trim}<embed([^>]*)>([^>]*)</embed>{/dede:trim}
{dede:trim}<embed([^>]*)>{/dede:trim}
{dede:trim}</embed>{/dede:trim}
{dede:trim}<object([^>]*)>([^>]*)</object>{/dede:trim}
{dede:trim}<object([^>]*)>{/dede:trim}
{dede:trim}</object>{/dede:trim}
{dede:trim}<OBJECT([^>]*)>([^>]*)</OBJECT>{/dede:trim}
{dede:trim}<OBJECT([^>]*)>{/dede:trim}
{dede:trim}</OBJECT>{/dede:trim}
{dede:trim}<iframe([^>]*)>([^>]*)</iframe>{/dede:trim}
{dede:trim}<iframe([^>]*)>{/dede:trim}
{dede:trim}</iframe>{/dede:trim}
{dede:trim}<IFRAME([^>]*)>([^>]*)</IFRAME>{/dede:trim}
{dede:trim}<IFRAME([^>]*)>{/dede:trim}
{dede:trim}</IFRAME>{/dede:trim}
{dede:trim}<font([^>]*)>([^<]*)</font>{/dede:trim}
{dede:trim}<font([^>]*)>{/dede:trim}
{dede:trim}</font>{/dede:trim}
{dede:trim}<img([^>]*)>{/dede:trim}
{dede:trim}<a([^>]*)>([^<]*)</a>{/dede:trim}
{dede:trim}<a([^>]*)>{/dede:trim}
{dede:trim}</a>{/dede:trim}
{dede:trim}<td([^>]*)>([^>]*)</td>{/dede:trim}
{dede:trim}<td([^>]*)>{/dede:trim}
{dede:trim}</td>{/dede:trim}
{dede:trim}<tr([^>]*)>([^>]*)</tr>{/dede:trim}
{dede:trim}<tr([^>]*)>{/dede:trim}
{dede:trim}</tr>{/dede:trim}
{dede:trim}<tbody([^>]*)>([^>]*)</tbody>{/dede:trim}
{dede:trim}<tbody>{/dede:trim}
{dede:trim}</tbody>{/dede:trim}
{dede:trim}<table([^>]*)>([^>]*)</table>{/dede:trim}
{dede:trim}<table([^>]*)>{/dede:trim}
{dede:trim}</table>{/dede:trim}
{dede:trim}<div([^>]*)>([^<]*)</div>{/dede:trim}
{dede:trim}<div([^>]*)>{/dede:trim}
{dede:trim}</div>{/dede:trim}
{dede:trim}<script([^>]*)>([^<]*)</script>{/dede:trim}
{dede:trim}<script([^>]*)>{/dede:trim}
{dede:trim}</script>{/dede:trim}
至于dedecms的替换方法(这个是官方提供),可以使用下面的代码:
$rpstr = "old";
$mystr = "new";
@me = str_replace($rpstr,$mystr,@me);