Forums

Invalid argument supplied for foreach() capabilities.php on line 31 (7 posts)

  1. MiLeSu
    Member
    Posted 1 year ago #

    Hi there!

    Been using Wordpress for about 1½ year now and everything worked pretty fine with just small problems which was resolved pretty fast. But now I decided to upgrade my wordpress tool from 2.0.3 (or around that version if I recall right) so I read the detailed upgrade instructions and did as it said but after doing so I got this Warning saying "Warning: Invalid argument supplied for foreach() in wp-includes/capabilities.php on line 31".

    Now the problem with this is that I am unable to log into my wordpress blog cause when I hit the Site Admin link I get the same error message but now with the added text "You do not have sufficient permissions to access this page."

    Any idea of what have gone wrong?

    Thanks in advance for all help!

    // MiLeS, Sweden

  2. dmry
    Member
    Posted 1 year ago #

    Download http://file.dmry.net/blog/01/wp_user_roles_yama.zip patch file and upload in root directory of wordpress. Finally call it on URL (http://your_blog_url../wp_user_roles.php)

    Before appyling patch, backup your database..

    For this patch, I write a manual, but in Turkish. If you want, you can read or translate with any service..

    Patch URL: http://www.dmry.net/wordpress-231-kullanici-yetkileri-yamasi

    THIS PATCH ONLY FOR WP 2.3.x

  3. asternick
    Member
    Posted 1 year ago #

    Thanks for the script, dmry, but I am still having the problem:
    Warning: Invalid argument supplied for foreach() in /home/menopaus/public_html/blog/wp-includes/capabilities.php on line 31

    Warning: Cannot modify header information - headers already sent by (output started at /home/menopaus/public_html/blog/wp-includes/capabilities.php:31) in /home/menopaus/public_html/blog/wp-login.php on line 12
    Warning: Cannot modify header information - headers already sent by (output started at /home/menopaus/public_html/blog/wp-includes/capabilities.php:31) in /home/menopaus/public_html/blog/wp-login.php on line 24
    Warning: Cannot modify header information - headers already sent by (output started at /home/menopaus/public_html/blog/wp-includes/capabilities.php:31) in /home/menopaus/public_html/blog/wp-includes/pluggable.php on line 391

    I also tried the php.ini fix to no avail (php_flag magic_quotes_runtime off). This is a fresh install of WP 2.3.1 which is producing these errors, and I could reinstall with no problem, but of course the problem comes right back.

    Anyone else see this on a fresh install of WP 2.3.1 and find a fix? As you might be able to tell since this is my first post I am a WP n00b!

    Thanks,
    Andrew

  4. asternick
    Member
    Posted 1 year ago #

    For a bit more detail, I am in a shared hosting environment and my sysadmin tells me .htaccess will not work so I used php.ini in the root of my blog directory for the php_flag fixes. I installed with fantastico deluxe. Any help much appreciated.

    Thanks,
    Andrew

  5. baffia
    Member
    Posted 1 year ago #

  6. asternick
    Member
    Posted 1 year ago #

    From the link:

    So, in summary: if you’re locked out of your blog and get a warning/error about wp-capabilities and some invalid foreach() loop thingy, head for PhpMyAdmin, and look carefully through the wp_user_roles field in the wp_options table. If it’s split over two or more lines, or contains funky characters, you have probably found the source of your problem.

    I have not been able to find any bad characters, nor is the field split. However I'll keep poring over it in the hopes of finding something that does not fit.

    Argh!

  7. tamersalama
    Member
    Posted 1 year ago #

    PHP initial configuration values should be as follows:

    magic_quotes_runtime = off;
    magic_quotes_gpc = off;
    register_globals = on;

    via:
    http://wordpress.org/support/topic/122367

Topic Closed

This topic has been closed to new replies.

About this Topic

Tags