日前,写了个插件程序给ECShop,并按领导要求,添加了新浪微博的分享和腾讯微博的分享。结果有人报告,在插件详情页上的新浪微博的分享,有mysql错误显示,但能生成短地址,而腾讯微博正常。
这个错误很妖异,放狗搜了一下,也没搜到类似的案例。仔细考虑了一下,一般,分享框都是标题和地址,现在只有地址,没有标题,说明是标题生成出了问题。但生成的HTML页面上,title又是能正常生成的(因为新浪微博的分享按钮,通常在未做指定的情况下,是直接取HTML页面的title元素的)。考虑到通常的商品详情页面的新浪微博分享又是正常的,猜测是因为该页面的URL地址有两个参数,形如:http://www.xxx.com/xxx.php?a=b&c=d,其中a=b是选择不同的页面动作,于是将这个动作,独立写成一个PHP文件,将地址缩短到形如http://www.xxx.com/xxx.php?a=b,果然,立刻吃嘛嘛香,身体倍儿棒,新浪微博分享立刻显示正常。看来这是由于新浪的分享功能不支持当前页面的URL地址有多个参数,从而无法获取标题造成的。