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

.
ДоХтор
Контроллер: (mybook.php)
код (+/-)
<?php

session_start();
$data = 'data.txt';
//Обрабатываем входящие данные
if (isset($_POST)){
    require_once ('func.php');
    $login = trim(htmlspecialchars($_POST['login']));
    $email = trim(htmlspecialchars($_POST['email']));
    $msg = trim(htmlspecialchars($_POST['msg']));
    $msg = replace($msg);
    $date = date('Y.m.d - H:i:s');
    $ip = $_SERVER['REMOTE_ADDR'];
    //Формируем строку для записи
    $str = $email . '|' . $login . '|' . $date . '|' . $msg . '|ip: ' . $ip . "\n";
    //Сохраняем имя и email для автозаполнения полей
    $_SESSION['log'] = array($login, $email);
    //Формируем массив с ошибками
    if (empty($login)) $_SESSION['err'][0] = 'Введите имя!';
    if (!empty($email)){
        if (preg_match('/[0-9a-z_\.\-]+@[0-9a-z_\.\-]+\.[a-z]{2,4}/i', $email) == false){
            $_SESSION['err'][1] = 'Некорректный E-Mail!';
        }
    }
    if (empty($msg)) $_SESSION['err'][2] = 'Введите сообщение!';
    //Если ошибок нет,записываем строку в конец файла
    if (!empty($login) && !empty($msg) && empty($_SESSION['err'][1])){
        if (!isset($_SESSION['time']) || ($timeoff = time() - $_SESSION['time']) > 9){
            $fp = fopen($data, 'r');
            while (!feof($fp)){
                $str1 = fgets($fp, 4096);
                $arr = explode('|', $str1);
                if ($arr[3] == $msg){
                    $_SESSION['err'][2] = 'Такое сообщение уже есть в базе!';
                    break;
                }
            }
            fclose($fp);
            if (empty($_SESSION['err'][2])){
                unset($_SESSION['time']);
                file_put_contents($data, $str, FILE_APPEND);
                $_SESSION['time'] = time();
            }
        } else {
            $_SESSION['err'][2] = 'Подождите ' . ($timeoff - 10) . '- сек.';
        } //End антифлуд */
    }
}
header('Location: index.php');

?>