当前位置:首页 > 网站搭建 > 正文

Typecho 一些常见报错问题解决办法

许本聪 网站搭建 308阅读

打算建一个 typecho 博客玩玩,顺便把几年前写的主题用上,虽然写的不咋地但好歹也是花了自己不少功夫,扔在硬盘吃灰也是可惜。


先去看了下 typecho 官网,依然是1.1版本没变,在本地打开以前建立的项目 结果直接显示500错误,搜了下原因是 php7 已经放弃了使用 mysql 方法连接数据库,需要修改配置文件 config.inc.php 把

 $db = new Typecho_Db('Mysql', 'typecho_');

修改为:

 $db = new Typecho_Db('Pdo_Mysql', 'typecho_');


成功打开博客后,发现页面怎么那么素净呢?我的高清大图都哪去了?翻翻源码发现判断文章是否含有图片的语句中的 isset() 一直都返回 false ,网上的解释是, php7 判断的时候会依次判断, php5 则是预加载后判断,也就是说

 isset($this->fields->thumbnail)

这种写法, php5 会先执行 $this->fields->thumbnail 后判断,而php7则是把 $this->fields->thumbnail 当成一个变量进行判断。typecho没做相关的处理,所以暂时只能改一下写法,比如:

 $thumb=$this->fields->thumbnail  if(isset($thumb)){...}


登录后台的时候,又发现上面飘着一行 “Notice: Trying to access array offset on value of type null” ,一搜又是 php7.4 和 typecho 的兼容问题, github 上的方法是把 admin\common.php 32 行的:

 $params = parse_url($currentMenu[2]);

改为

 $params = parse_url(isset($currentMenu[2]) ? $currentMenu[2] : null);


如果启用 https 的话需要修改配置文件 config.inc.php ,添加一条:

 define('__TYPECHO_SECURE__',true);

否则会出现后台无法修改内容 或者干脆登录不了等问题。


如果登陆后台报错 :Fatal error: Array and string offset access syntax with curly braces is no longer supported in /www/wwwroot/var/Json.php on line 370

这是因为PHP7.4不再支持使用大括号访问数组以及字符串的偏移 php7.4不再支持数组{}写法,统一为数组[]

Typecho 一些常见报错问题解决办法  第1张

修改位置:/www/wwwroot/var/Json.php on line 370  的  400 行左右

Typecho 一些常见报错问题解决办法  第2张

修改为:$seq = (ord($value[0]) % $rule['num']) + 1;

以此类推!



Typecho 一些常见报错问题解决办法  第3张



版权声明:本文由 @许本聪 发布在 老许Blog,转载请注明出处!

更新时间 2022-01-30

有话要说...

搜索

最新文章