我使用drupal 6。
似乎权限页面无法保存太多设置。
我已尝试保存权限设置,但它不会保存到数据库中。 我发现这是由于“太多的领域”。 (使用内容权限模块)。 如果我取消选中某些字段,然后检查较小字段,则会保存权限。
例如,如果我取消选中2个复选框,然后选中一个复选框,则会保存权限。
是否有人知道权限页面用于将结果插入db?
的功能我的php内存限制是256M。
答案 0 :(得分:4)
您需要在php.ini中调整max_input_vars。通常的默认值是1000,但是有很多模块,Drupal权限页面很容易让人眼花缭乱。如果你有权访问php.ini并重新启动apache,只需添加另一个零并使其为10000。 php.ini文件的位置取决于您的服务器配置。
我遇到了同样的问题,错误日志中没有错误,这为我解决了这个问题。
答案 1 :(得分:4)
您对此处遇到的问题有一个很好的解释:http://2bits.com/drupal/drupal-not-saving-admin-pages-large-number-input-fields.html
答案 2 :(得分:1)
更改db表的大小?听起来像是截断了。
答案 3 :(得分:0)
保存数据库权限的功能是user_admin_perm_submit()。
function user_admin_perm_submit($form, &$form_state) {
// Save permissions:
$result = db_query('SELECT * FROM {role}');
while ($role = db_fetch_object($result)) {
if (isset($form_state['values'][$role->rid])) {
// Delete, so if we clear every checkbox we reset that role;
// otherwise permissions are active and denied everywhere.
db_query('DELETE FROM {permission} WHERE rid = %d', $role->rid);
$form_state['values'][$role->rid] = array_filter($form_state['values'][$role->rid]);
if (count($form_state['values'][$role->rid])) {
db_query("INSERT INTO {permission} (rid, perm) VALUES (%d, '%s')", $role->rid, implode(', ', array_keys($form_state['values'][$role->rid])));
}
}
}
drupal_set_message(t('The changes have been saved.'));
// Clear the cached pages
cache_clear_all();
}