php上传的问题

这两天折腾VPS,把原来的Typecho插件弄上去折腾,发现麻烦问题,没法通过php上传了。无论是php+flash还是通过iframe都不行。尤其蛋疼的是flash上传,错误就一个 #2038 ,完全不知道具体原因,折腾人啊。搜索引擎都用得冒烟了都没解决好。

先是typecho的附件都没法上传,肯定是服务器配置出了问题,后来找到原因是apache配置了mod_security引起的,通过.htaccess文件关掉mod_security

<IfModule mod_security.c>
SecFilterEngine Off
</IfModule>

附件上传没问题了,但是自己写的上传代码总是没法,用chrome和firefox的调试工具总算知道了是403错误,处理上传的php文件被禁止访问了,网上找了一大圈,都没发现解决办法。最后偶然才发现在typecho的usr目录下有个.htaccess文件,一查看就找到问题的根本了。原来typecho为了安全,禁止了对usr目录下的所以php文件的直接访问。我的插件在usr/plugins目录下,处理上传的php文件在插件目录下,需要单独执行处理上传,被禁止访问就没法上传了。所以那个邮件提醒插件CommentToMail也会出现问题,因为也有独立的php文件需要执行,如果.htaccess文件禁止了usr目录下的php文件访问,肯定发不出邮件。

阅读剩余部分...

CSS实现图片自动缩放

飞天舞老兄发现我的新模板中,图片超出了范围,遮挡了侧边栏。很久很久以前喜欢发图的时候,对于这种问题往往是通过编辑器修改图片样式的高和宽,一般都不能锁定高宽比,常会导致图片变形。万一下次换模板了,内容宽度变了又会出现问题,所以我一直不怎么发图,本身也不喜欢弄图,无论截图、绘图或是找图都很麻烦。

既然图已经存在了,就不可能把它删了,折腾吧。虽然不懂CSS,但是依然能知道一点CSS很强悍,而且变得越来越强悍。搜了下CSS图片自动缩放,找到一句代码搞定这个问题:

img{MAX-WIDTH: 100%!important;HEIGHT: auto!important;width:expression(this.width > 600 ? "600px" : this.width)!important;}

多位搞模板的老兄都不建议使用css的表达式,而该用其他方式实现。

一个就是直接设置MAX-WIDTH属性到模板内容的宽度,不用表达式判定。

再一个就是蚂蚱兄提议的隐藏掉超出部分,这个很简单,也很有效。

插件:CommentToMail升级1.2.4

因为有些主机禁用了fsockopen函数,有些主机没配置压缩函数,所以做了点改动。在使用socket功能时,依次使用fsockopen、pfsockopen和stream_socket_client,如果三个函数都没法,基本上主机php的socket功能被禁完了。

再一个在生成缓存文件时,原来是压缩后存储的,现在改用带时间限制的加密存储,就算没发送邮件,留下的缓存文件也不会暴露邮箱等信息。

对于SSL应该跟服务器是否配置openssl等ssl功能有关。

在本地测试腾讯邮箱465端口没任何问题,gmail还没测试过。当上服务器就发不出邮件,错误是连接不上smtp服务器,搜了下找到办法,把class.phpmailer.php文件中的:

  public function IsSMTP() {
    $this->Mailer = 'smtp';
  }

小写的smtp改为大写SMTP

  public function IsSMTP() {
    $this->Mailer = 'SMTP';
  }

开始不信这会有差别,结果真的可以。论坛上有重新打包的CommentToMail.1.2.4.zip

下载:华为网盘,注意找:CommentToMail.1.2.4.zip

如果旧版的1.2.3能够顺利使用,不建议升级,有些小问题还有待处理。

发布:链接转换插件GoLinks

有些需要链接转换功能,研究了两天,终于完成。可以实现链接的重定向,把外部链接转换为自有链接,然后实现重定向。

例如:http://defe.me/go/typecho/ 重定向到 http://www.typecho.org/

下载本插件后上传到插件目录激活,直接由后台菜单“创建->链接转换”中添加需转换的链接,然后复制key值下方的链接就可以了。

这里下载      或者到这里 注意找GoLinks
GoLink1.png

Key值留空则自动生成8位随机字符作为key。

阅读剩余部分...