Not really an answer, but it's a bit too much info for a comment.
I will write my answer here based on your last comment:
@PeeHaa I know they are old. and I know some of the vulnerabilities had been fixed. I am running more than 200 sites, some of which are dated back to 2008 and use plugins or snippets. (like phpthumb (the old version)) that are not so secure. I am sorry, I do not see why this question is such a bad question - because of the bad approach/code , or because the idea of adding a new security layer for get/post is so bad ? if it is the code , so please someone teach me how to do that right , if the idea is so horrible - so please explain why. all I get up to now is down votes :-)
That code is pretty horrible imo and should not be something you should use. Only in the comments you note the fact that you want to protect WP installations. Which is a pretty important piece of information missing in your question / from the tags.
Anyway as stated that code is pretty horrible, but since the fact I haven't ever used WP (for the issue of horrible code) I won't judge. But I will tell you what I think is bad about that code:
global $user_ID;
The use of the global keyword is a bad habit imho. Keep that in mind for new code when possible. Now for that if statement:
I don't have any clue what strlen($_SERVER['REQUEST_URI']) > 255 should prevent, but it may be the fact where WP or some plugin screws up at some point.
stripos($_SERVER['REQUEST_URI'], "eval(")
The above doesn't look just strange, because it would only be a problem when you would execute code coming from the client (which is something you would never do (unless you use some very wrong WP plugin)), but it is also just plain wrong. stripos() may also return 0 which will be falsy. SO that check may be useless. I don't know enough of wordpress and don't know whether something like this may be possible:
http://your-domain/eval(insert malicious code here)
REQUEST_URI always start with /.
One last thing about those headers where the errors are surpressed. I suspect it prevent errors when the headers are already sent. What would happen when this is the case. Would the check still work.
The best thing you can do is upgrade WP and plugins or get rid of rotten plugins. That would be ideal. However as you have stated you have 200 installations which may make it impossible to do in the short term. So you may have to sort to indeed some code like this to "fix" any issues.
To get better answers in the future you might consider providing more detail in your question (e.g. the fact that you are trying to preotect WP installs). Also I think that would still be a very broad question. It is often better to ask a specific question.