当tp5项目上传到服务器之后遇见的各种bug(不定期更新)
1.很明显的数据库问题,更改database文件的ip 用户名和密码之后解决;
2.failed to open stream: Permission denied 文件没有权限 在目录文件夹 chmod 777 * 解决(楼主比较懒,不想挨个找);
3.Call to undefined function imagecreate() 没有安装GD库导致的 输入命令"yum -y install php-gd" 然后重启即可;
4.
这个问题是由于我在引用公共模板文件的时候使用了{extend name="Public:besic" /} 这个方法,但是好像上线之后不支持 ,百度了半天,有说大小写的,有说路由的,完全无解,后来想到也许是公共引用有问题,因为它报错的时候,一般后面都有路径,哪个模板文件不存在,结果他现在后面空的,删除这个,果然就正常了,然后换成{extend name="public/besic" /} ,解决问题.
5.
翻译过来,prize这个字段没有默认值. 这是在我点击注册,如果手机号没注册过就成功注册的页面,加载了半天出现这个问题,数据也没有加进数据库,后来百度说去掉my.cnf里面的严格模式,照做重启无效,既然这样不信,索性自己在添加的时候prize字段给空吧.成功解决.
6.Call to undefined function mb_substr(); 没有这个方法,这个方法是用来截取中文字符串的,让他不乱码
linux下的解决方式是:
首先安装 php-mbstring库文件:
yum install php-mbstring
之后,修改/etc/php.ini文件,在里面加一句
extension=mbstring.so
保存后重启httpd服务。
这是百度的,来源:http://mtoy1.blog.163.com/blog/static/3168880201299113555494/
7.接下来,排除万难终于做好了:然后会发现:在电脑上测试手机端没bug,overflow:hidden有效,手机上就没效果了.然后整个页面就能向下滑动;经过百度已经各种尝试,最后在页面加上
html,body{overflow: hidden;height: 100%;}
html{position: fixed;width: 100%}
完美解决;
8.传到服务器了,解决完了各种页面bug之后,最后一个bug蛋疼了很久,就是当我点击过快之后,还是会有bug,跟我说sql语句错了,找了半天,怀疑是touchstar相应过快,于是换成了click,照旧无解,后来发现是自己疏忽,由于设置了setTimeout 在另外一个页面出来之前,已经结束了的游戏居然还可以点击,于是在设置了$(document).off('click')之后就好了.
9.导出excel表出现错误:iconv()函数引用导致系统识别不了编码,导致报错,改成$strexport = mb_convert_encoding($strexport,'euc-jp','ASCII,JIS,EUC-JP,SJIS,UTF-8'); 导出乱码,后来还是翻手册,看见////TRANSLIT;如果你在 out_charset
后添加了字符串 //TRANSLIT,将启用转写(transliteration)功能。这个意思是,当一个字符不能被目标字符集所表示时,它可以通过一个或多个形似的字符来近似表达。 如果你添加了字符串 //IGNORE,不能以目标字符集表达的字符将被默默丢弃。 否则,会导致一个 E_NOTICE
并返回 FALSE
。
10.项目开始用PHPexcel ,本地使用完美,可是放到线上之后就出现了“无法访问网址”,试过各种方法均不好使,后来参照他们用tp3.2(我用的5.0)的方法,在输出excel的方法后面+了个exit,然后改成excel5,然后就可以了,暂时不知道什么问题....
11.微信分享的时候,我把被分享的用户的openid参数拼到url上面,结果其他用户点进去的第一次没有openid参数,后来的就都有了,测试之后发现是因为继承的类里面都会检测code是否存在,不存在的话就走微信接口回调,回调的时候重定向,参数就没了,第二次因为code已经有了,所以不用重定向,也就进去了.