‘PHP&MySQL’ 分类的文章列表
额,CURL扩展在Windows下的安装
暂时没有留言ZenCart需要Curl支持,于是我在php.ini里加上了extension=php_curl.dll,然后再确定dll扩展文件夹下有php_curl.dll这个东西,最后喜滋滋地去phpinfo里看情况,结果是没有装上,囧...........
我纳闷了,扩展不都是这样装的么?难道这个东西还有点特别?后来无意中看到有人说要把libeay32.dll,ssleay32.dll复制到system32下。我试了一下,果然如此,再一看,这两个dll都是OpenSSL的依赖库。libeay32.dll是OpenSSL加密特性相关文件,用于通过网络加密传输。而ssleay32.dll是OpenSSL的一个工具包。
SyntaxHighlighter–用JS来高亮你的代码!
3条留言一直在研究DEDECMS,但是对于我这种人来说他的编辑器很是恼火,因为我时常需要在文章里面贴代码,而DEDE里面用的FCDEditor是改装版的,我改起来非常之麻烦,曾经尝试过用FCK自带的代码高亮效果,但是没有用,昨天看到一个叫SyntaxHighlighter的东西,JS的,用起来效果非常之好,我就想能不能移植到DEDE上呢?
SyntaxHighlighter用起来十分之简单,只需要导入CSS文件和相应的JS文件,然后把代码放到<pre></pre>部分中再定义一下就好了,例:
Flea找不到Action时的错误处理
暂时没有留言 FLEAPHP让用户可以自己写页面出错时候的处理。
分2种情况:
1. 如果当前访问的控制器、动作不存在:'dispatcherFailedCallback' => 'onDispatcherFailedCallback';
2. 如果用户设置了RABC访问控制,访问无法访问的动作时:'dispatcherAuthFailedCallback' => 'onAuthFailedCallback';
上面onDispatcherFailedCallback、onAuthFailedCallback是出错的时候调用的函数,可以在index.php种定义这2个函数就OK了。
例如:
function onAuthFailedCallback($controller,$action)
{
redirect(url('Login','Index')); // 这里是验证失败时,让用户去登录
}
UTF-8的BOM问题
暂时没有留言首先要说的是这个问题太气人了,害我搞了一天才发现是这个问题,大坏蛋!而且又这么隐秘,用他们的话说就是:一般人不知道。
在集成UCenter的时候,连接测试老是不成功,但是我写的日志又证明是对的,简直是郁闷至极,于是认为肯定是UCenter的问题,所以开始研究它的结构,看函数,这里花了半天时间.........
好不容易找到了它的测试函数,这个函数叫onping(),使用get_url_code()构造出client端的url及参数后再调用test_api()进行测试。找到这个函数后当然就比较容易了。server和client连接测试成功的话一般是返回一个string类型的1,但是有一个诡异的问题就是我查看返回的这个值,明明是个1,但是在用var_dump输出的时候却显示的是string(4)。我郁闷了,这也太诡异了吧,我猜测是不是哪里有输出空白什么的,因为如果是乱码的话打印在浏览器上有时候不会显示出来,但是strlen()函数则是可以得到它真正的长度的。
PHP中Cookie的作用域问题
暂时没有留言 一直都想当然的以为Cookie的作用域是根目录,并且还时常给别人说就是这样的,直到最近在集成PHPMyVisit的时候吃了大亏才把它弄明白了,汗,希望被我毒害的人不要找我麻烦。
PHPMyVisit用的是单入口模式,Cookie登录验证,但是我自己在写API的时候老是有问题,把API放在根目录就是好好的,放到二级目录就有问题,而UCenter又要求API必须放到api目录下,搞了一天都没有搞清楚问题出在哪,还一段一段的去调试代码,又忙又郁闷。
今天写了个测试代码,分别放到根目录和api的目录,查看cookie的生成情况,才发现两个目录下相同的代码读出的cookie竟然不同,于是意识到问题是出在cookie的路径身上了,再一查手册,果然如此,人家cookie默认的作用域明明就是程序所在的目录!另外Cookies不会在设置它的本页生效,要测试一个 cookie 是否被成功的设定,可以在其到期之前通过另外一个页面来访问其值。
一些MySQL错误的解决办法
暂时没有留言错误提示:
InnoDB: Unable to lock ./ibdata1, error: 11
解决:
ps -ef|grep mysqld ,杀死僵死进程
然后重新启动mysql
---------------------------------------------------------------------------------
错误提示:
error while loading shared libraries: libssl.so.0.9.8:
解决:
更新db,openssl
pacman -S db ,openssl
这样就不会出现找不到连接库文件了
---------------------------------------------------------------------------------
PHPMyVisites乱码问题
暂时没有留言最近做的一个项目用到ECShop,客户希望在里面集成浏览统计,ECShop的统计太差劲了。找了半天找到了PHPMyVisites,它的升级版就搜是Piwik,Piwik功能更复杂,全Ajax的设计使它显得更加Web2.0。Piwik据说是用来替代Google Analytics的,可见它还是很强大的,要不然也不会说这种大话了,呵呵。
在ECShop里当然用不了piwik这么变态的东西了,PHPMyVisites足够了,安置起来也十分简单。不过在配置完成后发现后台生成的数据图汉字有乱码,到官方一看原来是字体惹的货,解决办法是把你想用的字体从C:\WinNT\Fonts\ 或者是C:\Windows\Fonts\ 复制到[phpMyVisites安装目录]/libs/artichow/font/,当然你也可以去网上下载其它的字体。然后修改[phpMyVisites安裝目录]/core/datas/fontList.php :
ECShop调用具体的自定义商品属性
6条留言ECSHop的自定义属性很是好用,但是在前台输出的时候非常麻烦,只能循环输出所有的附加商品属性,不能输出制定的某个自定义的属性,本来它用的是Smarty模板,但是到2.5之后好像是把Smarty修改很多,里面好多东西不能用了。今天给朋友改东西,随便就写了下。
我只在商品具体信息页面(goods.php)做了这个事情,可以的话可以写到每个页面去。
Smarty技巧
暂时没有留言安装:
可以通过继承来实现安装的,看代码
- //setup.php
- <?php
- require("libs/Smarty.class.php");
- class Smarty_C extends Smarty{
- function Smarty_C(){
- $this->smarty();
- $this->template_dir = 'templates';
- $this->compile_dir = 'templates_c';
- $this->cache_dir = 'cache';
- $this->left_delimiter = '<{';
- $this->right_delimiter = '}>';
- $this->caching = 1;
- $this->cache_lifetime = 1800;
- $this->config_dir = 'config';
- //regist functions
- $this->register_block('dynamic','smarty_block_dynamic',false);
- }
- }
- function smarty_block_dynamic($param, $content, $smarty) {
- return $content;
- }
点击浏览器后退按钮后,表单信息丢失的解决办法
暂时没有留言写的一个表单在浏览器后退的时候发现表单信息老是要丢失,原来所session_start 函数作怪。该函数会强制当前页面不被缓存。
解决办法为:
1.在你 Session_start函数后加入 header("Cache-control: private").注意在本行之前PHP程序不能有任何输出。
2.基于session的解决方法,在session_start前加上
session_cache_limiter('nocache');// 清空表单
session_cache_limiter('private'); //不清空表单,只在session生效期间
session_cache_limiter('public'); //不清空表单,如同没使用session一般
3.在session_start();前加上 session_cache_limiter("private,max-age=10800");