Справочники, инструменты, документация

PHP: Простая система комментариев для сайта

Все комментарии записываются в текстовые файлы.

Эта система содержит всего два файла: comment.php и postcomment.php. Для использования поместите следующие строки кода там, где вы желаете отображение комментариев, например, на странице index.php:

<?php
    date_default_timezone_set('UTC+3');
    include("comment.php");
    comment("index");
?>

Где comment("index") - это url страницы, которая будет содержать комментарии. Вызов date_default_timezone_set () необходим, чтобы избежать предупреждения при вызове функции date () (может использоваться часовой пояс, отличный от UTC+3).

Содержание файла comment.php:

function comment($pageName) {
    echo '<div id="comment"><p><span style="font-size: 18px;">Комментарии:</span></p>';
    if (file_exists($pageName.".txt")) {
        $fileC = file($pageName.".txt");
        foreach ($fileC as $line) {
            $arr = explode("~", $line);
            echo "<b>".$arr[0]."</b> at ".date("D M j Y", $arr[1]).":";
            echo "<blockquote style='margin-top: 0px;'>".$arr[2];
            echo "</blockquote>";
        }
    }
    else {
        echo "Нет комментариев!";
    }
    echo '<hr width="100%" />
        <div id="write">
            <p><span style="font-size: 18px;">Написать комментарий:</span></p>
            <form method="post" action="postcomment.php">
                <table>
                    <tr><td width="100">Имя</td><td><input type="text" name="name" style="width: 400px;" /></td></tr>
                    <tr><td>Комментарий</td><td><textarea name="comment" rows="10" cols="40" style="width: 400px; height: 100px;"></textarea></td></tr>
                    <tr><td></td><td align="right"><input type="submit" name="submit" value="Отправить" /></td></tr>
                </table>
                <input type="hidden" name="page" value="'.$pageName.'" />
            </form>
        </div>
    </div>';
}

И содержание обработчика postcomment.php:

if ($_POST['page'] != '' && $_POST['name'] != '' && $_POST['comment'] != '' && file_exists($_POST['page'].".php")) {
    $name = str_replace("~", "", $_POST['name']);
    $comment = str_replace("~", "", $_POST['comment']);

    $name = strip_tags($name);
    $comment = strip_tags($comment);
    $comment = nl2br($comment, TRUE);
    $comment = str_replace(array("\r\n", "\r", "\n"), "", $comment);
    $name = substr($name, 0, 100);
    $comment = substr($comment, 0, 5000);

    $tfile = $_POST['page'].".txt";
    if (file_exists($tfile)) {
        $str = file_get_contents($tfile)."\n";
    } else {
        $str = '';
    }
    $str .= $name."~".time()."~".$comment;
    file_put_contents($tfile, $str);
}
header("Location: ". $_POST['page'].".php");