Это скорее не ответ, а комментарий. Просто объемный комментарий, потому пишу здесь (комментарии ограничены по длине сообщения).
Во-первых, что именно не получается? "Не добавляются данные" - вы может кнопку "сабмит" забыли нажать, они поэтому и не добавляются.
Условие if (isset($_POST['send_message'])) ...
выполняется? Если выполняется, попробуйте вывести ваш sql из mysql_query(...)
и выполнить его ручками в клиенте mysql - узнаете, что за ошибка.
Во-вторых, есть функция mysql_error, которая как раз и говорит о том, какие ошибки у вас есть в sql.
В-третьих, это что за ужас? А если в шаблоне будет куча кода? Вы как отлаживать такой код собираетесь?
Если очень грубо, разбейте код на части: отдельно логика, отдельно вьюха. Выведите вашу страницу в отдельный файл-шаблон, уберите из нее все ваши $_SESSION
. В зависимости от выбранного подхода, здесь могут быть либо placeholer`ы типа %message%, которые вы потом будете заменять, либо переменные типа $error, либо что-то еще.
Не помещайте определения функций там же, где и их вызовы. Т.е. будет отдельный файл, где определены нужные функции, будут отдельные файлы для шаблонов, будут отдельные файлы для логики.
Например, в файле func.php вы определили ваши функции, в файле template.php определили шаблон, в файле index.php задали нужную логику:
if (is_insert_data()) {
insert_data();
} else {
render_template();
}
Тогда если надо будет обновить шаблон, вам не надо будет искать, что отвечает за шаблон, что отвечает за логику. Вы сразу будете править шаблон. Если надо будет добавить в шаблон другие переменные - только тогда будете править соответствующие функции.
Кроме того, если возникнут проблемы, вы будете знать, где они: либо в is_insert_data
(если условие не срабатывает), либо в insert_data
(если условие срабатывает, но данные не вставляются) и т.д.
В шаблоне тоже никаких $_SESSION
, $_POST
и т.д. Есть функция, которая выводит шаблон, в этой функции присваиваете переменным нужные значения (хоть откуда, может быть из той же $_SESSION
) и уже этими переменными орудуете в шаблоне. Тогда, если понадобится изменить какую-то логику (например, при определенных условиях вместо ошибки из SESSION надо отображать другое сообщение), можно будет очень просто изменить то, что действительно надо, а не все подряд.
И последнее, а кто сказал, что можно использовать в качестве имен переменных зарезервированные слова? from
- это специальное имя mysql, по-любому на это слово и ругается. Если уж и добавили такое поле, то упоминать его надо в кавычках (типа `field`).