1. 
$file_list = "";
while ($file_list = readdir($dir))
после начала цикла ты теряешь содержимое переменной $file_list, присваивая ей имя очередного файла
2. 
$file_list = array ($file_name = readdir($dir));
аналогично и здесь... если ты хочешь, чтоб в $file_list сформировался html код списка 
 файлов определенного каталога, то используй другую перемнную для этого массива, при чем насколько я понимаю записано это должно быть так: 
$file_list="- ";
$file_list2=array();
while ($file_name=readdir($dir))
{
   if ($file_name!="." and $file_name!="..")
$file_list2[]=$file_name; 
    }
$file_list.=implode(" - ",$file_list2);
$file_list.=" 
";
и т.д.