Вот это
$f = fopen("inc/cities.txt","r");
while (!feof ($f)) {
$clist[] = fgets($f);
}
fclose ($f);можешь сразу поменять на вот это
$clist = file("inc/cities.txt");Не знаю, будет ли быстрее, но читать намного приятнее
Как уже недавно говорил Ромик, тут задача - дебаггинг.
Возьми и вставь перед
if($_POST[\'city\'] == $val) echo \'selected\';
строчку
echo "Post: ". $_POST[\'city\'] ." == ". $val ."
\\n";
или что-то типа этого.
Короче говоря, отлавливай значения переменных и смотри, почему условие ($_POST[\'city\'] == $val) не выполняется.