月度归档:2011年07月

Call-time pass-by-reference has been deprecated In

Warning: Call-time pass-by-reference has been deprecated in E:PhpWebSiteMyPHPUpload.Class.php on line 154
用PHPNow搭建建站环境的注意了。
如果你写代码的时候出现这个问题,按下面方法处理:
找到PHPNow安装目录Phpnowphp-5.2.14-Win32 下的php-apache2handler.ini文件
修改文件中的

allow_call_time_pass_reference = Off

allow_call_time_pass_reference = On

即可

芈八子 – 宣太后

芈(mǐ)八子:这个女人简直可谓不羁的烈马!她就是大名鼎鼎的秦宣太后——
太后称谓,始见于宣太后芈八子。宋代高承《事物纪原》(卷一)云:“《史记·秦本纪》曰:昭王母芈氏,号宣太后 。王母于是始以为称。故范睢说秦王有独闻太后之语。其后赵孝成王新立,亦有太后用事之说。是太后之号,自秦昭王始也。汉袭秦故号,皇帝故亦尊母曰皇太后也。”
太后专权,也自宣太后芈八子。宋代陈师道《后山集》(卷二二)云:“母后临政,自秦宣太后始也。”她以太后身份统治秦国长达三十六年之久,而且大大发展了国力,“东益地,弱诸侯,尝称帝于天下,天下皆西向稽首”(《史记·穰侯列传》)。
芈姓乃楚国的国姓。可想而知,宣太后芈八子是当时楚王的姐妹之一。秦国后宫分八级:皇后、夫人、美人、良人、八子、七子、长使、少使。这位芈八子在老公秦惠文王在世的时候,地位并不高,也谈不上多么得宠。至于她连生下三个儿子,那也很有可能是“无意插柳柳成荫”。当然,更大的可能是她确实还是比较得老公喜欢的(以她的性格,这种可能更大),所以招得惠文王嫡妻秦惠文后醋劲大发,千方百计要收拾芈八子,以至于老公一死,秦惠文后就和继位的儿子秦武王合谋,将芈八子的宝贝儿子嬴稷送到燕国去当了人质。眼看这母子俩的人生将要黯淡收场,事情却来了个一百八十度大转弯,前途一片光明。
关键问题出在继位的秦武王身上。他是一个草包,非常鲁莽,几乎没有为王的素质。堂堂的一国之君,干什么不好,偏偏喜欢跟人比力气大。当然,秦人尚武,但是这位秦武王未免太过于发扬光大了,不但每天亲近力士莽夫,把他们一个个地封成大官,而且还要他们较劲。任鄙、乌获和孟说等人皆因力大而得高官厚禄。秦武王在位不过四年即与孟说(力士)举鼎绝膑而死。秦武王无子,国人迎为质于燕的芈八子之子稷(则)而立之,是为秦昭王(一作秦昭襄王)。芈八子被尊为太后,史称宣太后(号)。秦昭王年少,宣太后主政,以楚人魏冉(宣太后异父长弟)为将军,以樗里疾为相,控制了秦国军政大权。魏冉的将军之职,为秦置将军之始,也算是宣太后的一个创举。不过,这时的政局是动荡不安的,秦武王诸弟争立,武王母(惠文后)、武王后及大臣拥立公子壮(武王弟)即位,称“季君”,与宣太后、魏冉对抗,内乱三年不止。秦昭王二年 (公元前三零五年),宣太后、魏冉尽诛公子壮、惠文后、昭王异母兄弟及大臣,逐武王后(魏女)回魏,“季君之乱”遂平。宣太后封同父弟戎为华阳君,封子显为高陵君、悝为泾阳君,形成党亲专政的格局,威震天下。秦国原来重用客卿制的传统被打破,这也是宣太后独具胆识之处,以其强有力的政治手腕,维护了国家统治的稳定。
历史记载了宣太后的政绩,同样也记载了她的风流韵事——
据《类聚》记载,魏冉被封侯于穰这个地方,所以称穰侯。穰侯举荐白起担任将军,为秦国打败了韩、魏、楚三国,攻取了魏国在黄河南边的属地,获得大大小小共六十余座城市。穰侯因此而专权独断,出入宫庭,与宣太后幽会。魏冉权倾一时,飞扬拔扈,以致国人只知道有穰侯,而不知道有秦王。由此可见,所谓的爱情具有自私和利他的双重品质。
不过,宣太后找情人很有原则:利国利家利己利民。她看前来朝贡义渠王年轻力壮,桀骜不驯,竟把色迷迷的目光投注在自己身上。秦惠文王在世时,义渠就已归附秦国,但因继位的秦昭王年幼无能,义渠虎视眈眈地注视着秦国,甚至明目张胆地侵扰边民,蚕食边土。出于无奈,宣太后宽衣解带,主动献媚。义渠王毫不客气地翻身上马,屁颠屁颠地耀武扬威,以为霸占她的阴道就能霸占秦国。宣太后心知肚明,日夜下套义渠王。只要义渠王稍微心不在焉,宣太后就红杏出墙,招蜂惹蝶,令其心无旁骛。不料,宣太后奉承义渠王三十年,直到秦国势力已经强大,直到义渠王无精打采,然后就在温柔乡中突然发难,杀掉已经被她浪费的义渠王,并切立刻派兵灭掉了戎狄。据说,和义渠王一同死掉的还有她和义渠王所生的两个儿子。(参见《汉书·匈奴传》)因此,秦昭王从不干涉宣太后找情人,宣太后就像脱缰的烈马随心所欲地寻欢作乐。
宣太后芈八子最让世人瞠目的,并不是她杀情夫夺地盘的事情,而是她而是她论政风格之自由奔放的程度。楚国不顾国际法,悍然出兵,进攻韩国雍氏,围城五个多月,韩国派遣尚靳出使秦国,希望秦国组建自愿军,雄纠纠气昂昂,跨过崤山,打击楚国侵略者。秦宣太后亲切地接见了尚靳。会谈中,尚靳表示:“秦韩两国是友好邻邦,两国人民有着深厚的历史渊源,楚帝国主义,进攻韩国的目的,是为了颠覆新兴的秦国,为了瓦解我刚刚诞生的封建主义阵营。秦国不能坐视不管。”宣太后对尚靳的发言表示赞赏,同时表示,秦国的国策部门,将会郑重考虑韩国的意见,尽快提上议事日程。宣太后在发言的最后,一针见血地指出:“想当年,先王搞我的时候,他把大腿压我身上,我就累得不行;他把整个身子压在我身上时,我却不觉得沉重,这是为什么呢?因为这样比较舒服。秦国出于人权考虑,也会帮助韩国抗击楚国这个邪恶轴心,但我国目前景气不好,兵不足,粮不多,解救韩国的军费开支,很成问题。如果我国全力以赴,每一支箭,就是几十两银子,打仗,就是拼经济。请转达贵国国王,出兵是可以的,但至少,先要给点什么,让我国舒服舒服。”宣太后同时通过尚靳向韩国国王表达了亲切的问候,并邀请韩国国王在他认为适当的时候访问秦国(参见《左传·僖公五年》)。两千年后,清朝大文豪王士桢批点宣太后:“此等淫亵语,出于妇人之口,入于使者之耳,载于国史之笔,皆大奇!”(《池北偶谈》)其实,秦国那时也被视作蛮族之邦,根本没有中原文明的种种计较,又因为这样的一种不计较,负累少,才能吞了六国,车同轨、书同文,顺利实现政治、文化和经济的统一。
宣太后曾有过许多的情夫,而最后一位也是最出名的是一位名叫魏丑夫的大臣。她喜爱魏丑夫,常常以共商国事为幌子,宣其入宫,以尽鱼水之欢。宣太后病重将死时传出命令:“为我下葬时,一定要魏丑夫殉葬。”魏丑夫闻讯十分恐惧。大臣庸芮帮助魏丑夫向宣太后进言:“人死了以后还有知觉吗?”宣太后回答:“没有知觉了。”庸芮进一步说:“如果人死后无知,那么您岂不是白白牺牲了心上人的性命?假如人死后有知,那么先王(秦惠文王)这几十年来,在地底下怒火已经积得够多的了,太后您去了阴间,补过还来不及,哪还有机会跟魏丑夫做爱?万一让先大王发现了这个小白脸,岂不是更要惹出大麻烦来?先大王可更是要大打出手啦!”宣太后一想,确有道理,于是应道:“你说得很有道理,就照你说的办。” (参见《战国策·秦策》)这才打消了把魏丑夫带去黄泉的主意,转而考虑自己身后的安全问题。

msxml3.dll错误,80070005拒绝访问解决方法

msxml3.dll错误,80070005 此问题一般出现在“采集程序”中。没错,本人的采集程序就出现了这样的错误。
方案一、适合对服务器有绝对管理权限者
解决办法:
赋予程序所在文件夹 internet 来宾帐号(IUSR_WEB)可写。
做法:
选择cachefile-属性-安全-添加(IUSR_WEB)-写入
方案二、更改程序(推荐方案)
用Msxml2.ServerXMLHTTP替换掉Microsoft.XMLHTTP
详细:昨天在采集某一个网站的时候,采集程序出错了。
是自写的采集程序。
经过搜索以后,查到一些没有用的结果,后来发现,用Msxml2.ServerXMLHTTP替换掉Msxml2.XMLHTTP,问题成功解决。
以下是分析排错过程。
老是采集一段时间就挂了,指定资源下载失败,或者拒绝访问。
后来直接全部是拒绝访问。
一开始,认为,对方服务器做了防采集设置,比如有时间限制之类的。
于是更改程序,原先是直接获取列表页,然后持续循环获得文章列表。改了采集文件结构,
原来是就一个文件,类,数据库连接,数据处理全部在一个文件里,再采集某一篇文章的时候,后天加了一个时间循环。等待5秒的。代码如下
sTime=Timer()
dTime=Timer()-sTime
do while dTime < 5
dTime=Timer()-sTime
loop
确实是能等待5秒钟,但是很快就发现,这个循环太过消耗CPU资源,一到这个循环,CPU占用率持续100%,于是马上放弃这个方案。
另做了一个文件。只根据文章URL抓取文章的相关内容并写入数据库,写入完毕后输出自动跳转代码。
核心思想就是用了
这是一个定时跳转的代码,相信大家都很熟悉。
我的原理做法就是,用一开始的文件,抓取所有的文章连接地址,以及相关导航代码,保存到数据库中。
然后用新做的抓取文章内容的程序,读取数据库记录,逐条进行采集。
数据库记录中有一个flag标记,tinyint类型,默认是0,采集成功更新为1,失败更新为2
这样,每次从数据库中读取一条未采集的数据,也就是读取flag=0的数据,进行操作。操作完毕等待5秒跳转到自身。
想法跟思路是很好的。文章URL数据库也采集准备好了,一上采集文章具体内容,又出错了。一直是msxml3.dll 错误 ‘80070005’
拒绝访问的错误。
那个郁闷,想开一晚上机器,自动采集,破灭。
今天早上来搜索查询资料,查询到的绝大多数都是无用信息。
基本上都是说权限问题。
msxml3.dll 错误 ””80070005””
拒绝访问。
解决办法:
赋予程序所在文件夹 internet 来宾帐号(IUSR_WEB)可写。
做法:
选择cachefile-属性-安全-添加(IUSR_WEB)-写入
都是这么说的。莫名其妙的,我的是FAT32的不存在NTFS格式的那种安全权限问题,IIS设置也正常,
我的问题是采集一部分就拒绝访问。肯定不是这个问题。
继续搜索,找到另一个方案说是,用Msxml2.XMLHTTP替换掉Microsoft.XMLHTTP,我本来用的就是Msxml2.XMLHTTP的
继续搜索。找到最终解决方案应该是用Msxml2.ServerXMLHTTP
其实有时候问题很显然,但是ASP的错误提示做不到那么详细。比如我自己的网站,知道是因为网络访问超级慢出现的错误,它却给出msxml3.dll出错的提示。木然!
 
 

Dreamweaver CS4&CS45重新打开文件关联窗口

第一次打开Dreamweaver ,就会让你选择关联哪些文件,如果这次没有选,似乎就不能再次打开这个窗口进行文件关联了,不过可以通过注册表修改,重新打开文件关联窗口。
Dreamweaver CS5注册表修改关联文件
打开HKEY_CURRENT_USERSoftwareAdobeDreamweaver CS5Settings,找到initialFileTypeDlg,把它的值修改为“FALSE”,重新打开Dreamweaver,文件关联窗口就会重新出现;
也可以把一下内容复制到一个*.reg文件中,直接导入即可

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USERSoftwareAdobeDreamweaver CS5Settings]
“initialFileTypeDlg”=”FALSE”

以上只适用CS5,如果是CS4,把上面的字段CS5改为CS4即可,其他版本的DW,也可以找类似的注册表值修改。

错误:ASP 0156 : 80004005

今天一客户联系我说使用的网站添加新闻等操作时候突然报错,提示为
答复对象 错误 ‘ASP 0156 : 80004005’
头错
/nanraocheng/news/admin_news_add_save.asp,行146
HTTP头已经写入到客户浏览器。任何 HTTP 头的修改必须在写入页内容之前。
到达现场后调试发现该ASP程序在本机调试错误,上传后即出现改错误,检测后得出结论为缓冲输出的错误,解决方法及原理如下:
原因是
iis5.0   默认使用网页缓存,pws或iis4.0(winnt系统)   默认不使用网页缓存   。
所以<%response.buffer   =   true%>放在顶部或response.redirect   语句放在任何html语句前面。即在使用Response.Redirect之前不要输出任何客户端(Browse)的   HTML   或   Script!
一般都是在最前面加上 <%response.buffer=true%>
 

使用ASP的Scripting.Dictionary对象打造完美购物车

一直不习惯用Dictionary,但是有时候却很有用。
Dictionary 对象
Dictionary 对象用于在结对的名称/值中存储信息((等同于键和项目)。Dictionary 对象看似比数组更为简单,然而,Dictionary 对象却是更令人满意的处理关联数据的解决方案。
比较 Dictionary 和数组:

  • 键用于识别 Dictionary 对象中的项目
  • 无需调用 ReDim 来改变 Dictionary 对象的尺寸
  • 当从 Dictionary 删除一个项目时,其余的项目会自动上移
  • Dictionary 不是多维,而数组是
  • Dictionary 与数组相比,有更多的内建对象
  • Dictionary 在频繁地访问随机元素时,比数组工作得更好
  • Dictionary 在根据它们的内容定位项目时,比数组工作得更好

Dictionary 对象的属性和方法描述如下:

属性
CompareMode:设置或返回用于在 Dictionary 对象中比较键的比较模式。
Count:返回 Dictionary 对象中键/项目对的数目。
Item:设置或返回 Dictionary 对象中一个项目的值。
Key:为 Dictionary 对象中已有的键值设置新的键值。
方法
Add:向 Dictionary 对象添加新的键/项目对。
Exists:返回一个逻辑值,这个值可指示指定的键是否存在于 Dictionary 对象中。
Items:返回 Dictionary 对象中所有项目的一个数组。
Keys:返回 Dictionary 对象中所有键的一个数组。
Remove:从 Dictionary 对象中删除指定的键/项目对。
RemoveAll:删除 Dictionary 对象中所有的键/项目对。

<%
Dim oDic,aItems,aKeys 
Set oDic = Server.CreateObject("Scripting.Dictionary")  '添加 
oDic.Add "aaa",111 
oDic.Add "bbb",222 
oDic.Add "ccc",333 
oDic.Add "ddd",444  '修改 
If oDic.Exists("aaa") Then 
  oDic.key("aaa") = "eee" 'key属性,只读 
  oDic.item("eee") = 555 'item属性,可读写 
End If  '列表 
aKeys = oDic.Keys 
aItems = oDic.Items
For i=0 To oDic.Count-1 
 Response.Write(aKeys(i) & "," & aItems(i)) 
Next  '删除 
Response.Write(oDic.Count) 
oDic.Remove("eee") '从 Dictionary 对象中删除键和项目对 
Response.Write(oDic.Count) 
oDic.RemoveAll() '删除 Dictionary 对象中的所有键和项目对 
Response.Write(oDic.Count)
Set oDic = Nothing
%>

购物车具体用法:

1、为客户建立购物车,名为shop
set session(“shop”)= CreateObject(“Scripting.Dictionary”)
2、检查客户当前购物车商品个数
session(“shop”).count=0
如果为0,那么自然表示购物车现在是空的
3、客户订购某一商品
session(“shop”).add id,num
id表示数据库中商品的ID或编号等,num表示客户订购此商品的
个数
4、客户查看购物车列表(客户确认当前已购买了的商品列表)
id=session(“shop”).keys
num=session(“shop”).items
以上2句均返回的是数组型数据,分别付给id(商品ID组)和num(
商品数量组)这2个变量
聪明的你马上就会想到只要通过循环把它们一一对应起来就OK了:
for i=0 to session(“shop”).count-1
…id(i)
…这里可以结构操作数据库把商品的信息取出来,通过操作商品编
号数组id(i)
do while not rs.eof
…num(i)
…然后循环结果集,使价格等与商品对应,通过操作商品个数数组
num(i)
rs.movenext
loop
next
数组的下标是从0开始,所以要count-1哦
这部可能有点乱,不过如果你有点经验的话应该是很容易读懂的。
5、客户更改某一商品的订购数量
session(“shop”)(id)=num
太简单了,我不多解释了。
6、客户删除某一商品
session(“shop”).remove(id)
7、客户清空购物车
session(“shop”).removeall