Yes, I' m using cookies and it was easy to do, your code is easy to follow. Here' s what changed:
session.asp: Immediately after you retrieve the mem ID, I call a create-cookie function that' s in a separate include file that we use for our custom functions. The create-cookie function pulls data from a new stored procedure that lists everyone in the user' s block list and writes the data into a cookie using a delimited string.
address.asp: Added two new " case" statements for your " mode" querystring variable: block, unblock. The " block" code simply calls an existing stored procedure to add a user to the block list, the " unblock" code runs a " delete" SQL statement. These case statements also call the create-cookie function and rewrite the ignore cookie. I also call my create-cookie function to rewrite the cookie when a user adds/removes someone from his list via the address book (in your other case statements).
tt.asp: I check the mem ID of the poster against the delimited cookie string, if it' s found, I alert the user by displaying
***ignored*** above their name in the message list. Everything else in tt.asp remains as it was.
tm.asp, m.asp: I compare each message' s mem ID with the cookie string and if the ID is in the block list, I blank the avatar, the location, the signature, etc. and replace the body variable with a message telling them the user is on their ignore list and provide a hyperlink to unblock. I also created two icons (

and

) that display next to the user name in avatar area of the post that serve as on-the-fly methods to add/remove members on a user' s block list (by calling
address.asp?mode=block&mem=nnnn and
address.asp?mode=unblock&mem=nnnn). Here' s what it looks like:

Gene