Мой моск противится тому, чтобы писать такие маленькие скрипты с ООП, по этому объективной оценки дать не смогу. Кроме разве одного - смесь ООП с говнокодингом, это сюр по моему.
И способ хранения данных мягко скажем суров для такой продвинутой гостевухи, раз она по последнему писку. В сто раз проще и надежнее использовать сериализацию.
Что касаемо локальной реализации - пару моментов увидел при беглом просмотре.
1.
mesage.phpPHP |
if (is_numeric($_GET['id'])) $id_mes = htmlspecialchars($_GET['id']); |
зачем тут обработка, если уже проверили, что там кроме цифр ничего нет? Да и саму переменную надо бы инициализировать, иначе можнт быть обращение к несуществкющему элементу массива.
2. Message.php
PHP |
$this->user = htmlspecialchars(trim($user)); $this->email = htmlspecialchars(trim($email)); $this->site = htmlspecialchars(trim($site)); $this->text = htmlspecialchars(trim($text)); |
всё таки эта функция разрабатывалась для браузера, а не для файла. На выходе всё таки нужно данные обрабатывать, а не перед записью.
PHP |
if ($file = fopen(self::path_bd, "a+")){ $arr_file = $this->get_file_array();
if ($arr_file == "") $this->id = 1; else $this->id = count($arr_file) + 1;
$paste = "~|~ ~id#".$this->id." ~|~ ".$this->user." ~|~ ".$this->email." ~|~ ".$this->site." ~|~ ".$this->text." ~|~ ".$this->send_new." ~|~ ".$this->date." ~|~";
flock($file, LOCK_EX); |
вот тут, если после открытия файла производишь какие то действия, лочить файл нужно сразу. Это пойдет на пользу, потому что пройдет некоторое время, и завершатся начатые процессы. Вообще рекомендуется делать паузу в этом месте, sleep(1) к примеру, чтобы небыло совместного доступа.
и еще
PHP |
if(preg_match( "[".$this->id."\s]", $line)) { $pred_line = ($line_num == '0' ? $line_num : $line_num -1); echo $line_num; return true; break; } |
бряк после ретурна не нужен совсем. Некрасиво это.
А так норм. Правда скобки фигурные после функции не очень смотрятся, но это дело вкуса.