If you are going to set visibility on a lot of blocks, see Block Page Visibility
Review of how the role visibility works in Drupal 5
- If no role check boxes are checked, block is visible to all roles.
- If "authenticated user" is checked, all logged in users will see the block, checking any of the other role boxes (other than anonymous user) is meaningless.
- Checking anonymous users means that logged-in users, unless they belong to another role that is also checked, will not see the block.
- Go to administer >> access control and ensure “administer blocks “ and “use PHP for block visibility” are checked for your role.
- Go to administer >> blocks and find the block you want to set the visibility for.
- Click “configure” next to that block.
- Under the section entitled, “Page specific visibility settings”, click the radio button for “Show if the following PHP code returns TRUE”
- In the text box provided, enter whichever of the following snippets meets your needs: