I’ve just installed PHPWiki 1.3.14-4 from the debian repositories and out of the box I got the following message on trying to log in to it:
Fatal error: Non-static method _PearDbPassUser::_PearDbPassUser() cannot be called statically, assuming $this from incompatible context in /usr/share/phpwiki.bak.d/lib/WikiUserNew.php on line 1118
The problem appears to be that, as of PHP 5.something, you’re not allowed to have a function with the same name as a class. Apparently it’s been a failure in E_STRICT mode for a while.
Anyway, the solution is to rename _PearDbPassUser() to something else, and then replace all calls to it with this new name.
I’ve done this and, so far, everything appears to work.
The function is defined in /usr/share/lib/phpwiki/lib/WikiUser/PearDb.php:
jup-linux2:/usr/share$ diff phpwiki.bak.d/lib/WikiUser/PearDb.php phpwiki/lib/WikiUser/PearDb.php
18c18
< function _PearDbPassUser($UserName='',$prefs=false) {
---
> function _PearDbPassUserFoo($UserName='',$prefs=false) {
and is called in /usr/share/WikiUserNew.php:
jup-linux2:/usr/share$ diff phpwiki.bak.d/lib/WikiUserNew.php phpwiki/lib/WikiUserNew.php
1118c1118
< _PearDbPassUser::_PearDbPassUser($this->_userid, $this->_prefs);
---
> _PearDbPassUser::_PearDbPassUserFoo($this->_userid, $this->_prefs);
1157c1157
< _PearDbPassUser::_PearDbPassUser($this->_userid, $prefs);
---
> _PearDbPassUser::_PearDbPassUserFoo($this->_userid, $prefs);
2120c2120
< function PearDbUserPreferences ($saved_prefs = false) {
---
> function PearDbUserPreferencesFoo ($saved_prefs = false) {