From: Tom C. <li...@to...> - 2004-08-03 18:52:14
|
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 |