On admin/build/block, changes don't register. I put a dsm() in function
block_admin_display_submit() and it's not getting there. In function
drupal_process_form there is this code:
if (($form['#programmed']) || (!empty($_POST) && (($_POST['form_id'] ==
$form_id)))) {
drupal_validate_form($form_id, $form);
if ((($form['#programmed']) || $form_submitted ||
(!$form_button_counter[0] && $form_button_counter[1])) &&
!form_get_errors()) {
$redirect = drupal_submit_form($form_id, $form);
I'm guessing that is what is supposed to be calling the submit function
that's not getting called. But it never gets to that line because the IF
test fails. $form['#programmed'] is empty and $_POST['form_id'] doesn't
exist. $_POST looks like:
Array
(
[0] => Array
(
[region] => -1
[theme] => crotheme
[weight] => -10
)
[ snip ]
[66] => Array
(
[region] => -1
[theme] => crotheme
)
)
When it's working, it looks like:
Array
(
[0] => Array
(
[region] => main_supplements
[theme] => crotheme
[weight] => -5
)
[ snip ]
[op] => Save blocks
[form_token] => 509ec7d65196c983855d5192bf29647a
[form_id] => block_admin_display
)
I have the same problem with changes not registering on admin/user/access. Other areas of the site seem fine.
Suspecting a contrib module rather than a core bug, I disabled all the contribs in the db (there's about 100 of them). That did fix it, so I started adding them back in, one project at a time like this:
* Enable module(s)
* Clear cache
* Refresh block admin page
* Move who's online block from one sidebar to the other
* Submit and see if it works
When I hit a point where it stopped working, I figured I'd found the module. But disabling that module didn't fix it. I went back and disabled the last 10 modules I had enabled and it was still broken. Repeating the whole process over fixes it again but, after a while of enabling modules, it breaks. And never on the same module.
I also notice that when I refresh the block admin page while it's working, I don't get any message. When it's not working, I get the message about the post containing data that will be resent.
Any clue? I'm stumped.
Thanks,
Michelle
Comments
This looks suspiciously like the "Suhosin" PHP extension
When it's not working, it stops at 66, and cuts off the weight of the last block. Counting the 0 at the start that's 67*3-1 = 200 variables, which happens to be the default limit on variables per request that is imposed by Suhosin.
Try putting this in your php.ini (if you have access):
or else in your .htaccess:
If you have the ability to disable Suhosin entirely, that would also help. It has been known to cause various problems for Drupal.
500 Error
Adding that code gives me a 500 error but I will contact my host right away and see if he's added that. Thanks for the tip!
Michelle
--------------------------------------
See my Drupal articles and tutorials or come check out life in the Coulee Region.
Hmm, I might have the wrong
Hmm, I might have the wrong syntax for that, sorry. It's been a while since I've had to battle with Suhosin, thankfully.
Asking host
Well, I've got an email in to my host and I'm hoping for good news. This problem has me totally stumped and you're offering me a glimmer of hope. I've never even heard of "Suhosin" before. *crossing fingers*
Thanks,
Michelle
--------------------------------------
See my Drupal articles and tutorials or come check out life in the Coulee Region.
I think you got it
My host confirmed that it is installed but he can't deal with it until tomorrow. In the mean time, I decided to try enabling all the modules and then disabling just ones that make a lot of blocks like tagadelic. Sure enough, soon as I knocked off some of the blocks it started working again.
Thanks so much!
Michelle
--------------------------------------
See my Drupal articles and tutorials or come check out life in the Coulee Region.
oh my ...
i felt bad for Michelle, but I had the same bad experience too ... put this suhosin in my php.ini, solved the issues !
this suhosin issue should be included in the requirement ! It caused so many problems - user permission, blocks, navigation menu.
http://www.hardened-php.net/suhosin/why.html ?
Thanks !