Уроки PHP для начинающих


Скрипт добавления комментариев на сайте: добавляем дату - функция date()

В этой статье добавим возможность выводить на страницу дату добавления каждого комментария. Делается это чрезвычайно просто, вот так:

<?php
......
// Выводим данные
echo "<hr>Автор:<a href=mailto:$email>$name</a><br>";
$date = date("Y-m-d");
echo $date. "<br>";

echo "Сообщение:<br>$text<br>";
}
fclose($f);// закрываем файл
?>

Здесь мы применили функцию

date("Y-m-d");

значение которой поместили в переменную $date, а потом вывели на страницу оператором echo.

Кстати, никогда не понимал, почему нужно дату читать набекрень: сперва год, потом месяц, потом число. Возможно, где-то так принято, но ведь мы же пока русскоговорящие, для нас привычней так::

date("d-m-Y"); - такое-то число такого-то месяца такого-то года.

Но я заведомо допустил неточность (на самом деле, проморгал, не ругайте). Если добавить вышеприведёный код, будет выводится дата не та, когда добавлено сообщение, а дата открытия страницы! Вот это мы и исправим.

И сделаем нужно так, чтобы дата записывалась вместе с другими данными в файл-базу.

Находим в скрипте тот участок, в котором имя, электронный адрес и сам комментарий пишутся в файл-базу:

...
$f=fopen($gbpath,"w+") or die("Не могу открыть файл"); // открываем файл для дозаписи
flock($f,2) or die("Невозможно заблокировать файл"); // блокируем файл
fputs($f,"$name\n"); // записываем имя автора
fputs($f,"$email\n"); // его e-mail
$text=ereg_replace("\n"," ",$text);// убираем возвраты каретки из сообщения
fputs($f,"$text\n"); // записываем сообщение
...

И вносим следующие изменения (зелёным):

...
$f=fopen($gbpath,"w+") or die("Не могу открыть файл"); // открываем файл для дозаписи
flock($f,2) or die("Невозможно заблокировать файл"); // блокируем файл

//определяем время и дату добавления сообщения, чтобы записать их тоже
$date = date("d-m-Y");
$time = time ();
$H = date ('H', $time); //определяем часы
$i = date ('i', $time); //определяем минуты


fputs($f,"$name\n"); // записываем имя автора
fputs($f,"$email\n"); // его e-mail
$text=ereg_replace("\n"," ",$text);// убираем возвраты каретки из сообщения
fputs($f,"$text\n"); // записываем сообщение

fputs ($f, "$date\n"); // записали дату
fputs ($f, "$H\n"); //записали часы добавления сообщения
fputs ($f, "$i\n"); //записали минуты

...

Для вывода даты и времени на страницу нужно их считать из файла-базы. Поэтому также вносим дополнения в фрагмент чтения из файла:

...
while(1){// вырожденный цикл, для чтения записей из файла
$name=fgets($f,1000);// считываем имя автора
$email=fgets($f,1000);// его e-mail
$text=fgets($f,1000);// сообщение
$date = fgets($f, 1000); //дату
$H = fgets($f, 1000); //часы
$i = fgets($f, 1000); //минуты

if(feof($f)) break; // если записей больше нет выходим из цикла
// Выводим данные
.....

А из фрагмента, приведённого в самом начале статьи нужно определение даты убрать, оставив только её вывод и добавив вывод времени:

......
// Выводим данные
echo "<hr>Автор:<a href=mailto:$email>$name</a><br / >";
echo $date. "<br / >";
echo $H. " час. " .$i. " мин.<br / >";

echo "Сообщение:<br / >$text<br / >";
}
fclose($f);// закрываем файл
?>

Читайте продолжение

Автор: Андрей Чернобай

P. S. Подпишитесь на безплатную рассылку Вокруг Сайта и получайте на свой электронный адрес новые уроки по созданию сайта.

Оставьте свой отзыв о статье:



Введите цифровой код с картинки*:

Новое на сайте

Другие статьи...

Видеокурсы

Рассылки

"Вокруг Сайта"
подпишитесь и получайте на свой e-mail уроки, книги, статьи, скрипты, а также подарки и скидки на товары, продаваемые с сайта

SmartResponder.ru
Ваше имя: *
Ваш e-mail: *

"PHP-песочница"
- PHP для начинающих: уроки с подробным анализом скриптов, необходимых для вашего сайта:

PHP-песочница
Подписаться письмом

Разделы Сайта