The phpBB Group made a major error in its 3.3.6 release. The error is understandable, but still surprising as this is the first release I am aware of which if you are affected by the bug cannot be fixed except by recovering two tables you are supposed to back up before upgrading to phpBB 3.3.6.
How can I tell if my board is affected?
One way is to access your board as a guest. If it says your board has no forums, but previously a guest would see your forums, you are affected.
If you can still see forums as a guest, that doesn’t mean you aren’t affected, only that if you can’t, it definitely indicates that you are affected by the bug.
The only way to know for sure would be to compare the phpbb_acl_groups and phpbb_acl_users tables from before upgrading to phpBB 3.3.6 with your current tables and if any rows are missing put them back in these tables. This is not easy. You might want to seek professional help to fix these issues.
If my board is affected, how do I fix this?
Recover your database to before your upgraded to phpBB 3.3.6, then upgrade phpBB
If you are comfortable with losing any content since you upgraded, you fully backed up your database before the upgrade, and it’s stored in your board’s /store folder you could:
- Use phpBB’s restore function: ACP > Maintenance > Database > Restore. Make sure you pick the right archive to recover.
- Afterward, you may have orphaned attachments. You can get rid of these: ACP > Posting > Attachments > Orphaned attachments
- Next, upgrade to the latest version of phpBB using the normal process
Warning: on some servers you may experience timeouts and other issues using the process. The likelihood of this happening increases on shared hosting and if you have lots of posts and users. If you are familiar with using SQL from the command line, it is better to restore your database this way. You may need to explicitly drop all the tables in your database first.
Recover the two affected tables, then upgrade phpBB
If the other options aren’t viable, you have to fix the database directly. And it can be kind of confusing if you are not familiar with SQL or don’t know how to use programs like phpMyAdmin. But you must have a backup of your database before you upgraded or updated to phpBB 3.3.6 and the backup must contain the two tables affected.
- Your database backup is either in an archive or a long file with a .sql suffix. If it’s in an archive, extract it.
- You will need to open the archive in a text editor. If the file is big, it may crash some text editors. BBEdit is an example of a text editor that should be able to handle large .sql files.
- Search for your phpbb_acl_groups table. If your table prefix is not phpbb_, search for the correct name, like phpbb3_acl_groups. Find the INSERT INTO statement for the table. Here’s an example:
INSERT INTO phpbb_acl_groups (group_id, forum_id, auth_option_id, auth_role_id, auth_setting) VALUES (88, 5, 0, 14, 0),(84, 5, 15, 0, 1),(84, 5, 1, 0, 1),(85, 5, 15, 0, 1),(85, 5, 1, 0, 1),(3, 5, 1, 0, 1),(3, 5, 14, 0, 1),(83, 5, 1, 0, 1),(83, 5, 14, 0, 1),(3, 5, 20, 0, 1),(3, 5, 23, 0, 1),(83, 5, 20, 0, 1),(83, 5, 23, 0, 1),(3, 5, 17, 0, 1),(3, 5, 4, 0, 1),(3, 5, 25, 0, 1),(3, 5, 13, 0, 1),(3, 5, 24, 0, 1),(3, 5, 18, 0, 1),(3, 5, 22, 0, 1),(3, 5, 27, 0, 1),(3, 5, 19, 0, 1),(3, 5, 9, 0, 1),(83, 5, 17, 0, 1),(83, 5, 4, 0, 1),(83, 5, 25, 0, 1),(83, 5, 13, 0, 1),(83, 5, 24, 0, 1),(83, 5, 18, 0, 1),(83, 5, 22, 0, 1),(83, 5, 27, 0, 1),(83, 5, 19, 0, 1),(83, 5, 9, 0, 1),(3, 5, 21, 0, 1),(83, 5, 21, 0, 1),(3, 5, 8, 0, 1),(83, 5, 8, 0, 1),(3, 5, 6, 0, 1),(83, 5, 6, 0, 1),(3, 5, 16, 0, 1),(83, 5, 16, 0, 1),(3, 5, 29, 0, 1),(83, 5, 29, 0, 1),(3, 5, 26, 0, 1),(83, 5, 26, 0, 1),(84, 5, 3, 0, 1),(84, 5, 7, 0, 1),(89, 5, 3, 0, 1),(89, 5, 7, 0, 1),(89, 5, 1, 0, 1),(85, 5, 3, 0, 1),(85, 5, 7, 0, 1),(88, 6, 0, 14, 0),(84, 6, 15, 0, 1),(84, 6, 1, 0, 1),(85, 6, 15, 0, 1),(85, 6, 1, 0, 1),(3, 6, 1, 0, 1),(3, 6, 14, 0, 1),(83, 6, 1, 0, 1),(83, 6, 14, 0, 1),(3, 6, 20, 0, 1),(3, 6, 23, 0, 1),(83, 6, 20, 0, 1),(83, 6, 23, 0, 1),(3, 6, 17, 0, 1),(3, 6, 4, 0, 1),(3, 6, 25, 0, 1),(3, 6, 13, 0, 1),(3, 6, 24, 0, 1),(3, 6, 18, 0, 1),(3, 6, 22, 0, 1),(3, 6, 27, 0, 1),(3, 6, 19, 0, 1),(3, 6, 9, 0, 1),(83, 6, 17, 0, 1),(83, 6, 4, 0, 1),(83, 6, 25, 0, 1),(83, 6, 13, 0, 1),(83, 6, 24, 0, 1),(83, 6, 18, 0, 1),(83, 6, 22, 0, 1),(83, 6, 27, 0, 1),(83, 6, 19, 0, 1),(83, 6, 9, 0, 1),(3, 6, 21, 0, 1),(83, 6, 21, 0, 1),(3, 6, 8, 0, 1),(83, 6, 8, 0, 1),(3, 6, 6, 0, 1),(83, 6, 6, 0, 1),(3, 6, 16, 0, 1),(83, 6, 16, 0, 1),(3, 6, 29, 0, 1),(83, 6, 29, 0, 1),(3, 6, 26, 0, 1),(83, 6, 26, 0, 1),(84, 6, 3, 0, 1),(84, 6, 7, 0, 1),(89, 6, 3, 0, 1),(89, 6, 7, 0, 1),(89, 6, 1, 0, 1),(85, 6, 3, 0, 1),(85, 6, 7, 0, 1),(88, 0, 0, 5, 0),(87, 0, 0, 5, 0),(88, 0, 0, 4, 0),(85, 0, 0, 6, 0),(86, 0, 0, 6, 0),(88, 7, 0, 14, 0),(87, 7, 0, 14, 0),(3, 7, 14, 0, 1),(3, 7, 1, 0, 1),(83, 7, 14, 0, 1),(83, 7, 1, 0, 1),(88, 7, 14, 0, 1),(88, 7, 1, 0, 1),(87, 0, 0, 4, 0),(87, 6, 0, 14, 0),(87, 5, 0, 14, 0),(87, 5, 0, 10, 0),(87, 6, 0, 10, 0),(87, 0, 32, 0, 1),(87, 0, 33, 0, 1),(87, 0, 34, 0, 1),(87, 0, 35, 0, 1),(87, 0, 36, 0, 1),(87, 0, 40, 0, 1),(87, 0, 127, 0, 1),(87, 0, 42, 0, 1),(87, 0, 128, 0, 1),(87, 0, 43, 0, 1),(87, 0, 37, 0, 1),(87, 0, 38, 0, 1),(87, 0, 39, 0, 1),(87, 0, 41, 0, 1),(87, 0, 31, 0, 1),(3, 5, 130, 0, 1),(83, 5, 130, 0, 1),(3, 6, 130, 0, 1),(83, 6, 130, 0, 1),(88, 8, 0, 14, 0),(87, 8, 0, 14, 0),(88, 8, 14, 0, 1),(88, 8, 1, 0, 1),(3, 8, 0, 21, 0),(83, 8, 0, 21, 0),(88, 9, 0, 14, 0),(84, 9, 15, 0, 1),(84, 9, 1, 0, 1),(85, 9, 15, 0, 1),(85, 9, 1, 0, 1),(3, 9, 1, 0, 1),(3, 9, 14, 0, 1),(83, 9, 1, 0, 1),(83, 9, 14, 0, 1),(3, 9, 20, 0, 1),(3, 9, 23, 0, 1),(83, 9, 20, 0, 1),(83, 9, 23, 0, 1),(3, 9, 17, 0, 1),(3, 9, 4, 0, 1),(3, 9, 25, 0, 1),(3, 9, 13, 0, 1),(3, 9, 24, 0, 1),(3, 9, 18, 0, 1),(3, 9, 22, 0, 1),(3, 9, 27, 0, 1),(3, 9, 19, 0, 1),(3, 9, 9, 0, 1),(83, 9, 17, 0, 1),(83, 9, 4, 0, 1),(83, 9, 25, 0, 1),(83, 9, 13, 0, 1),(83, 9, 24, 0, 1),(83, 9, 18, 0, 1),(83, 9, 22, 0, 1),(83, 9, 27, 0, 1),(83, 9, 19, 0, 1),(83, 9, 9, 0, 1),(3, 9, 21, 0, 1),(83, 9, 21, 0, 1),(3, 9, 8, 0, 1),(83, 9, 8, 0, 1),(3, 9, 6, 0, 1),(83, 9, 6, 0, 1),(3, 9, 16, 0, 1),(83, 9, 16, 0, 1),(3, 9, 29, 0, 1),(83, 9, 29, 0, 1),(3, 9, 26, 0, 1),(83, 9, 26, 0, 1),(84, 9, 3, 0, 1),(84, 9, 7, 0, 1),(89, 9, 3, 0, 1),(89, 9, 7, 0, 1),(89, 9, 1, 0, 1),(85, 9, 3, 0, 1),(85, 9, 7, 0, 1),(87, 9, 0, 14, 0),(87, 9, 0, 10, 0),(3, 9, 130, 0, 1),(83, 9, 130, 0, 1),(88, 10, 0, 14, 0),(84, 10, 15, 0, 1),(84, 10, 1, 0, 1),(85, 10, 15, 0, 1),(85, 10, 1, 0, 1),(3, 10, 1, 0, 1),(3, 10, 14, 0, 1),(83, 10, 1, 0, 1),(83, 10, 14, 0, 1),(3, 10, 20, 0, 1),(3, 10, 23, 0, 1),(83, 10, 20, 0, 1),(83, 10, 23, 0, 1),(3, 10, 17, 0, 1),(3, 10, 4, 0, 1),(3, 10, 25, 0, 1),(3, 10, 13, 0, 1),(3, 10, 24, 0, 1),(3, 10, 18, 0, 1),(3, 10, 22, 0, 1),(3, 10, 27, 0, 1),(3, 10, 19, 0, 1),(3, 10, 9, 0, 1),(83, 10, 17, 0, 1),(83, 10, 4, 0, 1),(83, 10, 25, 0, 1),(83, 10, 13, 0, 1),(83, 10, 24, 0, 1),(83, 10, 18, 0, 1),(83, 10, 22, 0, 1),(83, 10, 27, 0, 1),(83, 10, 19, 0, 1),(83, 10, 9, 0, 1),(3, 10, 21, 0, 1),(83, 10, 21, 0, 1),(3, 10, 8, 0, 1),(83, 10, 8, 0, 1),(3, 10, 6, 0, 1),(83, 10, 6, 0, 1),(3, 10, 16, 0, 1),(83, 10, 16, 0, 1),(3, 10, 29, 0, 1),(83, 10, 29, 0, 1),(3, 10, 26, 0, 1),(83, 10, 26, 0, 1),(84, 10, 3, 0, 1),(84, 10, 7, 0, 1),(89, 10, 3, 0, 1),(89, 10, 7, 0, 1),(89, 10, 1, 0, 1),(85, 10, 3, 0, 1),(85, 10, 7, 0, 1),(87, 10, 0, 14, 0),(87, 10, 0, 10, 0),(3, 10, 130, 0, 1),(83, 10, 130, 0, 1);
- Empty this table first using a tool like phpMyAdmin (see above). This removes all rows in the table.
- Afterward, using a tool like phpMyAdmin, copy and paste the INSERT INTO statement(s) from your editor. Using phpMyAdmin, you could click on the SQL tab and insert them there, and press GO at the bottom of the page to execute the statement(s). This should replace the table’s content to the way it was before you upgraded to phpBB 3.3.6.
- Use the same approach for your version of the phpbb_acl_users table. Empty the table and execute the SQL in your editor to recover this table.
- Now do a normal upgrade to the latest version of phpBB.
- If after the upgrade to 3.3.6 you made any permission changes to users or groups, these would need to be reapplied.