解决php session_start的warning问题

发布于: 2009年07月21日

在php程序中执行session_start()函数可能会出现如下错误:

Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent……

可能的原因如下:

1. php.ini中session.save_path 没有设置到一个可写的目录.  windows下可给c:/tmp, 前提是必须先建立这个目录. Linux下一般设为/temp

2. session_start()必须早于任何到浏览器的输出.一般来讲可以写到第一行.

3.如果还不行,就在前面写个ob_start();

以上三个仅为常规原因,还有一个隐蔽的原因是,php源文件存为UTF-8 .而有的编辑器会在这个文件的开头写上几个字节,称为BOM签名.(具体请参考http://hi.baidu.com/wwwanq/blog/item/b337de3766a43c380b55a95e.html). 我的editplus3.01上没有这个BOM签名,而notepad++上就碰到了,让我一顿好找.其实notepad++也是可以选为UTF-8(无BOM)的,如下图.一开始没有注意到这一点,选了UTF-8, 结果中招了.notepad++另外,还见过一个另类的解法,就是在php.ini中把session.auto_start 的值由0改为1, 然后重启apache. 直接启用session_start, 可以不用在页面代码上写session_start()函数,当然写了也无所谓. 这个方法药性很大,直接起效,但副作用也不小,一旦程序迁移到另外一台服务器,忘记启用session.auto_start(或者没有权限修改php.ini或重启apache), 结果是要么session不起作用(没在页面写session_start),要么乱蹦上面的错误(有写session_start)

virtualBox 无法启动虚拟机的解决方法

发布于: 2009年07月21日

一个沉睡了很久的虚拟XP系统,很久一年用vbox搞的。为了验证web系统在IE6下的兼容状况。今天一个仍然使用IE6的老土的用户跟我抱怨系统出错,我在IE7,8,Fx,Opera,Chrome下测试都没有问题,不得不重新启用虚拟机来验证。可惜vBox跟我报错:

PIIX3 cannot attach drive to the Secondary Master.

VBox status code: -2 (VERR_FILE_NOT_FOUND)

什么原因我已经无法查到,解决方法其实超简单,在Vbox界面吧启动不了的虚拟机在列表里面删除。在新建一个,引用原来的vdi文件即可。

vbox

把盗版软件请出电脑

发布于: 2009年07月17日

也许是受这场开源运动影响,或者是人慢慢变得成熟,虽然仍然不花钱买软件,但也慢慢开始重视起版权来。今天细数了一下电脑里的软件,盗版的东西已经寥寥无几:

操作系统:Windows XP OEM版,笔记本带的,正版
浏览器:IE,Firefox,Chrome 都不需要花钱
Office: WPS Office 个人版,免费,好用,已经看不到与MS Office有何障碍。不知道是不是当年金山与MS互相开放格式的协议还有效。
编辑器:用开源的Notepad++替代商业的editplus(过渡中)
虚拟光驱:Daemon Tools Lite, 家用,非商业用途是免费的:http://www.xngq.com/products/dtLite
IM: QQ, Windows Live Messenger。不过多用户登录还是Pidgin比较简单。skype有装,不太用。淘宝旺旺。都是免费的
图片管理:Picasa.
截图:Snagit,盗版,说实话这个真的很好用,寻找替代中
下载: FileZilla, 开源 Mozilla的;DownThemAll(Firefox 插件),偶尔用用迅雷;刚刚找了一番,居然发现BT和电驴都没装,落伍了
压缩:7-Zip, 用了她,想不出用WinRAR的理由
翻译:金山词霸Google合作版
影音:Mplayer的windows版Smplayer, PPS, foorbar2000
文件同步:CwRsync, 开源的
其他:Google Earth, Google 拼音,google music 上听音乐, UltraVPN(爬墙的,免费),vncviewer free edition, Adobe Reader
在这个各大软件商争相提供免费版的时代,要找个免费个人使用的软件,还真不难。
不过目前还有个问题,就是杀毒软件用的是Nod32, 网上找的用户密码。正在评估AVG和Avira的免费版

手机支付:招商银行网上支付的迂回策略

发布于: 2009年07月17日

徐继哲当年写致招商银行的公开信,也许是认为招商银行是目前中国银行中唯一也许有得救药的银行。网上支付方面,支付宝首先打开了非IE浏览器的大门。2008年9月初,发布了windows下Firefox的插件;随后在一个多月后,继而发布了Linux下Firefox的插件。但是,在网银的大环境下,支付宝的努力变成了众所周知的鸡肋,要完成一次淘宝网的买卖,没有Windows+IE仍然不可行。

前两天在使用招行网上支付的时候,看到了她的广告,自称可以用苹果,Linux,Firefox和Opera支付(很遗憾Chrome被无视了,实际上应该也是可以的),仔细一看原来是传说中的手机支付。

支付页面如下,看起来当非IE浏览器登录时,默认会定位到手机支付页面

pay

根据下面的帮助页面,流程大概是当你需要网上支付时,输入你在网上银行预留的手机号,和银行卡后4位,系统会给你一个链接,让你在手机中访问该页面,并输入支付密码。

一般情况下,你开通晚上银行是都会预留手机号码,方便你在网上或POS机支付时给你短信通知。但是这里还有一个要求是,你的手机可以通过WAP访问互联网。看来使用Nokia 1110类似手机的网民没有机会享用了。所幸的是,现在几乎所有彩屏手机和山寨手机都支持WAP了。

payhelp

也许通过这样的手机支付,是招行与非Win非IE用户不完全妥协的折中结果。我个人也希望在这个迂回策略背后,招行继续酝酿脱离ActiveX的网银操作方式。

删除不常用Firefox扩展是有用的

发布于: 2009年07月13日

Firefox3.5 正式版推出后,溢美之词不绝于耳。抱怨之声也不少,比如得到随机数字设计不恰当导致的启动慢,比如我的这篇关于狂吃内存的抱怨

Solidot报道有缺陷的Firefox扩展是导致内存泄漏的祸首,今天简单实验了一下。许久不用的Fx3.5,启动后打开google主页,居然占用了我64MB内存。我的Fx安装了包括google toolbar, gear 等在内的10几个扩展。由于Fx不兼容,有一半扩展并没有启用,使用nightly tool 启用了一些必要的。看起来光禁用是不够的。于是一顿狂删,包括solidot文章提到的FlashGot,Greasemonkey等。由于删除时没有记录,具体就不再罗列,最终留下6个,包括:Alexa Sparky,DownThemAll,Firebug,Google Gears, IE Tab, JavaScript Debugger. 这样,启动速度似乎快了些,最主要是内存占用在相同情况下降到了40MB一下.

所以看起来:

1.不想要的扩展,光禁用是不够的,还需要删除

2.不常用的扩展还是别装了,比如FireFTP, 改用FileZilla吧

Mozilla 罗列了有问题的扩展,似乎要把Fx的一些问题推到扩展身上,但是显然不是足够厚道。Fx的优秀与扩展密不可分,没有了扩展,Fx多少有点鸡肋。

google APP之企业邮箱,很酷的应用

发布于: 2009年07月03日

当我为自己购买了域名和空间之后,我也希望拥有一个simon@cn-ic.org这样很酷的个性化邮箱。但是,空间商虽然也提供邮箱,但是功能太鸡肋。邮箱的空间小,功能少,关键还是访问速度太慢。

google APP其实早有推出。分标准版(免费)和专业版(收费)。其中的企业邮箱很好的满足了我的这个要求。其实她就是gmail的功能,给了一个个性化的邮箱名。前提只是需要一个域名。可以自己提供,或者跟google购买(.com域名,10刀一年,价格还算公道)。标准版提供50个邮箱,每个邮箱7GB。专业版邮箱个数不限(这个我猜的,上面没写限制:) ),每个邮箱25GB,无广告,99.9%的在线率保证。

google APP的网址:www.google.com/a,  但是上面只有专业版的链接。因为标准版链接藏地好深。嗯,他在这里呢:http://www.google.com/a/cpanel/domain/new

注册分三步:

1. 你的域名:

domain2.注册基本信息:由于截图是另一个域名进行演示,在此抹去。国家/地区栏,google不支持中国地区。故需要改为“美国”或其他支持的国家和地区。电话随便写一个。不带星号的可以不填。

reg23. 创建第一个邮箱帐户,很重要。以后登录本域名后台管理界面就靠他了。好好设置。reg3创建完成后,Google需要验证域名是不是你的。有两个选择,如果你有web空间。那么在网站根域名的目录下,上传一个带有校验码的googlehostedservice.html文件即可。如果没有,那么修改域名的MX记录亦可。反正MX记录也是需要修改的。

在你的域名注册商那里修改MX记录如下。

10 ASPMX.L.GOOGLE.COM.
20 ALT1.ASPMX.L.GOOGLE.COM.
30 ALT2.ASPMX.L.GOOGLE.COM.
40 ASPMX2.GOOGLEMAIL.COM.
50 ASPMX3.GOOGLEMAIL.COM.
60 ASPMX4.GOOGLEMAIL.COM.
70 ASPMX5.GOOGLEMAIL.COM.

不同的域名商,修改的方式不一样。如果你是在美国注册的域名,那么恭喜你,这里有一份详细的修改指南,你应该能找到属于你的域名商:http://www.google.com/support/a/bin/answer.py?answer=140034

上面的修改无需等待多久。一般几分钟就可以生效。

默认的后台登陆地址格式如下,比如cn-ic.org的后台地址:

https://www.google.com/a/cn-ic.org/

如果登录邮箱:

https://mail.google.com/a/cn-ic.org/

显然这样不够酷。

登录后台(https://www.google.com/a/your domain/),选择:

service settings->Email-> Email Settings->General->Web Address->Change URL,如下图,点选下面选项,改为如:mail.cn-ic.org

new_customURLs

设定完后,还需要在你域名注册商那里修改CNAME(Aliases)记录, 将mail.youdomain子域名指向 ghs.google.com

这样就可以使用http://mail.cn-ic.org这个网址来登录邮箱了。

Mail部分设定差不多了,其余的在登录Google APP后台很容易设定。其实标准版也有很多好玩的。慢慢玩:)

浙ICP备18056264号-1