I would bet that prior to you updating your version of php you were accessing your global vars like this:
function name(var1, var2){
global $var1, $var2;
}
I would also bet that these are the vars that are generating the "undefined errors". Check in you php.ini file for the config line that refers to global vars. It is probably set to "off". If you turn this "on" it will solve your problem. However, that is not the best solution. You should be accessing these vars with $GETS and $POSTS, this is the recommended way and why the fore mentioned parameter is set to "off".
Secondly, silencing error msg's with @ does not and will not make your vars defined. Applying a @ prior to a statement basically tells php to "shut up". The error still exists but you can no longer hear php complaining about it. If you recall batch files, you used @ prior to a call so that the computer wouldn't spit the cmd out to stdout:
@ cd dir_name
The computer would cd but not show it on the display to the user ... I may have just revieled my age a little bit.
Hope this helps!