Здравствуйте! Для начала, у вас логическая проблема, которая связана с недопониманием, как работает PHP. Рекомендую лучше разобраться в основах языка. Но это на будущее, а пока попробую помочь с тем, что есть.
Во-первых, код создания файла и записи счетчика лучше всего вынести в отдельную функцию, которая возвращает адрес файла или false в зависимости от того создан файл или нет. Сам код я не рассматриваю, но его можно сильно улучшить (например: посмотрите вот эти функции:
1 2)
Далее, вызываем функцию создания файла в момент, когда форма успешно обработана. Так она не будет создаваться сразу.
Затем, если функция вернула не false, то делаем редирект на созданную страницу через
header('Location: http://www.example.com/newpage.html');
Дополню ответ псевдокодом, для наглядности:
function createCounterPage() {
// Здесь пишем логику создания файла и счетчика
// Функция будет возвращать путь к файлу или false если его не удалось создать
}
// Обработка формы (ее лучше хранить отдельно от функции)
if (isset($_POST['btn_submit']) && !empty($_POST['btn_submit'])) {
// Обрабатываем форму...
// Если нет ошибок - запускаем логику
$counterPage = createCounterPage();
send_mail($message)
if($counterPage && is_file($counterPage)) {
header('Location: http://www.example.com/' . $counterPage);
}
}