Archive for 03月, 2010
ecshop下can’t parse to JSON出错的一种解决思路
ecshop是一个php下非常常用的开源商城系统,他的ajax的功能非常强大,几乎所有的操作都涉及到了异步操作。
正因为如此,他的模版制作门槛就有点高,你会时不时地发现,这个不显示了,那个不能操作了。除非你用默认模版,不然有你搞得。
根据我的经验,很多情况,如果我们发现功能不能用,该有反应的地方突然没有反应了,我们应该先检查你的模板文件里是不是包含了以下这段代码
var process_request = “正在处理您的请求…”;
这几乎是最常见的AJAX错误,也是发生最多的。
不过这次我做要提到的解决思路要复杂很多。这个错误不常发生,却很难找到解决办法。
当我们点击购买按钮时候,这个商品应该是自动进入购物车,但动作没有响应。如果你在ie下,会出现JS报错。
Exception thrown and not caught (抛出的异常没有被接住)
如果我们用工具调试,会发现类似这样的报错
Fatal error: Bad string at offset 2: {\”spec\”:[],\”goods_id\”:4154,\”number\”:1,\”parent\”:0}
联动文章:http://bbs.ecshop.com/thread-109570-1-1.html (他遇到的问题很我类似)
我先说解决办法:从报错,我们可以看到错误出在了第二反斜杠上。默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。而ECSHOP没有对POST的数据进行过滤。
简单的解决办法: 在FLOW.php文件的57行,像我这样加上过滤
$_POST['goods'] = stripslashes(json_str_iconv($_POST['goods']));
我中间我一度认为是ecshop的transport和jquery冲突,因为我把ECSHOP做为一个插件插到了PHPCMS2008中。唉,走了很多弯路,做了很多调试才发现这个小Bug的,希望大家不要走我的老路。
联动讨论:http://bbs.ecshop.com/thread-76312-1-1.html
为什么网站百度收录正常总数不变
百度收录正常总数不变的问题,这是一个很经典的问题。百度既收录这个网站的新内容也删除老内容,貌似很正常。
我查了很多资料发现,这个现象通常是因为站点发展态势很好已经达到了一个网站权重的瓶颈,是站点构架和站点信用度的问题。百度对每一个站点的页面收录其实是有限制的,它首先要判断这个站点的内容是否和独特,然后是站点的权重是否很高,由此决定一个收录页面数量范围。要提高收录总数,最需要做的就是增加高权重的外链导入和大量的原创文章。
当你给站点增加高质量的导入链接,保持原有的更新频率和外链增长规律,并增加高质量的外链导入,处理之后收录往往会在2-4周内有很大的提升,并且关键词的排名也会有个进阶。

