Any form webpage generated by my Drupal sites that is large shows the problem that (most) edits aren't saved. I make the change on the form, click the "Save" button or equivalent at the bottom, and I get no errors reported, but I also don't get a "The changes have been saved." message at the top. I have a multi-site installation that had been working fine until a couple of months ago when this problem started appearing with several sites. I have not been able to make any progress tracing this on my own since then. I am now seeing this with forms for: Admin>Permissions (the big table of checkboxes), Admin>Roles>Edit Permissions (the single column of permissions, on sites with a lot of enabled modules), Admin>Taxonomy>Default terms (a large form generated by the Taxonomy Defaults module).
I say "most" edits don't get saved, because sometimes changes made near the top of the form will stick while changes made lower down will not. Also, if I modify the length of the form (e.g. by deleting some content types) then I can sometimes move that border downward such that edits that didn't stick before will now stick, although ones lower on the page will still not stick. As an example, one Permissions page where I see the problem has seven roles (columns) and a fairly modest 116 rows (for various specific permissions)
No errors are generated on the returned webpage or in the PHP error log. I wondered if it could be related to exceeding the MySQL variable settings for mysql_sql_big_selects (is ON), mysql_max_join_size (is 18446744073709551615), or max_allowed_packet (is 16,777,216) but from what I've read I should be getting error messages on the returned webpage if any of those were the problem, and in any case the default server settings seem reasonably generous. I got the current server variables settings using "phpMyAdmin>Show MySQL system variables." I am using MySQL 5.0.67 and PHP 5.2.8, under CentOS and apache (shared hosting). I've tried boosting the PHP memory limit to 128M (confirmed on the Admin>Status page), with no effect.
Since the problem is seen with the core Permissions form when the number of roles, modules, or content types gets large, this is a problem that could affect anyone, but my extensive searching of the site hasn't uncovered anyone else reporting this problem, so I'm at a loss. Any suggestions would be gratefully received.
Comments
fixed!
I found the source of the problem and it's fixed. I finally happened upon the right search keywords and found the answer in the d.o. website. The problem was two PHP variables set too low. I added the following lines to my php.ini file (in my web root directory; shared hosting) at the end of the "Resource Limits" section...
suhosin.request.max_vars = 2000
suhosin.post.max_vars = 2000
The setting for both was 200, as revealed by Admin>>Status>>PHP. Too many checkboxes on large forms led to the entire form getting dropped during processing. Increasing the number of allowed POST variables fixed the problem.
The relevant discussions were:
Can't Save permissions
and
Lost ability to change blocks and user access
Another report of the same problem:
Cannot change User permissions!