Просмотр поста

.
reaper

jaras, Самая главная ошибка -- это html код, работа с базой и их взаимосвязь, всё в одном месте.
Получилась этакая каша. Когда скрипт совсем не большой, то ничего страшного, но когда нужно будет написать нечто более серьёзное, то это уже будет ад.

/**
 * @Автор Jaras
 * @Год 2.2.2014
 * @Связь jaras.com@bk.ru
 * @Цена Бесплатно
 * @Специально для johncms.com 
 */

Забавно. Нигде еще не видел, чтобы в докблоках указывали цену скрипта.
Этакий закос под PHPDoc?
Рекомендую ознакомится с ним и не использовать кириллицу и любые другие не стандартные символы в коде, т.к. могут возникнуть проблемы с кодировкой да и вообще нужно быть интернациональнее.
В твоём случае это будет что-то вроде следующего:
/**
 * Simple Guestbook
 * 
 * The guestbook application example.
 * 
 * @author Jaras <jaras.com@bk.ru>
 * @license The MIT License (MIT)
 */


Далее идёт html разметка, в которой я почему-то не нашел ни доктайпа, ни <html> тега.
Очень плохо. Хорошо хоть через мета-тег указал, что это html. Только про кодировку забыл.
Форматирование ужасное. Незнаю, может это ждоновский парсер так испоганил, или это так и было, но у меня все отступы в разброс, кто куда.
Зачем после каждой строки пустая строка? Чтобы строк больше было? Хе-хе.
Именовать переменные транслитом тоже не рекомендую.
//Сервер Mysql
//Пользователь Mysql
//Пароль Mysql
//БЗ Mysql
//Подключаемся к Базе данных

Такие комментарии в коде не нужны. Они ничего ровным счётом не дают.
А "БЗ Mysql" меня сначала сбило столку. Что за БЗ? Лишь после того, как я прочёл название переменной, я понял, что это должно быть имя базы данных. Тогда может быть будет лучше сказать "БД"?

Почему do while, а не while() {} ?
do while лучше использовать там, где это действительно необходимо.
И да, присваивание в условиях плохая практика, т.к. иногда это может привести к проблемам, причины которых потом сложновато будет обнаружить.
Silence оператор (@) тоже не рекомендуется использовать. Тем более в твоём случае, когда ты получаешь данные из ресурса. Есть же возможность обработать нормально, зачем срать в логи?
Потом у тебя $gost массив, но сравниваешь со строкой. Почему? Правильнее будет подсчитать его размер и сравнить с нулём или использовать empty()
Не созданные переменные сравниваешь с null, тоже плохо. А потом их еще и удаляешь

Очень хорошо, что ты использовал strip_tags, но перед выводом через htmlspecialchars данные обработать всё-таки нужно.

Еще вспомню про форматирование. Внизу у тебя по два условия в одной строке. Удобно читается? Да и вообще половина условий так, половина сяк. Отступы не соблюдены. Погугли про стандарты оформления кода и приведи всё в порядок.

Это еще наверное не все недочёты и ошибки, которые есть. Постарайся исправить хотя бы всё, кроме самой главной ошибки, о которой я сказал в начале. А затем, если с задачей справился, можно избавляться от спагетти-кода.