gtalk: Could not authenticate to server

GTalk无法登录了

GTalk无法登录了,提示“could not authenticate to server”。

参考这里,调整了计算机的时间,多次尝试,问题依旧。

又参考这里,检查我的windows 2000已经安装了SP4,并且使用用户名替代“用户名@gmail.com”登录,问题依旧。

以为是需要重启,结果重启以后,问题依旧。

看到这里说这是个已知的问题,正在处理中。

这里说切换到旧版本1.0.0.64或1.0.0.78就没事了,但是旧版本已经被我覆盖掉了,到哪里下载去?Google的下载一向习惯不带版本号的。

怀疑是我的账号有问题了,结果换成别的账号登录,问题照旧。

update at 2006-2-14: 升级gtalk到1.0.0.86以后,终于可以登录了,但在windows2000下仍然是惨不忍睹,无法使用。也有可能是因为我的2000IE版本或什么其他的版本不够的缘故。

gtalk升级到1.0.0.86, 终于能登录了

php中的exec函数并不想我想像的那样

用php时间不短了,但亲自做过的东西不多,exec等函数以前没有接触过,只是看别人的文章中提到了一些。现在要写一个修改apache密码的小功能,实现的方法早就明确了,但在使用exec函数的时候遇到了问题。

exec函数的作用是执行系统命令行命令,其语法为:

string exec ( string command [, array &output [, int &return_var]] )

其中command为要执行的命令字符串,output是执行命令的输出内容,数组格式,一行为数组中的一条记录,return_var是执行命令的返回值。

在dos下,直接执行htpasswd命令,不加任何参数,会得到类似如下的帮助:

E:\cvswork\svntools>htpasswd Usage: htpasswd [-cmdpsD] passwordfile username htpasswd -b[cmdpsD] passwordfile username password ……

因此,出于测试目的,先用exec同样执行一下这个命令看看效果,php代码如下:

exec(‘ e:\cvswork\svntools\htpasswd.exe’, $ar, $status); for ($i=0; $i < count($ar); $i++) $ar[$i] = htmlspecialchars($ar[$i]); $msg = implode(‘<br />’ . “\r\n”, $ar); echo $msg;

代码执行没有错误,但同样什么输出也没有,为什么呢?把命令换成dir或cd都能够正确执行,把htpasswd.exe换成pk.exe也没有问题,难道这个和htpasswd有关系?摸索1个来小时后,终于发现了问题所在。

当使用exec执行不带任何参数的htpasswd.exe的时候,返回值$status是2,而带上参数“-nsb 1 1”以后,返回值是0,并且输出信息正常

1:{SHA}NWoZK3kTsExUV00Ywo1G5jlUKKs=

而执行htpasswd1.exe这个并不存在的文件的时候,返回值是1,并且没有任何输出信息。

因此,我的结论就是,当exec函数执行命令正常,返回值为0的时候,才有输出信息,而当函数执行命令不存在或者返回错误代码的时候,就没有输出信息了。而htpasswd.exe恰好在不带任何参数执行的时候,虽然能够print出帮助信息,但返回状态为2,所以exec函数就没有返回任何输出信息了。

和exec类似的system,passthru,shell_exec等函数应该也是类似的。

W3C的css-validator和UTF-8文档的BOM冲突

css-validator是W3C提供的一个工具,用于检查CSS的有效性,是个不错的工具,同样的还有W3C Markup Validation Service,用于检查html、xhtml等文档的格式有效性。

但是在检查一篇文档的时候出现了问题,文档是UTF-8编码,XHTML 1.0 Strict检查已通过,CSS代码采用直接使用“<style type=”text/css”>”写在文档中的方式。在使用css-validator检查的时候出现如下错误:

Target: http://www.fwolf.com/tools/ogame_construction_resource_computer.php Please, validate your XML document first! Line 1 Column 1 Content is not allowed in prolog.

第一行、第一列?这不是xml 1.0的文档声明么?怎么在检查css的时候还用这个?结果一查,可能的原因有两个:

原因一:css-validator架构于Jigsaw——W3C’s Java Server上,而Java或Jsp处理XML文档的时候,无法正确识别UTF-8格式文档的BOM,从而导致错误“Content is not allowed in prolog”。

原因二:在这里看到别人在讨论的,即然XML 1.0的规范BOM是合理存在的,那么相关的XML工具就应该具备识别BOM标记的功能,但css-validator使用的XML Validator是采用ElCel Technology C++ Toolkit编译的,而这个东东可能不能完全识别BOM?

在W3C的bugzilla中也有人提交了这个bug,但似乎讨论也是无疾而终。

由于Windows平台下的一些编辑器,尤其是我使用的Emeditor,在没有BOM的情况下,有时会有些麻烦,所以出于方便维护的目的来讲,我认为BOM还是保留的好。至于css-validator不能识别的问题,就只能期待css-validator进行改进了,目前倒是还可以把css标记粘贴过去进行检查不是?W3C的W3C Markup Validation Service在检查文档,发现文档具有BOM的时候,会出现一个小提示:

Byte-Order Mark found in UTF-8 File. The Unicode Byte-Order Mark (BOM) in UTF-8 encoded files is known to cause problems for some text editors and older browsers. You may want to consider avoiding its use until it is better supported.

这说明W3C也在改进各类工具对BOM的支持。

至于说了半天,什么是BOM?请看谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词这篇文章。还有GonDa’s Blog上的Unicode、BOM也提到了一些。

另:css-validator以前都是英文版,现在好像改成了自动识别用户语言的版本了,但是我使用FireFox访问首页居然是乱码--文档是GB2312编码,却错误的被识别成了UTF-8编码。总体感觉易用性比W3C Markup Validation Service差远了,尤其是css-validator的中文版,错误提示有点莫名其妙的,还不知道怎么才能使用英文版界面。

chm文件无法在网络驱动器上阅读

CHM文件无法在网络驱动器上打开

今天偶然发现了这个问题的,以前倒也没怎么注意过,只是今天想升级一下以前下载的PHP帮助文件,就是在这里的“Extended HTML Help”,除了帮助还附带user notes,用着很顺手,但当下载完毕保存到另外一台机器上,想打开看的时候,却发现除了目录显示正常以外,右边的正文却是“无法显示网页”,一开始还以为是我下载错了呢,到后来一看不是,因为其他几个帮助文件也是这样,难道CHM文件,或者说是符合某种条件的CHM文件,就是无法在网络驱动器上打开么?看来以后要留心这个问题了。

update @ 2006-3-6: 解决方法:如何開啟 ADODB 的 Window CHM Format 說明檔,由来是windows xp由于安全的原因给封锁了。

铁通ADSL共享上网无法访问某些网页问题的解决

使用铁通的ADSL,WIN2000共享上网,主机上什么网站都没有问题(除了DNS不太好用),但使用共享上网的机器却总是访问不了有些网站,经常是一直Loading…,然后就没了反应,想重试,地址栏却是空的,很是烦人。

原来这些问题都出自一个小小的MTU:工作站向Internet发送TCP/IP数据请求包时,其数据包的TCP/IP传输单元数值超过了PPPoE协议下的数据帧所能承受的范围,从而导致了PPPoE协议无法准确将TCP/IP数据请求包发送到指定的Interner站点中,这样的话网站页面自然就无法被打开。要想消除该现象,必须限制数据包的TCP/IP传输单元最大数值,即MTU。

在注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interface分支下,新建双字节值名称(DWORD)MTU,修改其值为十进制数值数据1450(也有说是其它数值的,我是设置为1492就可以了),即可,再打开网页,问题全无!

也可以到http://www.dslreports.com/drtcp下载Dr. TCP来帮助更改MTU值,希望您上网愉快。