Arkadaşım in_array kontrolünde şart yerine gelmiyorsa ne olacağına dair bir şey koymamışsın ki. Yani $gecerlisayfa içinde değilse nereye gideceğini yazmamışsın:
$gecerlisayfa=array("/index.php","/arsiv.php","/haberler.php","/okurlar.php","/profil.php","/haberic.php","/yazar.php","/icerik.php");
if (in_array($_SERVER['PHP_SELF'],$gecerlisayfa)){
if (!empty($_SERVER['QUERY_STRING'])) $_SESSION["adres"]=$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'];
else $_SESSION["adres"]=$_SERVER['PHP_SELF'];
}else{
$_SESSION["adres"] = 'gidecek_sayfa';//buraya şart karşılanmayınca gideceği yeri yazacaksın. PHP_SELF veya ne ise
}