Back in September I released Suffusion Version 3.6.6, where I introduced the capability to skin the navigation bars. To do this I added some nifty constructs that would help skin borders, backgrounds etc. Shortly after that some users (albeit a very small percentage) started reporting an inability to save Theme Skinning options. I tried debugging this, but failed to come up with a solution.
Then, one of Suffusion’s users, “Bird” carried out some terrific voluntary research and found the root cause. Apparently quite a few folks have a protection system called Suhosin installed. To quote “Bird”:
As I had the same issue with Suffusion 3.7.3, I did some research and finally found out that the probelm appears due to ‘php5-suhosin’, a protection system that only allows a maximum of 200 variables per post by default.
In order to check if suhosin is running and might be causing your problems, just create a php-file (e.g. "info.php") with the following content:
<?php phpinfo(); ?>
The variables that are of interest for us and that need to be changed are: "
suhosin.post.max_vars" and "
suhosin.request.max_vars". Set them both to "500" and the problem should be solved.
What was happening is that the “Theme Skinning” page, thanks to the addition of the new options had a very high number of HTML input fields. Each border / background element / font triggered around 5-6 extra HTML fields, and given the customization choices, the total number of fields multiplied to get to quite a high figure.
The implementation of the fix, though required a little bit more work. And kudos to “Titus”, another user, for the solution. Apparently it is not enough to simply set the above variables to a high figure. You also need to fiddle with a few more. You can set the following values:
suhosin.memory_limit 128M 128M suhosin.post.max_value_length 65000 65000 suhosin.request.max_value_length 65000 65000
This should take care of the problem. So if you are facing an issue with saving your options, try tweaking the settings as described above. You might need the help of your hosting provider to help set these values.