Я вас же спрашиваю об отправке формы, а вы кодом отвечаете. Вопрос отношения к JS не имеет, не в этом разделе его надо было задавать.
header('location: http://f0184040.xsph.ru/#openModal');
и далее код, это уже неверно, обязательно нужно делать выход - exit; после передачи заголовка.
Но что это за заголовок? А это что означает -
action="forms.php" - получается попадаем на эту страницу, которая отправляет сообщение.? Как это, если не видно асинхронных запросов, а значит с этой страницы либо уйти на другую, либо нет смысла в таком перенаправлении.
echo "location.href = '#openModal'"; - а это попытка тогда чего? Во-первых работать не будет, ибо это просто строка, а не js-код. Во-вторых как одним значением можно определить два состояния - первый заголовок с #openModal, и вторая попытка тоже с #openModal?
Вообще по уму должно быть так - страница должна отвечать только на POST запросы, то есть если вызов ее будет через адресную строку, то либо перенапрваление, либо выход и ..., решайте.
if($_SERVER['REQUEST_METHOD']=='POST') {
//основной код
//Здесь же и перенаправления, и если #openModal запускает на клиенте окно сообщений, и нужно передать их два,
//то это либо два перехода по разным адресам, либо на один и тот же адрес,
//но с передачей дополнительного параметра определяющего текст сообщения.
//Если такой параметр нежелателен в адресе, можно передать через сессию.
//Не самый лучший вариант и разумнее ограничится одним сообщением - результатом "принято и свяжемся".
//А вот если форма отправляется асинхронным запросом (ajax), тогда возможны любые диалоги
//и передавать хеш в адресе не потребуется
} //else ...
Надеюсь правильно понял, чего делается.