SVaa, так же у Вас куча ошибок в шаблонах регулярных выражений. Символ "-" обозначает диапазон каких-либо символов. Если Вы хотите указать, что в строке может содержаться тире, то надо указать это в самом начале символьного класса.
Как сейчас if (preg_match("/[()+-\s\d]/",$_POST['phone']))
Как должно быть if (preg_match("/[-()+\s\d]/",$_POST['phone']))
Обратите внимание на то, где сейчас находится тире в шаблоне.
Хотя таким регулярный выражением Вы не проверите нормально номер телефона.
Почитайте основы регулярных выражений.
SVaa, проверки Ваши "работают", но после проверки сразу идёт запись. Нужно сделать так, чтобы при ошибке валидации скрипт не шёл дальше.
Собирайте все ошибки валидации в массив. Потом проверяйте, если массив не пустой, то выводите ошибки, если пустой - пишите в базу.
Hey One, ну да, по количеству комментариев и по тому, что только сейчас Вы собрались заглянуть в лог у Вас действительно "мало" времени)))
Первым делом надо заглядывать во все логи, писать проверки на ошибки, включать вывод ошибок и выставлять уровень этих ошибок на полную.
Тогда действительно надо будет мало времени на поиск ошибки.
Hey One, смотрите, вопрос задали вчера, а в лог Вы собрались только сейчас смотреть... Я Вам два раза писал о проверке ошибок... Вам не кажется это странным?)))
Hey One, а почему у Вас нет проверок на ошибки при выполнении sql запроса?
В логи ещё загляните, тоже помогает найти причину.
По поводу !@copy.
Почитайте на досуге, что означает "!", почему не надо пользоваться "@" и чем отличается copy() от move_uploaded_file()
vitaly_74, вопрос лучше свой перечитайте и нормально сформулируйте, чтобы было понятно куда, что и как Вы пытаетесь подключить.
Пока из Вашего вопроса ничего непонятно.