我使用的是drupal 6.用戶權限更改未保存
看起來好像權限頁面不能保存太多的設置。
我嘗試保存權限設置,但它只是沒有保存到數據庫中。 我發現這是由於「太多的領域」。 (使用內容許可模塊)。 如果我取消選中某些字段,然後檢查較小的字段,權限將被保存。例如,如果我取消選中2個複選框,然後選中一個複選框,則會保存權限。
是否有人知道哪個函數的權限頁面用於將結果插入到db中?
我的php內存限制是256M。
我使用的是drupal 6.用戶權限更改未保存
看起來好像權限頁面不能保存太多的設置。
我嘗試保存權限設置,但它只是沒有保存到數據庫中。 我發現這是由於「太多的領域」。 (使用內容許可模塊)。 如果我取消選中某些字段,然後檢查較小的字段,權限將被保存。例如,如果我取消選中2個複選框,然後選中一個複選框,則會保存權限。
是否有人知道哪個函數的權限頁面用於將結果插入到db中?
我的php內存限制是256M。
將權限保存在數據庫中的功能是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();
}
您需要調整php.ini中的max_input_vars。通常的默認值是1000,但是有很多模塊,Drupal權限頁面很容易讓它失效。只需添加另一個零,如果您有權訪問php.ini並重新啓動apache,則將其設爲10000。 php.ini文件的位置取決於您的服務器配置。
我有同樣的問題,沒有在錯誤日誌中的錯誤,這爲我解決了它。
它是由了Suhosin – anru 2010-05-31 23:13:45