QQ客服.com 这个。。。
嘿嘿, 这个要是能刷流量的话那不错。。。
貌似中文域名还在慢热中。。。或者难成气候。。
访问中文域名要先经过转码比如QQ客服.com
转码后就是:http://www.xn--qq-1e1d264b.com/
发现Chrome 10访问和IE8访问会直接显示QQ客服.COM, 火狐3.6.13访问就显示经过转码了的http://www.xn--qq-1e1d264b.com/了。。
嘿嘿, 这个要是能刷流量的话那不错。。。
貌似中文域名还在慢热中。。。或者难成气候。。
访问中文域名要先经过转码比如QQ客服.com
转码后就是:http://www.xn--qq-1e1d264b.com/
发现Chrome 10访问和IE8访问会直接显示QQ客服.COM, 火狐3.6.13访问就显示经过转码了的http://www.xn--qq-1e1d264b.com/了。。
遇到报错:Fatal error: Call to a member function extend() on a non-object in \app\code\core\Mage\Core\Model\Mysql4\Config.php on line 115
错误原因及解决办法参见:
里的
SET FOREIGN_KEY_CHECKS=0;
update `core_store` set store_id = 0 where code='admin';
update `core_store_group` set group_id = 0 where name='Default';
update `core_website` set website_id = 0 where code='admin';
update `customer_group` set customer_group_id = 0 where customer_group_code='NOT LOGGED IN';
SET FOREIGN_KEY_CHECKS=1;
执行一遍清缓存就OK。
关于WebSockets 的基础概念参见:HTML5 WebSockets 基础使用学习教程
本文简单记录PHP利用WebSockets
和HTML5 WebSockets API的服务器推技术来实现在线聊天系统
。
解压后只有两个文件:server.php(服务端)和client.html(客户端)
运行WebSockets服务器端
,命令行模式下使用php -q path\server.php
运行
,或者浏览器访问server.php
注:浏览器必须支持HTML5的WebSocket
。可使用当前的最新Firefox或Chrome。
另外PHP需要支持php_sockets组件
。windows环境下请将php.ini的php_sockets.dll打开。
以上条件满足后,打开http://domo.cn/WebSockets/client.html
如果出现图中提示:
这情况为server.php端未运行。可以另开个窗口:http://demo.cn/WebSockets/server.php
当出现提示:Message: Created socket Resource id #2 Message: Socket bound to localhost:8000 Message: Start listening on Socket.,此时表示WebSockets服务端运行中。
再次访问http://domo.cn/WebSockets/client.html,
此时客户端和服务器端WebSockets连接成功。
发送测试内容: PHP WebSockets Test
PHP WebSockets服务器主动 返回发送内容
点击退出,客户端即与服务器端断开。
这样就利用PHP的sockets和HTML5的WebSockets API简单的实现了服务器推。
HTML5
WebSockets,可替代AJAX,无需AJAX请求即可与服务器端对话。
下面介绍HTML5 WebSockets,和记录Php环境的服务器端运行 WebSocket,创建客户端并通过WebSockets协议发送和接收服务器端信息。
引用wiki的一句话:WebSocket protocol 是HTML5一种新的协议(protocol)。它是实现了浏览器与服务器全双工通信(full-duplex)(
全双工
:允许两台设备间进行资料的双向传输)
。
先前,很多网站为了实现即时通讯(real-time),所用的技术都是轮询(polling)。轮询是在特定的的时间间隔(time interval)(如每1秒),由浏览器对伺服器发出HTTP request,然后由服务器返回最新的数据给客服端的浏览器。这种传统的HTTP request 的模式带来很明显的缺点 – 浏览器需要不断的向服务器发出请求(request),然而HTTP request 的header是非常长的,我们需要的数据可能是里面包含的数据的一个很小的值,这样会占用很多的带宽。
而最新的实现轮询效果是Comet – 用了AJAX。但这种技术虽然可达到全双工通信,但依然需要发出请求(reuqest)。
这时,HTML5 WebSockets的优势就体现出来了。
在 WebSocket API,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。在此 WebSocket 协议中,为我们带来了两大好处:
1. Header
互相沟通的Header是很小的-大概只有 2 Bytes
2. Server Push
服务器可以主动传送数据给客户端
类似使用可以参见:《服务器推技术简介及php实现服务器推技术的聊天室
》
另外关于通过WebSockets协议发送和接收服务器端信息,参见我的另外文章:
通过这边文章对WebSockets基础的学习和WebSockets的服务端和客户端代码的使用,对php和HTML5 的WebSockets的使用有了初步掌握。。
为了安全考虑, 相信很多人都会想修改Magento默认的后台地址/admin
下面记录一下如何改变Magento的后台访问路径。
System - Configuration - Advanced - Admin - Use custom admin URL 设为YES
Custom admin URL 填入要改的后台路径,比如newadmin
另外修改:/app/etc/local.xml文件
找到<frontName><![CDATA[admin]]></frontName>,将admin改为newadmin
清空var/cache 和 var/session,OK。
出现问题报错的话检查以下:
select * from core_config_data where path='admin/url/custom'; -- should be http://www.yourdomain.com/newadminpath
select * from core_config_data where path='admin/url/use_custom'; -- should be: 0
select * from core_config_data where path='web/secure/base_url'
select * from core_config_data where path='web/unsecure/base_url'; -- should be: http://www.yourdomain.com/
RP 1.4.1.1使用在Magento1.4.0.1 在checkout/onepage/页面走到最后一步点ORDER PLACE报错:There was an error processing your order. Please contact us or try again later
经过代码跟踪,发现在app/code/core/Mage/Checkout/controllers/OnepageController.php这个位置saveOrderAction方法里的$this->getOnepage()->saveOrder();这个调用里出错了
继续跟中,可以把错误异常锁定在app/code/core/Mage/Checkout/Model/Type\Onepage.php里的saveOrder这个方法里。
把异常报告打开发现原来是在saveOrder这个方法里执行RP包的Payment.php这个文件中出错了,
if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]) {$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]; } elseif ($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]){ $ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"]; } elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]) {$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"]; } elseif (getenv("HTTP_X_FORWARDED_FOR")){ $ip = getenv("HTTP_X_FORWARDED_FOR"); } elseif (getenv("HTTP_CLIENT_IP")) { $ip = getenv("HTTP_CLIENT_IP"); } elseif (getenv("REMOTE_ADDR")){$ip = getenv("REMOTE_ADDR"); }
这段获取内容获取IP,在本地的测试环境出现Notice级别的错误:Notice: Undefined variable:HTTP_SERVER_VARS
最后将整段换成自己代码库的方法:
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP"); else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) $ip = getenv("HTTP_X_FORWARDED_FOR"); else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) $ip = getenv("REMOTE_ADDR"); else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) $ip = $_SERVER['REMOTE_ADDR']; else $ip = "unknown";
重新测试一遍,使用RP接口正常走完订单流程,没再报There was an error processing your order. Please contact us or try again later