Monthly Archives: March 2014

最近需要给一个Ecshop的网站添加QQ登录的功能。大致的需求是这样的:

  • 用户点击“QQ登录”并正确授权后,用户能简单的输入信息就能注册Echsop的会员账户
  • 如果用户已经是Echsop的会员的话,可以绑定QQ账户
  • 在注册或绑定的时候,用户输入信息会有提醒邮箱或手机号是否已经被注册过
  • 用户如果用QQ登录绑定过以后,再次点击QQ登录后,会直接登录已绑定的用户的用户中心

你需要做的:

  • 第一步:在QQ conect注册账户,并获得appid和appkey。
  • 第二步:下载我提供的QQ登录模块文件,并保存在网站的根目录中。例如你的网站是www.site.com,QQ登录模块放在www.site.com/oauth中。
  • 第三步:在模块提供的安装部分中,输入你获取的appid和appkey,以及网站的名称和url。
  • 第四步:在Ecshop的首页,放置QQ登录图标并且添加授权链接,格式如下(请把[你的appid]和[你的网站域名]进行响应替换)。用户可以通过这个图标进行登录授权
  • https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=[你的appid]&redirect_uri=http://[你的网站域名]/oauth/qqlogin.php

安装模块:
文件上传后,在url中打开:/oauth/install/

1

需要填写你的appid和appkey,以及网站的名称和网站url,填写后根据提示删除install文件夹即可。

用户使用:
在用户点击你放在网站首页的QQ登录图标后,会跳转到授权页面:
2

用户接受授权并填写信息后,会返回网站的callback页面中,要求注册:

3

如果用户已经网站用户,直接点击下面的按钮就可以对老用户进行绑定:

5

Ecshop-QQ登录模块下载:oauth.tar

PHP是web的正确方向吗?

php_frameworks
本文的前提是n年前je的那篇神帖《PHP框架的繁荣是正确的发展方向吗?》,09年正是各种rails层出不穷的时间,老旧的PHP也搭上了rails思潮的末班车,各种各样的框架终于让php这颗老树终于发了新芽。

old style的phper认为越来越多的PHP framwork违法了php的发展:quick and dirty,并且冗长臃肿的PHP framwork不仅导致PHP不那么quick,修改起来更加dirty(你说的是Zend framwork吗?或者是Magento吧?呵呵)。在old style的phper的眼里,读取mysql就应该直接用mysqli lib,中framwork提供的DB fucntion太麻烦;各个php页面应该就是直接可以访问的,用index.php做整个framwork的url入口路由看起来是古怪和反人类的。

我是这么认为的:php的framwork化,正好解决了PHP本身的一些问题,是非常不错的趋势;不过那些过于复杂和臃肿的framwork的确是反人类的(Zend framwork,就是说你哪)。在JE的神帖中说的很清楚,PHP相对于Python和Ruby之类的web环境,每次PHP的运行都是独立的一个进程,每次运行完毕后,php-cgi会释放所有本次运行中牵扯到的资源;而Ruby和Python的GGI则不是这样,臃肿的PHP framwork会极大的损害PHP的这个优势。只有那些充分发挥PHP优势,并且能够在Framwork层面对很多调用(db、session等等)进行封装的Framwork才是正道。