月度归档:2010年09月

Access denied for agent changed,uc错误解答

地址:xixian.ha.cn/home/space.php 汗点不开。我在快照里面看的。
主要东东》

UC/model/base.php 中校验的http_user_agent是在模拟提交的过程中的当前客户浏览器的user agent ,

如果在模拟提交过程中,没有将当前用户的useragent提交上去的话,那么UC在

uc/model/base.php 中的 init_input方法获取到的http_user_agent将会是应用服务器当前系统的默认useragent,

而不是客户端的http_user_agent,从而导致http_user_agent 校验失败,而无法正常通信。

附图一张:/uc_server/model/base.php  init_put()函数

======

还可以看看faq.comsenz.com/viewnews-204 的解答。

——————————————————————–

出现这样的原因是该应用的appid 与ucenter配置的应用项不相同造成的。修改本应用的config.inc.php里的UC_APPID与ucenter里的一致就好了。

不过这样有可能导致这样的错误Error:Unknown column ‘app1’ in ‘where clause’  可能是discuz的一个小bug吧。这个问题也有很多人问。

360需要的,不是打工者

周鸿祎,说的有些道理。

——在360新员工入职培训上的讲话

  我想给新入职的同事讲一讲我的期望,再提几个建议。我这个人喜欢说真话,不喜欢说漂亮话,因为漂亮话没用。但说真话,大家可能不爱听。

  首先,大家一定要明白,你自己来360到底想获得什么。

  我觉得,第一你一定得在360学到能力,学到本事才行,因为你将来要行走江湖,要成名立万,靠的就是能力和本事。在座的大多数既不是高干子弟,也不是富二代,跟我一样都是平民子弟。不少是第一代来北京的移民,唯一能依靠的就是自己的双手和头脑。

  你要想成功,本事是最重要的,其他都是虚的。公司有没有名气、午饭有没有鲍鱼、给你什么title,都是虚的。title这玩意最骗人了,你真 要想有个好title,我建议你回家自己开一个公司,自己就是CEO啊!可能还会有人说上班开不开心很重要,但在公司最艰苦的时候,你很可能不会开心。所 以,最重要的,是在于你在360能不能学到东西,能不能锻炼出能力。在360,只有有能力的人才能得到更多的资源和更大的舞台。

  换句话说,360只是一道门,现在它向你们打开了,但你能走多远,要看你自己能锻炼出怎样的脚力。

  可能有的人要说,我就想找个地方混一混。其实,一个公司大了以后,也一定有地方可以混,我也管不了每一个人。但是,我在互联网行业里干了十多年,看到了很多Loser。他们都是太聪明,把自己混失败了。大家一定要记住,混日子就是在浪费自己的时间。

  想一想,你35岁以后还能混么?那个时候会有更多的年轻人,他们比你更努力,比你更能干,要求也比你低。你要是没学到东西,没锻炼出来能力,他 们会代替你的。能力是不能混出来的,而是学习出来的,是锻炼出来的。结果,你在企业里只把年龄混大了,能力没有提升,那么你人生道路会越来越窄,也丧失了 你最好的学习机会。

  所以,如果你不喜欢360,你一定要尽快换,尽快找到自己喜欢的事情,找到一个值得自己去投入的事情,至少你不会浪费自己的生命。如果你选择 360,仅仅是因为公司的名气,就想混,吃亏的是你自己。想想,你再能混,能混我多少钱啊?你一年混我20万,5年一共也才混我100万啊,这对我来说没 什么,但是你在这里白搭了自己5年的时间。你5年的青春值多少钱?难道只有100万吗? 

  这话我不仅对新入职的同事说,对很多大学毕业生都是这么说的,是代表我个人的看法。即便你不是来到360,你去别的地方,也值得思考这个问题。

  你再看看你的周围,是不是也会发现有混日子的人?有些人在那里混,混得都离不开公司了,结果丧失了竞争力。要知道,靠自己省吃俭用攒出的工资,是攒不出一个人生来的。你要在360发财,有可能,前提是你的本事要达到一定的层次。

  有的人可能会问:周鸿祎有钱了,为什么干得这么带劲儿?我可以直截了当地告诉你,在360,我其实是在给大家打工。我做360这件事,是因为它让我激动,干这件事能大大地满足我的成就感。

  那么,在360到底能学到什么本事和能力?很多,比如好的方向、经验和执行力、领导力、沟通能力、团结别人的能力、市场营销的能力等等,有太多 的能力是你可以在360学习的。你可能又会说,在别的公司也能学到啊!我可以跟你说,你在360,掌握这些东西,学会这些本事,能比在其他公司时间更短, 速度更快。

  我也希望你们能拿到360的期权,这很简单,这是我们行业的规则。这个公司我不是大股东,投资人是大股东。我们所有员工的期权加起来也是一个很 大的比例。我们都希望公司最后能够上市,做到像百度和腾讯一样规模,有一个不错的市值。我也希望很多人能淘到第一桶金,解决你在北京买房子的钱还是有机会 的。

  但这些都不是从天上掉下来的。你在360必须要努力,必须要做得好,这样你才能锻炼自己的很多能力,成长的也很迅速。除了发财以外,你的能力和 本事还能给你带来影响力,给你带来好的声誉。现在,即使敌人提起我,都会说周鸿祎做产品很牛,现在互联网上做客户端做得好的,除了QQ,不是我做的,就是 我手下做的。但如果我手里没有东西,我天天在这里吹,说老周是中国最会做客户端的人,打死你都不会信。

  所以,只要你在360踏踏实实做下去,我相信每个人都有可能做成功一件事情。这件事可能很简单,比如说打补丁,但你做到极致就变得有价值。而这件事情就是你身价的最好证明。由于你有这样的经历,可能就有人愿意为你投资一千万。

  大家不要听完我说的话就跃跃欲试去创业。创业的机会时刻存在,但是成不成功取决于你的能力,取决于天时地利人和。在360,大家也能提高自己创 业的能力,也能结识自己创业的伙伴,也能获得一些创业的资源。也许几年之后,你在360告一段落了,你就真的可以去创业,去创办自己的公司了,那个时候你 从360淘到的,就不仅仅是第一桶金,那就将是你人生的第二桶金。所以我觉得,我们的所有员工只要你有能力,有这些经历,靠自己的双手、大脑和聪明才智, 就有机会获得或大或小的成功。

  成功是需要时间积累的,我95年研究生毕业,刚来北京也是从一无所有、一穷二白。到方正之前,我其实也创过业,但是没有成功。所以我得出一个经 验:做公司很容易,把公司做成功很难。我决定在方正公司踏踏实实工作几年,那几年我不仅仅是在为公司打工,我更是在为自己积累经验。所以,我在公司认真地 做好我该做的事情,甚至还做了很多公司没想让我做的事情。我客观上为公司做了很大贡献,但实际上我个人是最大的受益者,因为我得到了很多锻炼,我做事的能 力提高了很多。如果没有这个经历,我是没有能力出来做3721的。

  我在雅虎的时候,大家觉得我是个职业经理人。职业经理人是什么形象?整天西装革履的,说着洋文,执行总部的指令。我在雅虎打工,本来也是可以混 的,这样还能拿到一大笔钱,但是我不想混,不愿意混呢。我觉得我的时间宝贵,在雅虎混时间久了,我就和这个行业脱离了。所以,在雅虎我也是一样怀着创业的 精神,在努力地做事,把搜索、门户、邮箱做起来了。我努力地提高自己的能力、经验和见识,这才使我之后有能力去做投资,做奇虎,做360。

  你们面前摆着很多的机会,但我可以告诉你,360就是在你们眼前最好的一个机会。当然,你可以去腾讯,去百度,去淘宝,但这三座大山已经很成功 了,已经具有了很大的规模,你在那里更多会成为一个螺丝钉。现在的360不是一个上市公司,未来会有很多的机会等着你,你可以在其中做出很多的贡献,拿到 公司的股票和期权。但你能不能把握住这个机会,取决于你的经验和能力的积累。所以,大家不要以打工的心态在360工作,我这里不需要打工的。

  我希望大家来360,是和我合作几年。无论以后是否还在360工作,大家都能够在360做成一些事情,在能力上能够有所提升,这就是我的期望。

  我希望大家在360是抱着一种给自己干的心态,积累你的知识,积累你的经验,积累你的能力。这也是我自己这么多年来在北京,在这个行业里屡败屡战之后的一个深刻的体会。

  另外一点、我希望你在公司做事,一定要争取把一件小事情做成大事,通过做这件事情你也能得到成就感。如果有一天你开一家公司,也许很挣钱,但不 一定能很有成就感。当你挣到你的第一个一百万之后,你会很有成就感。挣到你的第一个一千万之后,你会很有成就感。但再往后,就变成了一个数字的游戏了,你 就没感觉了。

  但是,今天我们大家聚在一起,我们完全有能力做出来一个影响中国几亿人的产品或者服务,这种成就感会让你一辈子都感到骄傲。甚至你有孩子的时 候,有一天他问你:“你年轻的时候为互联网做了什么?”你就会很骄傲指着电脑上的360说:“你老爹当年就是干这个的。”这样,不仅你自己感到骄傲,他也 会为你感到骄傲。

  我觉得,人的一生不一定能干成某一件大事,但是一定要去追求,或者和别人一起干成一件非常大的事情。我希望未来大家提到我,会说我做了很多事 情,或者成功,或者失败。但我更希望大家能说我干成了360,让中国互联网更加的安全。我颠覆了一个时代,我创造了一个新的网络安全的时代。

  几年以后,当大家想起我今天的话,我希望大家不要感到后悔来到360,至少你在360学到了很多东西,然后通过自己的努力在360挣到了钱,然后通过自己做成一件事有了成就感,同时也建立了自己的影响力。

  最后,我想说的是,大家一定要保持一个好的心态。你进公司时,可能由于面试的仓促,交流不充分,给你的职位低了点,给你定的工资不像你期望的那 样高,但我觉得你今天拿的工资并不代表你的身价。只要你锻炼出能力,有了本事,即使360没有给你发挥的空间,你不用天天发牢骚,你完全可以用你在360 学到的本事,选择其他公司,去创造一个更加美好的未来。

  当年我在方正的时候,我学到了我所需要的能力,当我认为它不能够再给我更好的成长平台时,我可以毫不犹豫放弃它。相反,如果你没有能力,选择在那里混,你永远没有勇气选择放弃一家公司。要记住,勇气不是个性,勇气不是脑袋发热,勇气是由实力构成的。

  在座的各位今天你们拥有的更多是潜力,而不是实力,我希望在未来的几年时间里,大家把自己的潜力转化为实力。也许,在我们当中,会产生很多新一 代的互联网精英,这完全有可能,因为互联网的未来毫无疑问是属于年轻人的。所以,我未来的梦想,就是在360成功之后,专注地去做投资人,帮助更多的年轻 人去获得成功。

  人力资源部常常劝我不要和大家谈创业,怕大家想着创业,第二天就辞职回家办公司了。我和大家讲,创业其实是一种精神,是一种心态。创业有很多种 形式,不是只有自己办公司、自己当老板才叫做创业。当你的人生还处于起步阶段,你还不具备足够的经验和能力,就需要给人当学徒,需要学习和积累,其实这个 过程也是创业。

  也许你想干一件很大的事情,但要借助很多资源,这时候你可以在公司内部创业。我们公司有很多人是在360内部创业,他们为什么放弃了自己的小公 司来到360?因为他们无论再努力,但由于没有足够大的平台,无法将事情做大。所以,他们现在追求的不是能得到多少钱,而是先做成一件大事,为他以后再独 立做事打下基础。

  今天,360还是一个创业公司,不是一个大公司,更不是一个国际化的企业,我们就是一个创业公司。我们内部有很多创业团队,我希望加入进来的各位成为合格的创业者,和公司一起创业,在这里要学习到创业的能力,打造自己的基石,这是我的期望。

  谢谢大家!

80后偷偷干过的“无聊”趣事

 
用手插入米缸的米里面……插来插去


在硬币上面铺张纸,然后用铅笔在上面涂,描个形出来


吃完糖果之后,将糖纸包回原本四四方方的形状出来

 
把画着“小乌龟”的纸条贴在同学的背后
 
踩别人的影


出电梯前把所有楼层的按钮全按一遍,然后若无其事地离开


下雨时打伞,总是故意地转那把伞


在街上见到狗就扮猫叫,见到猫就学狗叫

 
看见路上的地砖,故意隔一格跳过


用镜面反射太阳光,在教室照来照去


在超市里面踩着购物车行走

 
从后边拍别人的左肩,站在别人右边
 
下楼梯时坐在扶手上面滑下来


用萤光笔油指甲


家里没人时,对着镜子学跳舞、演戏、唱歌


家电包装里的那张有很多泡泡的塑料膜,把泡泡一个一个按破

php配置optimizer&&debuger;

zend_extension="D:\Program Files\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"
zend_extension_ts="D:\Program Files\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"

zend_extension_manger.optimizer="D:\Program Files\Zend\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0"
zend_extension_manager.optimizer_ts="D:\Program Files\Zend\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0"

zend_extension_manager.debug_server="D:\Program Files\wamp\PHP\debugger"
zend_extension_manager.debug_server_ts="D:\Program Files\wamp\PHP\debugger";

【转】Error:Unknown column ‘app1’ in ‘where clause’ 解决方法

原帖:Error:Unknown column ‘app1’ in ‘where clause’ 解决方法

现象:后台设置更新后显示:
Error:Unknown column ‘app1’ in ‘where clause’
Errno:1054
SQL::SELECT * FROM `rac`.cdb_uc_notelist WHERE closed=’0′ AND app1<‘1′ AND app1>’-5′ LIMIT 1

解决方法:
修改根目录config.inc.php
最后几行
例:
define(‘UC_API’, ‘http://bbs.xxxxx.cn/uc_server’);
define(‘UC_CHARSET’, ‘utf8’);
define(‘UC_IP’, ”);
define(‘UC_APPID’, ‘8’);
define(‘UC_PPP’, ’20’);

将 define(‘UC_APPID’, ‘8’);

修改为 ucenter里discuz7 所属ID

比如:define(‘UC_APPID’, ‘1’);

==
由于是多应用的结果导致,具体原理是因为_uc_notelist里面缺少字段的原因(缺少的就是该应用的appid字段)解决方案就是uc配置信息里面修改define(‘UC_APPID’, ‘8’); 这是我的appid数为8,修改为自己的discuz的appid;我的discuz的appid是1;即改为define(‘UC_APPID’, ‘1’); 就ok了。

关于评论的无限引用结构的一点认识

前几日,需要做到一个评论系统;要求在普通的评论功能基础上加上,能够无限引用的功能,即“盖楼”。那就做吧。。。

首先普通的评论,很简单;知道数据库设计的一般都知道。但现在是需要类似“盖楼”这样的情况;所以,没了头绪,Google,baidu。

找到一篇牛人文章:自反+递归 实现评论的无限引用 
不得不说牛人就是牛人,对数据库表设计真是的很有见解的。大家可以去看看,现在结合我所面对的说我自己的理解吧(当然是看过这篇文章后额。^-^)

术语:初始评论:表示这个评论没有引用其他任何评论。
引用评论:表示这个评论包含对其他评论的引用。  (引用自以上博文)

类似“盖楼”的评论结构,大体上有两种模式。

一、传统模式
如下表结构:

Cm_feedback         留言表

              Id    

              Article_id    –文章id

              Archive_title  –文章标题

              Userid   –用户id

              Username  –用户名

              Ip   –ip

              Ischeck   –是否审核

              Dtime    –发表时间

              Good    –支持数

              Msg     –留言内容

效果图

这个评论存储不论是初始评论,还是引用评论都存放到msg这个字段中。这样的好处就是方便存储,业务逻辑清晰,存入取出;不合理的地方呢就是要是某条评论被删除了,但某条评论的引用中却还存在这段内容。所以这样审核就比较关键,要保证展示出来的评论,都是能够被引用的。如果是十几楼,二十几楼这样很多的内容,那么都是重复的,所以就很占数据库空间;其次这些都是html代码,所以存入数据库时还要把html正则匹配替换为分隔符,然后再存入数据库;所以缺点也是很明显的。
示例:
css
<style type="text/css" >

*{margin:0;padding:0;}

body{margin:10px;font-size:14px;font-family:宋体}

h1{font-size:26px;margin:10px 0 15px;}

#commentHolder{width:540px;border-bottom:1px solid #aaa;}

.comment{padding:5px 8px;background:#f8fcff;border:1px solid #aaa;font-size:14px;border-bottom:none;}

.comment p{padding:5px 0;}

.comment p.title{color:#1f3a87;font-size:12px;}

.comment p span{float:right;color:#666}

.comment div{background:#ffe;padding:3px;border:1px solid #aaa;line-height:140%;margin-bottom:5px;}

.comment div span{color:#1f3a87;font-size:12px;}

</style>

html
<div class=’comment’>

<p class=’title’><span>2008-3-24 16:33:49 发表</span>内蒙古网友</p>

<div>

<div>



<div><span>广州网友 原贴:</span><br />

向马XX同志荣升台湾省省长表示祝贺!

</div>



<span>四川网友 原贴:</span><br />

四川人民发来贺电!

</div>



<span>陕西西安网友 原贴:</span><br />

陕西网友发来贺电  

</div>





<p>内蒙网友发来贺电</p>

</div>

共同点是明显的。我是这样匹配的。
{quote}

{quote}



{quote}

{title}广州网友 原贴:{/title}

向马XX同志荣升台湾省省长表示祝贺!

{/quote}



{title}四川网友 原贴:{/title}

四川人民发来贺电!

{/quote}



{title}陕西西安网友 原贴:{/title}

陕西网友发来贺电!



{/quote}



{content}内蒙网友发来贺电{/content}

就是  <div>  => {quote} ; </div>  =>{/quote} ; <span> => {title}  ;</span><br/>  =>{/title}  ;<p>  =>{content} ;</p> =>{/content}  一一对应。
这个方案的优缺点:
优点:1、方便存储很写入,
2、业务逻辑清晰简单,写入,取出。
缺点:1、占用数据库空间;
2、html代码正则匹配有点麻烦。
3、不能删除已被删除评论的引用内容。

虽然比较麻烦。但是我还是采用了这个模式。关键还是业务逻辑比较简单,服务器压力比较小。

二、自反模式:
先看表结构:

Cm_feedback         留言表

              Id    

              Article_id    –文章id

              Archive_title  –文章标题

              Userid   –用户id

              Username  –用户名

              Ip   –ip

              Ischeck   –是否审核

              Dtime    –发表时间

              Good    –支持数

              Msg     –留言内容

              commentid  –评论id 

可以看到表结构和上面比起来,就是多了一个commentid字段。这个字段就是本身的外键,相当于自己引用自己。初始评论的commentid默认为0,而引用评论的commentid则是对应的其他评论的id。默认为0时,只有评论内容,不包含引用分隔符。commentid不等于0时,则查找commentid=id的评论,然后再次验证被查找id评论的commentid是否为0,如果为0则停止;果然不为0则继续查找,直到找到commentid=0的评论记录为止。

业务逻辑:
写出一方法或函数。据id 来获取对应的记录,即可获得commentid的值;然后判断commentid是否等于0,如等于则退出返回记录显示;如不等于则把commentid作为参数调用方法或函数本身。即递归。
示例:
//返回一条评论记录
function getComment($id){

             return $rs;             
}

//递归函数,调用getcomment()
function comment($id){

$rs = getComment($id);

          if( $rs[‘commentid’] ==0){         //初始评论

                     return $rs;

          }else{

                    $rs = comment( $rs[‘commentid’]);

                    $comm[] = $rs;

                    return $comm;

          }

}

commentid!=0这个情况,那么这个$rs应该存放在一个list中。在php里即数组中,那么就存放在数组$comm中;$comm就是一个二维数组了。而这些返回的二维数组然后再与只有一条评论的记录组合成一个数组,即初始评论与引用评论这个二维数组一起组合成为一个新的数组,从而把这个数组返回到前台页面展示;相当于把引用评论的二维数组当做了一条普通的评论记录,在页面展示中在加上上面的html。
这个也是我自己的想法,不知道是否与上面的大牛有出入,仅供各位参考,如有不正之处,请指出。

第二方案优缺点:
优点:1、很方便的管理每一条评论。如审核不当也可以随时删除该条评论。
2、数据库空间占用很小;不存在评论内容重复情况。
缺点:1、因为使用的递归操作,如果有几十楼层那样的情况,那么会很占服务器资源。
2、逻辑不是那么清晰;个人感觉很绕人。