1) Запомните, если вы каким-то чудом видите в браузере код php-файла, который в самом файле находится между тегами , значит этот код просто не выполняется. Причина - не работает сервер, либо на нем не установлен интерпретатор php. Решение: если это чей-то сторонний сервер (вероятность весьма низкая и скорее всего связана с тем, что на этом сервере изначально не предоставлялся php), то переезжать на другой сервер, где есть поддержка php; если это ваш собственный компьютер, то либо просто поставить denwer(denwer.ru), либо по частям собрать свой сервер (установить apache+php+mysql+phpmyadmin - последние два нужны, если вы однажды захотите работать с базами данных) . Разумеется, если нет поддержки выполнения php-файлов, то браузер может трактовать файл с расширением php как текстовый и не выполнять в нем даже html-разметку (правда не скажу, насколько вероятно такое поведение) . Ну и, когда вы меняете расширение с php на html, то браузер начинает понимать, что кое-что в этом файле является привычной html-разметкой.
2) Вам вообще нужно понимать, что компьютер, как правило, понимает, что ему нужно делать с тем или иным файлом по его расширению. Почему я сказал "как правило"? Для наиболее важных для жизнеспособности компьютера файлов возможно лучше проверять их по содержимому на безопасность и возможно именно так и происходит, но в большинстве случаев достаточно расширения. К чему это приводит? Если расширение зарегистрировано в системе, значит ему сопоставлено некое приложение, которое сможет этот файл обработать, и, кликая по файлу, вы даете операционной системе команду запустить именно это приложение. Php не относится к числу стандартных расширений операционной системы. Поэтому операционная система пытается обработать этот файл стандартными действиями (в частности показать его, как обычный текстовый файл или предложить пользователю самому выбрать программу, которой можно обработать данный файл)