转贴:避免垃圾评论

13 1 月, 2010

转自:http://www.google.com/support/webmasters/bin/answer.py?hl=cn&answer=81749

评论功能是网站管理员建立社区和读者群体的绝佳方法。 但遗憾的是,评论功能经常被垃圾评论发送者或其他居心不良者滥用,其中有许多人使用脚本或其他软件来生成和发布垃圾评论。 如果您收到过像广告或指向无关网站的随机链接,那么您就遭遇了垃圾评论。 下面提供了一些建议,有助于减少或防止您的网站中出现垃圾评论。

使用防垃圾评论工具

大多数网站开发工具,特别是博客工具,可能需要评论者证明他们是真的用户,而非讨厌的垃圾评论制造引擎。 您可能已经知道:一般情况下系统会向用户显示变形图片(通常称为 CAPTCHA),并会要求用户键入在图片中看到的字母或数字。 某些 CAPTCHA 系统还支持音频 CAPTCHA。 这是防止垃圾评论的一种非常有效的方法。 此过程可能会减少在您网页上随意留言的用户的数量,但是无疑会改善评论的质量。

打开评论审核功能

评论审核功能意味着只有在您手动检查和批准评论后,评论才会显示在您的网站中。 这表示您将在监控评论方面花费更多时间,但是它的确有助于改进访问者的用户体验。 如果您定期发布有争议的主题,这些主题常会引发热烈的讨论,那么多花点时间是值得的。 您通常可以在博客软件(例如 Blogger)中进行设置。

使用"nofollow"标记

几年前,Google 与 Yahoo! 和 MSN 都引入了"nofollow"HTML microformat,此属性已经被广泛采用。 rel="nofollow" 属性的所有链接都不会用于计算 PageRank 或确定您的网页与用户查询的相关性。 (例如,如果垃圾评论发送者在您的评论中加入这样一个链接:

<a href="http://www.example.com/">这是一个不错的网站!</a>

它将转换为:

<a href="http://www.example.com/" rel="nofollow">这是一个不错的网站! </a>

在计算 PageRank 时,这个新链接不会纳入考虑的范围。 这不会阻止垃圾评论,但可以避免通过 PageRank 时出现问题。

默认情况下,许多博客网站(例如 Blogger)会自动为所有发布的评论添加此属性。

禁止在评论中加入超链接

如果您可以访问服务器,则可能希望更改其配置以便从留言簿的评论链接中删除 HTML 标记。 垃圾评论发送者仍可以留言,但是不能够发布有效的超链接。

使用 robots.txt 或 META 标记拦截评论页

您可以使用 robots.txt 文件来阻止 Google 访问特定网页。 这不会阻止垃圾评论发送者留言,但意味着这些评论中的链接不会对网站产生负面影响。 例如,如果评论保存在 guestbook 子目录中,您可以向 robots.txt 文件添加以下内容:

    Disallow:/guestbook/

此语句会阻止 Google 将 guestbook 及任何子目录中的内容编入索引。

您还可以使用 META 标记来阻止对 http://www.example.com/article/comments 等单个选定网页的访问。 如以下标记:

    <html>    <head>    <META NAME="googlebot" CONTENT="noindex">

对启用留言簿或评论三思而后行

大量的垃圾评论不会让用户对网站有什么好印象。 如果此功能不会为您的用户增加很多价值,或者您没有时间定期监控留言簿或评论,可以考虑关闭这些功能。 大多数博客软件(例如 Blogger)会要求您关闭单个帖子的评论功能。

本小博昨日下午被暂停

13 1 月, 2010

原因是2007年8月28日转的一篇文章引起的,说是涉及到政治所以被要求删除,见图:

截图留贴以示怀念。

顺便转一个链接:《CNNIC公布:规定所有CN域名须在公司名下》 http://is.gd/5ZCK8

不知这个cn域名能否活过这个月,反正不会为了存活而找公司挂靠的,死了就死了。已预先在www.GoDaddy.com注册了lordong.net域名,决定放弃国内域名了。

"Cannot modify header information"的解决方法

11 1 月, 2010

在PHP空间部署wordpress时遇到这条警告:"Warning: Cannot modify header information - headers already sent by ....",网上搜索解决办法,有不少解决方案,这里说说我用到的方法。

PHP代码里经常用到include或者requir来包含文件,注意检查这些被包含文件<?php ... ?> 后面没有空白行。不少问题是这些空白行导致的。

有些情况空白不会引起这个问题,我发现php文件如果存成UTF-8也会因为第一行头两个字节不是以“<?”开头的,所以导致这个问题,解决办法是用记事本打开,然后另存成ANSI文件即可。

如果文件内部有双字节的字符,比如汉字等,直接用记事本把UTF-8编码的文件转存成ANSI会导致浏览器里打开的汉字是乱码,解决办法是还是保存成UTF-8格式,不过需要用第三方工具把文件前的UTF-8编码特征字符去掉,比如用DreamWeaver打开,点Modify菜单里的Page Properties子菜单,选中“Title/Encoding”,然后把Encoding改成“Unicode(UTF-8)”,把"Include Unicode Signature(BOM)"前的钩去掉,最后保存即可。也可以用UltraEdit打开文件,然后切换到十六进制模式,把前三个字节“EF BB BF”剪切掉,最后保存即可。

我之所以碰到这种情况,是因为我图方便,改用记事本打开源码进行编辑,保存后文件就会自动加上“EF BB BF”前缀,看来以后在慎用记事本来修改页面文件了。

新年新气象,未来的路在何方?

1 1 月, 2010

一转眼,本博已进入第4个自然年,随着墙内对网络的严打,这个虽已备案的cn域不知哪天就归西了,在她西去之前就先将就着用吧。

2010年注定还是不平凡的一年,走着瞧吧……

Windows 桌面万年历

23 12 月, 2009

在网上可以找到各式各样的万年历,可没找到用于Windows桌面的独立的而面文件,于是就在一些页面的基础上做了修改,生成了一个相对较小的“万年历.htm”文件,然后可以直接放到Windows的桌面上。

添加方法:右击桌面,选择“属性”,在弹出的“显示属性”窗体里切换到“桌面”标签,点最下面的“自定义桌面”会弹出另一个“桌面项目”窗体,切换到“Web”标签,点“新建”按钮,然后浏览找到下载到本地的“万年历.htm”文件,把“锁定桌面项”前的钩去掉,然后一路确认。

修改桌面上万年历的大小或位置方法:将鼠标指针移到在桌面显示的图片上侧,会显示出一个窗口边框,此时把鼠标指针指向边框,当光标变成双箭头时拖动即可直接调整显示图片的大小。把鼠标指向其标题栏,按住左键拖动可以调整图片在屏幕中的位置。

效果见图:

“万年历.htm”文件下载:万年历.htm.txt (保存到本地时后把.txt后缀去掉)

CuteFTP设置的一点小技巧

15 12 月, 2009

CuteFTP是比较常用的FTP上传下载工具,合理设置好传输选项可以提高上传下载的速度。

启用CuteFTP的智能覆盖可以跳过一些不变化的内容,从而减少上传下载的理,也就提高了速度。

下图是我的设置:

Read the rest of this entry »

PHP空间远程下载后的配套删除代码

15 12 月, 2009

上篇《PHP空间远程下载代码》解决了在远程PHP空间下载软件的问题,一般来说下载完并通过http方式把已下载到服务器的文件下载到本地后就要把远程服务器上的文件删除,通常情况是通过ftp连接到服务器上去删除对应的文件,可是有时没有使用FTP的条件怎么办?

我这里写了一个删除已经下载文件的PHP代码,跟上篇的downfile.php放在服务上同一个目录下即可,临时目录还是temp。

实现代码:
<?php
// folder to save downloaded files to. must end with slash
$destination_folder = 'temp/';

if (isset($_POST['submit']))
Read the rest of this entry »

PHP空间远程下载代码

11 12 月, 2009

源码:

<form method="post">
<input name="url" size="50" />
<input name="submit" type="submit"  value="Download"/>
</form>

<?php
// maximum execution time in seconds
set_time_limit (24 * 60 * 60);
if (!isset($_POST['submit'])) die();

// folder to save downloaded files to. must end with slash
$destination_folder = 'temp/';

$url = $_POST['url'];
$newfname = $destination_folder . basename($url);
$file = fopen ($url, "rb");
Read the rest of this entry »

魔方贴纸的贴法教程

30 11 月, 2009

常见的配色:

上黄-下白前蓝-后绿左橙-右红

 材料分类:
1、PET(纸质过胶)贴纸(如R记、东贤及国丙原配的),玩久了会脱皮褪色。玩家一般是不喜欢这种贴纸的。
2、PVC贴纸,就是广告店用的那种颜色贴纸,风吹雨打也不会褪色,魔友们一般喜欢这种贴纸,至于为何那些R记、东贤品牌魔方不用这种,据说是PVC贴纸不环保的原因。

单张得转贴法:
第一步:清理魔方表面的灰尘与油污!
    我们先把透明胶或转贴纸在魔方上反复做一个动作,贴上撕下,再贴上再撕下,这样做是为了把魔方表面的脏东西去除掉,使得我们贴上去的贴纸能更牢固。
第二步:贴贴纸!
    先把单个贴纸撕下来,把撕下来的贴纸的一个小角贴在边上。然后把单个贴纸摆放好位置后贴上,再把边角料抽走。

更多内容请参考:http://bbs.ztno.com/thread-8049-1-1.html

InstallShield更新系统路径脚本

19 11 月, 2009

prototype LONG User32.SendMessageTimeout(HWND,LONG,LONG,LONG,LONG,LONG,LONG); 

//The SetEnvironmentVariable function sets the contents of the specified environment variable for the current process.
//This function has no effect on the system environment variables or the environment variables of other processes.
prototype BOOL KERNEL32.SetEnvironmentVariable(BYVAL STRING,BYVAL STRING);

#define WM_SETTINGCHANGE 0x1A
#define SMTO_ABORTIFHUNG 0x2   

prototype UpdateSystemPath(BOOL);
function UpdateSystemPath(bAdd)
    NUMBER nRootKey, nResult, nvSize, nvType;
    POINTER pParam, pResult;
    LONG lResult;
    STRING szParam, szPath, szWinDir; 
begin
    Disable(LOGGING);
   
    nRootKey = HKEY_LOCAL_MACHINE;
    if RegDBSetDefaultRoot(nRootKey) = 0 then   
        nvSize = 1; 
        nvType =  REGDB_STRING;
        nResult =  RegDBGetKeyValueEx("SYSTEM\\ControlSet001\\Control\\Session Manager\\Environment", "Path", nvType, szPath, nvSize); 
       
        szWinDir = WINDIR;
        StrRemoveLastSlash(szWinDir);
        StrReplace(szPath, "%SystemRoot%", szWinDir, 0);
       
        PathSet(szPath);
        if bAdd then
            PathAdd(TARGETDIR ^ "Bin", "", FULL, AFTER); 
        else
            PathDelete(TARGETDIR ^ "Bin", FULL);
        endif;
        PathGet(szPath);         
        RegDBSetKeyValueEx("SYSTEM\\ControlSet001\\Control\\Session Manager\\Environment", "Path", REGDB_STRING, szPath, -1);
       
        szParam     = "Environment";
        pParam      = &szParam;
        pResult     = &lResult;
        SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, pParam, SMTO_ABORTIFHUNG, 100, pResult);
       
        //set environment variable for current process
        SetEnvironmentVariable("PATH",szPath);
    endif;  
    Enable(LOGGING);
end;