描述
在采用IPv6网络连接时,管理员后台登录存在问题。
原因分析:
因为数据库表字段长度和数据库表代码未考虑IPv6的问题。
解决方法
以下操作均需要无人访问网站,操作完成后,需要重新访问网站才能正常使用。
pichome 步骤
打开pichome数据库,找到pichome_admincp_session数据库表,修改ip字段的长度为45。 至此,管理员即可使用IPv6访问后台。
修改pichome_session数据库表,将ip1、ip2、ip3、ip4这四个字段合为一个字段,并将其命名为ip字段(即删除其中三个字段,剩余的一个重命名为ip),并将其字段类型改为varchar,长度改为45。同时,修改数据库表pichome_failedlogin,修改ip字段类型改为varchar,长度改为45。至此,系统所有的ip地址都能记录IPv6的地址了。
DzzOffice 步骤
打开DzzOffice数据库,找到dzz_admincp_session数据库表,修改ip字段的长度为45。 至此,管理员即可使用IPv6访问后台。
修改dzz_session数据库表,将ip1、ip2、ip3、ip4这四个字段合为一个字段,并将其命名为ip字段(即删除其中三个字段,剩余的一个重命名为ip),并将其字段类型改为varchar,长度改为45。同时,修改数据库表dzz_failedlogin,修改ip字段类型改为varchar,长度改为45。至此,系统所有的ip地址都能记录IPv6的地址了。
通用步骤
文件\core\class\dzz\dzz_session.php
原代码
private $newguest = array('sid' => 0, 'ip1' => 0, 'ip2' => 0, 'ip3' => 0, 'ip4' => 0,
'uid' => 0, 'username' => '', 'groupid' => 0, 'invisible' => 0, 'action' => 0,
'lastactivity' => 0, 'lastolupdate' => 0);
修改为
private $newguest = array('sid' => 0, 'ip' => '',
'uid' => 0, 'username' => '', 'groupid' => 0, 'invisible' => 0, 'action' => 0,
'