Hi,
I started to probe around the code a little more, and haven't fixed it yet (I
doubt I can) but I've got a little more info. Here's hoping a dev will come
and fix it soon ;)
To recap, admin sessions work perfectly. I have one user I entered into the Db
myself (since WikiNewUser wasn't working) called "community". The browser
accepts a session cookie, but phpwiki doesn't enter the data into the
database correctly. The sess_data entry for the session looks like this:
----
'wiki_user|O:13:\"_filepassuser\":11:{s:7:\"_userid\";s:9:\"community\";s:6:
\"_level\";i:2;s:6:\"_prefs\";O:15:\"userpreferences\":4:{s:6:
\"_prefs\";a:13:{s:6:\"userid\";O:15:\"_userpreference\":2:{s:13:
\"default_value\";s:0:\"\";s:6:\"userid\";s:9:\"community\";}s:6:
\"passwd\";O:15:\"_userpreference\":1:{s:13:\"default_value\";s:0:\"\";}s:9:
\"autologin\";O:20:\"_userpreference_bool\":1:{s:13:
\"default_value\";b:0;}s:5:\"email\";O:21:\"_userpreference_email\":1:{s:13:
\"default_value\";s:0:\"\";}s:11:\"notifyPages\";O:22:
\"_userpreference_notify\":1:{s:13:\"default_value\";s:0:\"\";}s:5:
\"theme\";O:21:\"_userpreference_theme\":1:{s:13:\"default_value\";s:3:
\"SDC\";}s:4:\"lang\";O:24:\"_userpreference_language\":1:{s:13:
\"default_value\";s:2:\"en\";}s:9:\"editWidth\";O:19:
\"_userpreference_int\":3:{s:13:\"default_value\";d:80;s:7:
\"_minval\";d:30;s:7:\"_maxval\";d:150;}s:11:\"noLinkIcons\";O:20:
\"_userpreference_bool\":1:{s:13:\"default_value\";b:0;}s:10:
\"editHeight\";O:19:\"_userpreference_int\":3:{s:13:
\"default_value\";d:22;s:7:\"_minval\";d:5;s:7:\"_maxval\";d:22;}s:10:
\"timeOffset\";O:23:\"_userpreference_numeric\":3:{s:13:
\"default_value\";d:0;s:7:\"_minval\";d:-26;s:7:\"_maxval\";d:26;}s:13:
\"relativeDates\";O:20:\"_userpreference_bool\":1:{s:13:
\"default_value\";b:0;}s:10:\"googleLink\";O:20:\"_userpreference_bool\":1:
{s:13:\"default_value\";b:0;}}s:7:\"_method\";s:3:\"SQL\";s:7:
\"_select\";s:38:\"SELECT prefs FROM pref WHERE userid=%s\";s:7:
\"_update\";s:40:\"REPLACE INTO pref SET prefs=%s,userid=%s\";}s:15:
\"_current_method\";N;s:14:\"_current_index\";N;s:5:\"_file\";O:11:
\"file_passwd\":6:{s:8:\"filename\";s:23:\"/www/htpasswd/passwords\";s:5:
\"users\";a:1:{s:9:\"community\";s:13:\"p0s/yKSwCtGrI\";}s:3:\"cvs\";N;s:6:
\"fplock\";N;s:6:\"locked\";N;s:8:\"lockfile\";s:28:
\"/www/htpasswd/passwords.lock\";}s:11:\"_may_change\";b:0;s:11:
\"_authmethod\";s:4:\"File\";s:8:\"_authhow\";s:6:\"signin\";s:4:
\"page\";s:8:\"HomePage\";s:6:\"action\";s:6:\"browse\";}'
----
It looks OK until it seems to close one hash table (sorry, don't know the PHP
term) and then opens a new one related to the method (SQL) and containing
some SQL commands (starts with: s:7:\"_method\";s:3:\"SQL\").
Those SQL commands look like ones found in config.ini managing auth and
groups, though uncommenting / changing them doesn't make any difference.
I can't get any further, because I can't work out how the variable $sess_data
is generated (with a few echo statements, I found it's used in
lib/DbSession.php.DbSession_SQL.write and that it's corrupt the moment write
receives its data).
I hope this helps, or maybe gives someone else an idea so we can debug this.
Regards,
Tom
|