Следуя вашей текущей модели, я предполагаю, что вы не имеете в виду AJAX, и что вы просто имеете в виду код на стороне сервера и совместное использование в одном и том же сценарии. Вы можете сначала установить действие формы в $ _SERVER ['PHP_SELF'], чтобы убедиться, что установлен правильный атрибут действия.
Вы выводите сообщение об ошибке в пределах диапазона или все эти выходные данные помещаются после оператора echo?
echo '<span class="error">'.$error.'</span>'
Или, если не в контексте PHP вне скрипта
<span class="error"><? echo $error; ?></span>
Кроме того, вы можете рассмотреть возможность использования зрелого почтового решения php, такого как PHP Mailer , чтобы помочь установить заголовки и обеспечить более эффективную доставку.