2008年11月福州PEA活动召集

活动资料

活动详情
1. 活动时间
2008年11月22日 14:00
2. 活动地点
闽江学院软件学院(福州市晋安区长乐南路59号,市检察院对面)。
3. 参与人员
福州PEA成员、闽江学院软件学院教师代表及学生,预计到场人数20+。
活动议题及主讲嘉宾
《网站开放平台》                                戴志君        福建273
《高并发大型网站的负载处理》        张崇阳        上海第九城市
《项目管理及PHP的高级应用》        庄明芳        福建星网锐捷
活动流程(预案)
1.        开场阶段
1)        福州PEA常委介绍PEA
2)        主持人介绍本次活动流程
2.        研讨阶段
1)        《网站开放平台》
2)        《高并发大型网站的负载处理》
3)        《项目管理及PHP的高级应用》
3.        提问阶段:到场人员自由提问、交流。
4.        结束阶段
1)        发放纪念品
2)        活动结束
活动承办
主办:福州PHP策进会
协办:闽江学院软件学院学生会网络部

附录:活动召集资料
公交路线
1、乘坐16路、74路终点站闽江学院软件学院站下车。
2、乘坐8路,9路,29路,59路,76路,729路,802路,812路,948路,958路,到连潘站下车,沿国货东路往西至十字路口左拐进长乐南路直走即可。

报名:http://www.phpchina.com/bbs/thread-91418-1-1.html

Leave a Comment

手机号码归属查询mysql库数据提供

这个好不容易从access导过来的哦,希望有人有用

查询代码就不需要了吧,截取手机前7位(substr),然后查询

SELECT * FROM `car_mobile` where num=’1396086′

下载

Leave a Comment

再扯一下extjs

很久没碰extjs了,主要原因应该可以说不实用。

顺便谈谈几个问题,这些问题都是在我们中国的大环境下的基础上做B/S软件:

1.臃肿,速度慢

使用extjs最基本就要加载那好几个js了,extjs做出的在界面在我使用上明显慢,我们要知道国内的网络带络还是小的可怜的,一般2M大多时候都无法达到。不要以为现在的电脑配置都很高了,要知道在企业中,因为pc数量大所以不可能有快的硬件更新。

还是比较喜欢jquery这样的插件形式,就是你要做什么功能再包含一个插件过来。

总得来说extjs开发出来的东西可能在很多用户的电脑上跑不动。

2.开发门槛高

中国本身做web开发的开发人员整体素质来来说不是很高,写一些js代码也些可能都难,更不要说extjs这么完美的面象对象的理解。普通功能确实可以看看例子就是能简单的掌握,到真正的应用中需要很多功能的的整合就折腾的够呛,就别说写护展了,写不了扩展灵活性就差了。就比如说我要在应用上用extjs我会还不行,要教整个团队会用,就算大家都能学会,也会浪费很大的时间成本。

我很不喜欢过度封装,在我感觉上extjs在封装上就有点over了,也不知道是不是我不会用。发现用了extjs就很难自己排版了,可能也被它给误导了。

总得来说我们玩不起呀。

3.协议

目前关于extjs的开源协议修改也是个话题了,它已经让人越来越不放心去使用了。

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

其实等到真的extjs可以用的时候我想html5的标准也要出来了,浏览器内置的控件肯定比我们js去实现要简单高效的多。

myois项目一直停滞和当时选用了extjs有关系,开发进度很慢,我花在extjs上的时间基本上是php的好几倍,另一方面也没有人加入开发。

欢迎讨论,别拍砖。

Tags:

Leave a Comment

我的十年感言

1998年:那时候初中毕业,青春萌动的日子,多么单纯
1999年:上高中了,发现小聪明用不上了,书读的一踏糊涂
2000年:那时候的梦离现在很远,现在离那时候很远
2001年:那时候要高考了结果开始上网了,就有了第一个QQ号码
2002年:开始正式学电脑,和电脑算是缠上了
2003年:大学这几年是最快乐的日子,大家瞎混着,可惜我们再也回不去了
2004年:开始工作了,进入社会后才发现什么是真正的烦恼
2005年:也算是运气好,也算是运气不好,总算工作这2年也算有长进
2006年:忽悠,是你忽悠了我,还是我忽悠了你,靠自己实实在在
2007年:新的工作,新的开始
2008年:人生就像是爬一座高山,很努力去爬结果回头一看,还在山脚,也许你永远也到不了山顶

——————————————–
很有兴致的写了一下,结果腾讯让我很扫兴的写了两遍,10年了很不应该出现这么低级的错误呀

Leave a Comment

企业网站做给谁看?

这个问题回答无疑是:用户。

最近做一个企业网站,可以说快做到极至。我从没见过一个企业网站做到这种程度的,“过了”这是我想说的。

我们来分析下,企业网站到底做什么用。

  1. 企业形象展示
  2. 企业相关信息展示
  3. 企业产品展示

总得来说就是在网络上的一种媒介,无非就是告诉人家,你是什么样的公司做什么产品,很简单。

那要怎么做:

  1. 简洁清爽的界面
  2. 直接了当的文字说明
  3. 详细的产品展示
  4. 友好的SEO

其实就是用最简单的页面把最有效的信息展示出来就行了,至于SEO就是希望更多的人能从搜索引擎找到你。

至于如果需要用到程序只要有一定的安全性就行了,什么效率之类的都不重要,不至于被黑破坏形象,所以最好能静态的就静态。

之所以可以说做一个企业网站只要做到这些就好了,根本不需要考虑有多花翘的界面和功能。那些都是多余的。我们做网站要考虑的真正使用到的是你的用户,不是你自己,你觉得的问题有时并不是问题。考虑的过多反而可能将带给你的用户更多的不便。

以上内容突然发的牢骚,希望想做网站的一些企业可以看到,也希望有人可以一起发表看法。

Comments (2)

PHP面试题汇总

这是一份比较全面的PHP面试题.对准备去新公司应聘PHP职位的开发者应该有帮助.
或者说,对招聘PHP开发人员的企业也有些帮助,不过就不要原样打印出来考了,稍微改一改.

简述题(50分)

1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分)

2、echo(),print(),print_r()的区别(3分)

3、能够使HTML和PHP分离开使用的模板(1分)

4、使用哪些工具进行版本控制?(1分)

5、如何实现字符串翻转?(3分)

—————————————————————

6、优化MYSQL数据库的方法。(4分,多写多得)

7、PHP的意思(送1分)

8、MYSQL取得当前时间的函数是?,格式化日期的函数是(2分)

9、实现中文字串截取无乱码的方法。(3分)
[Read the rest of this entry...]

Leave a Comment

安全编程法则

版权声明:可以任意转载,但转载时必须标明原作者charlee。
原始链接:http://tech.idv2.com/2008/04/19/secure-website-checklist/

标有 (*) 的检查项目表示该项是针对相关问题的根本解决方法,应当尽最大努力去完成这些内容。 未标 (*) 的项目,表示该项并不能完全消除安全隐患,只是说通过这种方法可以避免发生安全问题。

  1. SQL注射
    1. (*) 在组合SQL语句时要使用SQL变量绑定功能
    2. (*) 如果数据库不提供变量绑定,那么需要对构成SQL的所有变量进行转义
    3. 不要将错误信息原封不动地显示在浏览器中。
    4. 为访问数据库的用户设置适当的权限。
  2. 操作系统命令行注射
    1. (*) 避免使用能启动shell命令的语言
    2. 使用的语言如果允许启动shell命令,则需要对该功能的参数种的所有变量进行检查,确保只包含合法的操作
  3. 不检查路径名参数/目录遍历
    1. (*) 不要将外部传进来的参数直接作为文件名来使用
    2. (*) 将打开文件的操作限制在固定的目录中,并禁止文件名中包含路径
    3. 为Web服务器上的文件设置正确的访问权限
    4. 检查文件名
  4. 会话管理的问题
    1. (*) 用难以推测的内容作为会话ID
    2. (*) 不要在URL中保存会话ID
    3. (*) 为https协议中使用的cookie设置secure属性
    4. (*) 登录成功后生成新的会话
    5. (*) 登录成功后,在会话ID之外再生成一个秘密信息,每次访问页面时都检查之
    6. 不使用固定值作为会话ID
    7. 将会话ID保存到Cookie中时,要设置有效期限
  5. 跨站脚本攻击(XSS)
    • 不允许输入HTML内容时的解决方法
      1. (*) 输出到页面上的所有内容都要转义
      2. (*) 输出URL时仅允许以“http://”或“https://”开头的URL
      3. (*) 不要动态生成<script>…</script>的内容
      4. (*) 不要从外部网站读入样式表
      5. 检查输入内容
    • 允许输入HTML内容时的解决方法
      1. (*) 解析输入的HTML内容,生成解析树,然后提取其中的非脚本部分
      2. 使用脚本删除输入的HTML内容中的相关字符串
    • 通用解决方法
      1. (*) 应答的HTTP头重指定Content-Type的charset属性
      2. 为避免Cookie情报泄漏,应禁止Trace方法,并对所有Cookie设置HttpOnly属性
  6. 跨站请求伪造(CSRF)
    1. (*) 所有页面都通过POST来访问,在前一页面的hidden中随机生成一个信息,提交后的页面检查该信息,正确时才予以执行
    2. (*) 执行业务之前再次要求输入密码
    3. (*) 确认Referer是否正确,只有正确时才执行
    4. 执行重要操作时,向预先设置的邮件地址中发送邮件
  7. HTTP头注射
    1. (*) 不直接输出HTTP头,而使用运行环境提供的头信息输出API
    2. (*) 无法使用API时,要禁止输入的头信息中的换行
    3. 删除所有外部输入中的换行
  8. 邮件盗用(通过某种手段使邮件发送到攻击者指定的地址)
    1. (*) 不使用外部参数作为邮件头信息
    2. 必须用外部参数设置头信息时,要删除其中的危险字符。

Tags: ,

Leave a Comment

js取得文档的高度和宽度

网页可见区域宽:document.body.clientWidth
网页可见区域高:document.body.clientHeight
网页可见区域宽:document.body.offsetWidth (包括边线的宽)
网页可见区域高:document.body.offsetHeight (包括边线的宽)
网页正文全文宽:document.body.scrollWidth
网页正文全文高:document.body.scrollHeight
网页被卷去的高:document.body.scrollTop
网页被卷去的左:document.body.scrollLeft
网页正文部分上:window.screenTop
网页正文部分左:window.screenLeft
屏幕分辨率的高:window.screen.height
屏幕分辨率的宽:window.screen.width
屏幕可用工作区高度:window.screen.availHeight
屏幕可用工作区宽度:window.screen.availWidth

Comments Off

PHP负载均衡指南

原文作者:Adam Charnock
原文链接:The Hitchhikers Guide to PHP Load Balancing
翻译:koda

过去当运行一个大的web应用时候意味着运行一个大型的web服务器。因为你的应用吸引了大量的用户,你将不得不在你的服务器里增加更多的内存和处理器。

今天,’大型服务器’模式已经过去,取而代之的是大量的小服务器,使用各种各样的负载均衡技术。这是一种更可行的方法,将使硬件成本降至最低。

‘更多小服务器’的优势超过过去的’大型服务器’模式体现在两个方面:

  1. 如果服务器宕机,那么负载均衡系统将停止请求到宕机的服务器,转而分发负载到其他正常运行的服务器上。
  2. 扩展你的服务器更加容易。你要做的仅仅是加入新的服务器到负载均衡系统。不需要中断你的应用运行。

所以,把握住这个机会:). 当然,代价就是这要求你的应用开发时增加一点复杂度。这就是本文要覆盖的内容。

这时你可能对自己说: ‘但是我怎么知道我正在使用负载均衡呢?’。最诚实的回答是,如果你正在问这个问题,那么答案是你多半没有在使用负载均衡系统并且你的系统不需要考虑这个 问题。大多数情况,当应用成长足够大的规模时,负载均衡就需要明确提出和设置了。然而,我也偶尔看见虚拟主机公司为客户的应用做这个负载均衡,或者像下面 描述的那样要自己来做。

在继续下面的内容之前,我要指出本文主要描述PHP的负载均衡。将来我可能会写有关数据负载均衡的文字,但是现在你必须等待。

注意,我一直提“web应用”而不是website,这是想区分’web应用’是那些复杂的站点往往涉及服务器端编程和数据库,而不是website那样只显示简单的静态内容。

1. PHP文件

第一个问题是,如果你有大量的小型服务器,你怎么把你的php文件上传到所有的服务器上?有如下的方法供你参考:

  1. 分别上传所有的文件到每一个服务器 , 这种方法带来的问题是:想像一下你有20个服务器,那么上传过程中这将很容易导致错误,并且更新时极有可能导致不同服务器上有不同版本的文件。
  2. 使用 ‘rsync ‘ (或类似的软件) . 这样的工具能同步本地目录和多个远程主机目录上的文件。
  3. 使用版本控制软件(如subversion ) . 这是我最喜欢的方法。用它可以很好地维护我得代码,当发布我的应用时,可以在每一个服务器上运行svn update命令同步。这种方法也使切换服务器得代码到过去的某一个版本更加容易。
  4. 使用一个文件服务器(你可能发现NFS 非常适合做这件事情). 这种方式是使用一个文件服务器来存放你的web应用. 当然,如果你的文件服务器宕机,那么多所有你的站点将不能使用。这时,你就需要花费更多的开支来恢复它。

选择哪种方式依赖于你的需求和你掌握的技能。如果你使用版本控制系统,那么你可能得计划一个方法如果同时执行一个更新命令更新所有服务器上的代码。然而,如果使用文件服务器,你就要实现一些失败恢复机制,防止万一服务器宕机导致请求失败。

2. 文件上传

当只有一台服务器时,文件上传不是一个问题。但是当我们有多台服务器时,那么上传的文件应该怎么存放呢?上传文件的问题和跨服务器php文件存储是类似的。下面是几种可能的方案:

  1. 把文件存储到数据库中 。大多数数据允许存储二进制数据。当你请求文件下载时,访问数据把二进制数据和相应的文件名和类型输出给用户。在使用这种方案前应该考虑数据库怎样存储你的文件。该方法的问题在于如果数据库服务器宕机将使文件不可用。
  2. 在一个文件服务器上存储上传的文件 . 与前面的介绍一样,你要安装一个文件服务器让所有web服务器共享,把所有上传的文件上传到这里,上传后所有的web服务器就都可以使用它。但是,如果文件服务器宕机,那么可能发生图像文件下载中断。
  3. 设计你自己的上传机制传输文件到服务器到每一个服务器 . 这个方法没有单个文件服务器或者数据库方案的缺陷,但是将增加你代码的复杂度。例如,如果上传到多个服务器过程中,服务器宕机,你要怎么处理?

用数据库存储上传文件但是设计一个文件缓存机制是一个不错的方案。当服务器接收一个文件下载请求时,首先检查缓存系统中是否有该文件,如果发现那么从缓存系统下载,否则从数据库读取并把它缓存到文件系统中。

3. 会话(Sessions)

如果你熟悉php的session处理,你将可能知道默认情况下,它存储session数据在服务器的临时文件里。而且,这个文件仅仅在 你请求处理的那个服务器上,但是接下来的请求可能被另外一个服务器处理,这将在另一个服务器上生成新的session。这导致session频繁地不被识 别,如登录用户总是要求重新登录。

我推荐的方案是,要么重新php内建的session处理机制存储session数据到数据库,或者实现你自己的机制保证发送一个用户的请求到同一台服务器。

4. 配置(Configuration)

尽管这个话题不是和php特别相关,我感觉还是有必要提及。当运行集群服务器时,用某种方法保持服务器之间的配置文件同步是一个好主意。如果配置文件不一致,可能导致一些非常奇怪的断断续续的行为导致很难排查这些问题。

我推荐使用版本控制系统单独管理他们。这样你可以为不同的项目安装存储不同的php配置文件,也可以保持所有服务器配置文件同步。

5. 日志(Logging)

像配置问题一样,logging不是仅仅和php相关。但是对于保持服务器健康运行它仍然是非常重要的。没有正确的logging系统,你怎么知道如果PHP代码开始产生错误(在系统正式运行时,你总是关闭display_errors 设置,不是吗?)

有几种方法你可以实现logging:

  1. 在每一个服务器上记录日志。 这是最简单的方法。每一个机器仅仅记录一个文件。好处是简单,可能只要很少的配置。但是,随着服务器数量的增多,监控每台服务器上的日志文件将变得非常困难。
  2. 记录日志到一个共享 这种方法每一个服务器仍然有这个日志文件,但是他们通过共享机制被存储在一个中央文件服务器上,这将使监控日志变得更简单。该方案的问题在于,如果文件服务器不可用将导致一个简单的日志不能写入问题最终导致整个应用崩溃。
  3. 记录日志到logging服务器 你可以使用一个logging软件,如syslog 来把所有的日志写到一个中央服务器。尽管这个方法要求更多的配置,但是他也提供了最健壮的方案。

Comments Off

以后你可能想看A片,打开网页显示的就是A片页面

淘宝最新一次改版,将导航区进行了一次大手术,把当年从ebay家一直延续下来的c2c的习惯改了,logo放在了中间,突出了搜索。尽管用户褒贬不一,但最终用户的“习惯”被淘宝渐渐收复,用户不再骂娘了,因为经过几秒的寻找,用户找到了更方便的通道,何乐而不为呢。

这次入版更为屌的是,对不同的用户群所调用的页面也不同,这不同于sns,也不是tom这样的 个性定制,而是主动的对用户进行差异对待。说白了就是你去LV专卖店,服务生看你是老顾客,主动迎上来说:“X小姐,你好……“,于是把一个假包包卖你 了。如果服务生看你是生面孔,上来的第一句话:“小姐,你有什么需要”。卖给你真包的可能性很大,因为他希望你下次再来。这例子有点不恰当,LV卖假包包 也是让用户习惯之后产生信任感才能得逞的。

看图,如果你是第一次上淘宝,或者没有登陆过淘宝,它调用的页面如左图,内容上更多偏向噱头和 引导,详细类目也精简了。对于新用户来说吸引你注册,最快的方式告诉你从那里注册,而对于老用户来说,“快速注册”这等按钮是浪费空间。于是老用户登陆后 看到的是“淘宝商城”,目前淘宝重推的盈利项目。

个性化一定是未来web体验的趋势,而主动的去适应比让用户定制更具竞争力。如果网站能够跟据用户习惯行为进行分析,提供一些用户非常顺手意外而不意外的体验,用户岂不更忠诚于你。

以后你输入“苹果”,反馈给你的不是“苹果电脑”,也不是“红富士”,而是苹果汁,因为我经常上网买果汁。

原:http://blog.19lou.com/10143366/viewspace-1520453

Comments Off