>>821
$_SERVERで取れるのは環境変数
環境変数って言うぐらいだから、その値が必ずある保証なんてないし、めちゃくちゃな値をセットする事もできる

例えば
$_SERVER['HTTP_USER_AGENT']
とかな。自分でめちゃくちゃな値をセットして自分で実験してみたらいい

isset()なんか使わんけどねw
あるか無いか分からない時は getenv() 使えばいい

urldecode()にいたっては検証用の関数ですらない
URLエンコードされたデータをデコードしてるだけ

なんていうかHTTPの基礎から理解できてない
とりあえずGoogle Chromeのデベロッパツールでも眺めてHTTPの流れから理解した方がいいんじゃね?