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.="
";
и т.д.