Как сделать комментарии на сайте php
Перейти к содержимому

Как сделать комментарии на сайте php

  • автор:

Как сделать комментарии на сайте php

Привет всем! Недавно столкнулся с проблемой написания комментариев на сайте. Просмотрел весь интернет в поиске нормальных статей, по поводу написания комментариев на чистом PHP 7. Статьи были, но в основном либо устаревшие, либо не работающие уже совсем. Для написания комментариев Вам необходимо знать PHP 7, MySQL, JavaScript и Ajax. Приступим!

Front-End

Структура

Для начало создаем все нужные файлы и папки.

Далее создаем самую простую форму заполнения комментария.

В comments.php:

   Комментарии     

Комментарии к статье

Работаем с БД

Подготовка Базы Данных

Сначала создадим нужную нам Базу Данных и таблицу:

Базу данных назовем test.

Далее создаем таблицу:

CREATE TABLE `test`.`messages` ( `id` INT(255) UNSIGNED NOT NULL AUTO_INCREMENT , `author` VARCHAR(30) NOT NULL , `message` TEXT NOT NULL , `date` VARCHAR(25) NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB CHARSET=utf8 COLLATE utf8_general_ci; 

Она должна быть такой структуры:

Подключение к Базе Данных

Теперь подключимся к самой базе данных. Подключаться будем в отдельном файле, чтобы в дальнейшем каждый раз не подключаться.

В файле connect.php пишем:

Вместо login и password вставляете свои значения (логин и пароль соответственно). Например у меня login root, и пароль — root:

test — название нашей Базы Данных.

Пишем сам скрипт

Получение и обработка данных из полей

Теперь нам нужно получить данные из полей. Но для начала сделаем нашу форму немного симпатичнее, чтобы было приятнее с ней работать. В style.css пропишем:

* < max-width: 800px; margin: 0 auto; >textarea < resize: none; >.clear < margin-top: 50px; >#author < width: 100%; height: 4%; font-size: 1.3em; >.is-h < font-weight: bold; font-family: cursive; margin-top: 2%; >#message < width: 100%; font-size: 1.5em; >.is-button < cursor: pointer; color: white; background-color: green; width: 25%; height: 50px; margin-top: 1%; outline: none; /* Убираем линию вокруг кнопки при нажатии */ font-weight: bold; font-family: cursive; font-size: 1.2em; border: none; transition: all 0.3s ease-out; >.is-button:hover

Теперь наша форма должна выглядеть так:

Обработка данных с помощью AJAX

Теперь получим данные из полей, обработаем их и отправим в PHP на доработку.

В файле comments.php, в теге script пропишем:

$(function() < $("#send").click(function()< // При нажатии на кнопку var author = $("#author").val(); // Получаем имя автора комментария var message = $("#message").val(); // Получаем само сообщение $.ajax(< // Аякс type: "POST", // Тип отправки "POST" url: "sendMessage.php", // Куда отправляем(в какой файл) data: , // Что передаем и под каким значением cache: false, // Убираем кеширование success: function(response)< // Если все прошло успешно var messageResp = new Array('Ваше сообщение отправлено','Сообщение не отправлено Ошибка базы данных','Нельзя отправлять пустые сообщения'); var resultStat = messageResp[Number(response)]; if(response == 0)< $("#author").val(""); $("#message").val(""); $("#commentBlock").append("
Автор: "+author+"
"+message+"
");> $("#resp").text(resultStat).show().delay(1500).fadeOut(800);>>);return false;>);>);

Обработка данных и запись их в БД

Теперь приступим к самому интересному. Для начала нам нужно провести самые примитивные проверки и «словить» данные с AJAX. В sendMessage.php пишем:

query("INSERT INTO `messages` (`author`, `message`, `date`) VALUES ('$author', '$message', '$date')"); // Передаем в БД значения if($result == true)< echo 0; //Ваше сообшение успешно отправлено >else < echo 1; //Сообщение не отправлено. Ошибка базы данных >>else < echo 2; //Нельзя отправлять пустые сообщения >> // Если отключен JavaScript if($_POST['js'] == 'no')< if($_POST['message'] != '' && $_POST['author'] != '')< $author = $_POST['author']; $author = addslashes($author); $author = htmlspecialchars($author); $author = stripslashes($author); $message = $_POST['message']; $message = addslashes($message); $message = htmlspecialchars($message); $message = stripslashes($message); $date = date("d-m-Y в H:i:s"); $result = $mysql->query("INSERT INTO `messages` (`author`, `message`, `date`) VALUES ('$author', '$message', '$date')"); if($result == true)< echo "Ваше сообшение успешно отправлено"; //Ваше сообшение успешно отправлено >else < echo "Сообщение не отправлено. Ошибка базы данных"; //Сообщение не отправлено. Ошибка базы данных >>else < echo "Нельзя отправлять пустые сообщения"; //Нельзя отправлять пустые сообщения >> ?> 

Вывод комментариев

Теперь дело за малым. Осталось всего лишь вывести эти комментарии в приятной для глаза форме.

Сначала необходимо подключиться к БД в comments.php. В самом верху пишем:

В div с в файле comments.php пишем:

query("SELECT * FROM `messages`"); /*Получаем все данные из таблицы*/ $comment = $result->fetch_assoc(); /* В результирующий массив */ doАвтор: ".$comment['author']."
".$comment['message']."
"; // Выводим >while($comment = $result->fetch_assoc()); ?>

По комментариям должно быть все понятно. И теперь у нас должно получиться что-то вроде такого:

Всем спасибо за Внимание! Вот исходники:

comments.php

    Комментарии      

Комментарии к статье

query("SELECT * FROM `messages`"); $comment = $result->fetch_assoc(); doАвтор: ".$comment['author']."
".$comment['message']."
"; >while($comment = $result->fetch_assoc()); ?>

sendMessage.php:

query("INSERT INTO `messages` (`author`, `message`, `date`) VALUES ('$author', '$message', '$date')"); if($result == true)< echo 0; //Ваше сообшение успешно отправлено >else < echo 1; //Сообщение не отправлено. Ошибка базы данных >>else < echo 2; //Нельзя отправлять пустые сообщения >> //**************************************** Если отключен JavaScript ************************************ if($_POST['js'] == 'no')< if($_POST['message'] != '' && $_POST['author'] != '')< $author = $_POST['author']; $author = addslashes($author); $author = htmlspecialchars($author); $author = stripslashes($author); $message = $_POST['message']; $message = addslashes($message); $message = htmlspecialchars($message); $message = stripslashes($message); $date = date("d-m-Y в H:i:s"); $result = $mysql->query("INSERT INTO `messages` (`author`, `message`, `date`) VALUES ('$author', '$message', '$date')"); if($result == true)< echo "Ваше сообшение успешно отправлено"; //Ваше сообшение успешно отправлено >else < echo "Сообщение не отправлено. Ошибка базы данных"; //Сообщение не отправлено. Ошибка базы данных >>else < echo "Нельзя отправлять пустые сообщения"; //Нельзя отправлять пустые сообщения >> ?> 
* < max-width: 800px; margin: 0 auto; >textarea < resize: none; >.clear < margin-top: 50px; >#author < width: 100%; height: 4%; font-size: 1.3em; >.is-h < font-weight: bold; font-family: cursive; margin-top: 2%; >#message < width: 100%; font-size: 1.5em; >.is-button < cursor: pointer; color: white; background-color: green; width: 25%; height: 50px; margin-top: 1%; outline: none; /* Убираем линию вокруг кнопки при нажатии */ font-weight: bold; font-family: cursive; font-size: 1.2em; border: none; transition: all 0.3s ease-out; >.is-button:hover

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

Это пример

Заголовок вверху выведет ‘Это пример’.

‘C’-комментарии заканчиваются при первой же обнаруженной последовательности */ . Убедитесь, что вы не вкладываете друг в друга ‘C’-комментарии. Очень легко допустить эту ошибку при комментировании большого блока кода.

/*
echo «Это тест»; /* Этот комментарий вызовет проблему */
*/
?>

User Contributed Notes 12 notes

9 years ago

Notes can come in all sorts of shapes and sizes. They vary, and their uses are completely up to the person writing the code. However, I try to keep things consistent in my code that way it’s easy for the next person to read. So something like this might help.

/* Title Here Notice the First Letters are Capitalized */

# Option 1
# Option 2
# Option 3

/*
* This is a detailed explanation
* of something that should require
* several paragraphs of information.
*/

// This is a single line quote.
?>

18 years ago

A nice way to toggle the commenting of blocks of code can be done by mixing the two comment styles:
//*
if ( $foo ) echo $bar ;
>
// */
sort ( $morecode );
?>

Now by taking out one / on the first line..

/*
if ($foo) echo $bar;
>
// */
sort ( $morecode );
?>
..the block is suddenly commented out.
This works because a /* .. */ overrides //. You can even «flip» two blocks, like this:
//*
if ( $foo ) echo $bar ;
>
/*/
if ($bar) echo $foo;
>
// */
?>
vs
/*
if ($foo) echo $bar;
>
/*/
if ( $bar ) echo $foo ;
>
// */
?>

10 months ago

As of php 8, single line comments starting exactly with «#[» have a special meaning: they are treated as «attributes», and they must respect the expected syntax. See: https://www.php.net/manual/en/language.attributes.php

So the following code throws an error in php 8+, while it is perfectly valid in php #[~~ my super cool comment ~~~]
?>

To be safe, just always use «//» comments instead of «#». Maybe in the future there will be other special meanings for the «#» comments, who knows.

10 years ago

It is worth mentioning that, HTML comments have no meaning in PHP parser. So,

WILL execute some_function() and echo result inside HTML comment.

18 years ago

Comments in PHP can be used for several purposes, a very interesting one being that you can generate API documentation directly from them by using PHPDocumentor (http://www.phpdoc.org/).

Therefor one has to use a JavaDoc-like comment syntax (conforms to the DocBook DTD), example:
/**
* The second * here opens the DocBook commentblock, which could later on

* in your development cycle save you a lot of time by preventing you having to rewrite

* major documentation parts to generate some usable form of documentation.
*/
?>
Some basic html-like formatting is supported with this (ie
tags) to create something of a layout.

17 years ago

MSpreij (8-May-2005) says /* .. */ overrides //
Anonymous (26-Jan-2006) says // overrides /* .. */

Actually, both are correct. Once a comment is opened, *everything* is ignored until the end of the comment (or the end of the php block) is reached.

Thus, if a comment is opened with:
// then /* and */ are «overridden» until after end-of-line
/* then // is «overridden» until after */

18 years ago

Be careful when commenting out regular expressions.

E.g. the following causes a parser error.

I do prefer using # as regexp delimiter anyway so it won’t hurt me 😉

12 years ago

Comments do NOT take up processing power.

So, for all the people who argue that comments are undesired because they take up processing power now have no reason to comment 😉

// Control
echo microtime (), «
» ; // 0.25163600 1292450508
echo microtime (), «
» ; // 0.25186000 1292450508

// Test
echo microtime (), «
» ; // 0.25189700 1292450508
# TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST
# .. Above comment repeated 18809 times ..
echo microtime (), «
» ; // 0.25192100 1292450508

?>

They take up about the same amount of time (about meaning on a repeated testing, sometimes the difference between the control and the test was negative and sometimes positive).

16 years ago

it’s perhaps not obvious to some, but the following code will cause a parse error! the ?> in //?> is not treated as commented text, this is a result of having to handle code on one line such as

if( 1 == 1 )
// ?>
>
?>

i discovered this «anomally» when i commented out a line of code containing a regex which itself contained ?>, with the // style comment.
e.g. //preg_match(‘/^(?>c|b)at$/’, ‘cat’, $matches);
will cause an error while commented! using /**/ style comments provides a solution. i don’t know about # style comments, i don’t ever personally use them.

13 years ago
If you are using editor with code highlight, it’s much easier to notice error like /* */ */.
17 years ago

a trick I have used in all languages to temporarily block out large sections (usually for test/debug/new-feature purposes), is to set (or define) a var at the top, and use that to conditionally comment the blocks; an added benefit over if(0) (samuli’s comment from nov’05) is that u can have several versions or tests running at once, and u dont require cleanup later if u want to keep the blocks in: just reset the var.

personally, I use this more to conditionally include code for new feature testing, than to block it out. but hey, to each their own 🙂

this is also the only safe way I know of to easily nest comments in any language, and great for multi-file use, if the conditional variables are placed in an include 🙂

for example, placed at top of file:

and then deeper inside the file:

print( «This code is included since we are testing version 3» );
>
?>

print( «This code is ‘commented’ out» );
>
?>

3 years ago

In php there are 3 types of comments
1.single line c++ style comment(//)
2.single line Unix shell stype comment(#)
3.multi line c style comment(/*/)

single or multi line comment comes to the end of the line or come first to the current block of php code.

HTML code will be printed after //. > or #. >
closing tag breaks the php mode and return to html mode.

different comments in different tags:
===================================

Standard tag: single line c++ style comment

The header above will break php mode and return html mode and show ‘Standard tag:single line c++ style comment’

Standard tag: single line unix shell style comment

The header above will break php mode and return html mode and show ‘Standard tag:single line unix shell style comment’

Standard tag: multi line c style comment

The header above will break php mode and return html mode and show ‘Standard tag:multi line c style comment’

short echo tag: single line c++ style comment

The header above will break php mode show a unexpected syntex error’

short echo tag: single line c++ style comment

The header above will break php mode show a unexpected syntex error’

short echo tag: multiple line c style comment

The header above will break php mode show a unexpected syntex error’

Short tag: single line c++ style comment

The header above will break php mode and return html mode and show ‘Short tag:single line c++ style comment’

Short tag: single line unix shell style comment

The header above will break php mode and return html mode and show ‘Short tag:single line unix shell style comment’

Short tag: multi line c style comment

The header above will break php mode and return html mode and show ‘Short tag:multi line c style comment’

Script tag: single line c++ style comment

The header above will break php mode and return html mode and show ‘Script tag:single line c++ style comment’

Script tag: multi line c style comment

The header above will break php mode and return html mode and show ‘Script tag:multi line c style comment’

Script tag: single line unix shell style comment

The header above will not break php mode

  • Основы синтаксиса
    • Теги PHP
    • Изолирование от HTML
    • Разделение инструкций
    • Комментарии
    • Copyright © 2001-2023 The PHP Group
    • My PHP.net
    • Contact
    • Other PHP.net sites
    • Privacy policy

    Как сделать комментирование на сайте

    Как сделать комментирование на сайте

    Очень часто у меня спрашивают, как сделать комментирование на сайте на PHP. Я решил не объяснять на пальцах каждому, а просто написать статью, в которой показать, как делается комментирование на сайте с использованием PHP и MySQL.

    Мы сейчас будем разбирать PHP-код для создания комментирования на сайте, где имеется множество страниц, на каждой из которых свои комментарии. Например, таким образом, реализовано у меня. Это самый популярный вариант, когда у каждой страницы (статьи, поста и прочего) свой набор комментариев.

    Первым делом, создаём таблицу в базе данных (пусть она называется comments), где будут храниться комментарии со следующими полями:

    • id — уникальный идентификатор.
    • page_id — хранится идентификатор той страницы, на которой находится данный комментарий.
    • name — имя того, кто оставил комментарий.
    • text_comment — текст комментария.

    После создания таблицы, давайте создадим HTML-форму, которую нужно будет размещать на каждой странице, где Вы хотите разрешить добавление комментариев:

    Единственная особенность данного HTML-кода — это input hidden. В value должен находиться уникальный идентификатор текущей страницы (статьи или поста).

    Теперь займёмся обработкой формы. Для этого создаём файл comment.php с таким кодом:

    /* Принимаем данные из формы */
    $name = $_POST[«name»];
    $page_id = $_POST[«page_id»];
    $text_comment = $_POST[«text_comment»];
    $name = htmlspecialchars($name);// Преобразуем спецсимволы в HTML-сущности
    $text_comment = htmlspecialchars($text_comment);// Преобразуем спецсимволы в HTML-сущности
    $mysqli = new mysqli(«localhost», «root», «», «db»);// Подключается к базе данных
    $mysqli->query(«INSERT INTO `comments` (`name`, `page_id`, `text_comment`) VALUES (‘$name’, ‘$page_id’, ‘$text_comment’)»);// Добавляем комментарий в таблицу
    header(«Location: «.$_SERVER[«HTTP_REFERER»]);// Делаем реридект обратно
    ?>

    И, наконец, последняя стадия — это вывод комментариев на странице:

    $page_id = 150;// Уникальный идентификатор страницы (статьи или поста)
    $mysqli = new mysqli(«localhost», «root», «», «db»);// Подключается к базе данных
    $result_set = $mysqli->query(«SELECT * FROM `comments` WHERE `page_id`=’$page_id'»); //Вытаскиваем все комментарии для данной страницы
    while ($row = $result_set->fetch_assoc()) print_r($row); //Вывод комментариев
    echo «
    «;
    >
    ?>

    Вот и всё. Безусловно, это лишь база, необходимая для создания возможности комментирования на сайте. Здесь самое минимальное, что придётся сделать — это оформить внешний вид комментариев. Также надо обязательно проверить поступившие данные из формы. Также можно добавить дополнительные поля (например, e-mail ещё запрашивать).

    Но всё это уже детали, а комментирование на PHP уже сделано.

    Чтобы понять весь алгоритм и, главное, научиться самостоятельно создавать подобные скрипты, обязательно изучите PHP и MySQL, и в этом Вам поможет мой Видеокурс «PHP и MySQL с Нуля до Гуру«: http://srs.myrusakov.ru/php

    Создано 01.02.2012 14:47:38

  • Михаил Русаков

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:
    Она выглядит вот так:
  2. Текстовая ссылка:
    Она выглядит вот так: Как создать свой сайт
  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии ( 159 ):

fulky 01.02.2012 20:02:42

не понял с пунктом «вывод комментариев на странице» это создаётся ещё один php файл?? или все в одном? и ещё один вопрос, создал форму, как у вас и пхп файл, как нажимаю в форме кнопку отправить пишет вот такое: query(«INSERT INTO `comments` (`name`, `page_id`, `text_comment`) VALUES (‘$name’, ‘$page_id’, ‘$text_comment’)»);// Добавляем комментарий в таблицу header(«Location: «.$_SERVER[«HTTP_REFERER»]);// Делаем реридект обратно ?>

Admin 01.02.2012 20:06:20

Вы либо невнимательно читаете, либо Вам ещё просто рано про это вообще читать. Вы основы точно знаете? Теперь по вопросам: 1. Вывод комментариев на той же странице, где форма. 2. Как он может такое писать? Только если, конечно, Вы не открываете через file:///Z:\home. Если так, то забудьте про эту статью. С такой проблемой новички сталкиваются в первый день обучения PHP.

lion337 01.02.2012 22:51:51

Евгений вы для начала разберите алгоритм создания комментариев. Всё создаётся на одной или двух страницах. Допустим если на двух то: text.php //это файл для формы и вивода комментов update_comment.php //это фаил обработчик Вот и всё!

fulky 01.02.2012 20:14:16

сорри поспешил, ушел дальше разбираться

Nikitoz01 02.02.2012 13:00:10

Спасибо Михаил всё это знал только вот не знал как id страницы отправить спасибо!!

Karlen 03.02.2012 23:18:43

Салам! Михайил У меня вывод комментариев на странице не выходить. В базе MySQL данные есть но на странице нету!

Admin 03.02.2012 23:31:19

Тысяча причин, все перечислить невозможно. Могу лишь назвать парочку: по-другому названы поля в таблице, соответственно, неверный запрос. Либо ещё файл не обрабатывает PHP вообще, либо он имеет расширение html, либо запускается неправильно (допустим, просто открывается через двойной клик в браузере).

Arthur 16.02.2012 08:01:35

Михаил, а идентификатор страницы, обычная строка или с Auto_increment

Admin 16.02.2012 08:27:49

Это уникальный номер страницы (число). А какой он, неважно, главное, чтобы число и уникальный.

mg_loima 17.04.2012 15:23:32

хорошая статья)) попробую ))

Как сделать отзывы на сайте | PHP

Простейшее решение создания страницы отзывов/комментариев на сайте без базы данных. Все сообщения будут приходить на email. Чтобы отсеять спам, публиковаться будут только те, которые не содержат http://. Если в тексте присутствует http://, но оно не является спамом, то его можно будет вручную прописать в файле comments.txt.

В файле .htaccess закрыть служебную информацию comments.txt:

 Deny from all 

Создать файл comments.html, в самый верх которого без пробелов и отступов вставить скрипт PHP:

// занести в массив значение полей $z = array( 1 => $_POST['name'], 2 => $_POST['email'], 3 => $_POST['content'] ); $dl = ''; if($z[1] && $z[2] && $z[3])< mail("name@yandex.ru", "заполнена форма site.ru", $z[1] . "\n" . $z[2] . "\n" . $z[3]); // сообщение на ваш email о новом отзыве if(strpos($z[3], 'http://') === false)< // если в тексте отзыва нет http:// $fp = fopen("comments.txt", "a+"); // режим записи $mytext = "" . $z[1] . "" . $z[3] ; $save = fwrite($fp, $mytext); // запись в файл fclose($fp); // закрытие файла Header("Location: ".$_SERVER['PHP_SELF']); // обновить страницу; обновлённая версия содержит опубликованный комментарий exit; > else < // если в тексте есть http:// $dl = 'Ваш отзыв будет опубликован после проверки автором сайта'; // показан этот текст > > else < $fp = @fopen("comments.txt", "r"); // режим чтения if ($fp) < while (!feof($fp)) < $dl .= fgetss($fp, 8000, ",,"); // ,, - это список тегов, разрешённых для публикации > > fclose($fp); > ?>

В удобном месте в comments.html добавить HTML код формы

При первом сообщении создастся файл comments.txt. В него будут падать все оставленные отзывы. Их можно будет удалять, редактировать либо добавлять свои.

66 комментариев:

виталий нестёркин В файле .htaccess закрываем служебную информацию всех .txt файлов
а если такого файла вобше нету то делаем файл .htaccess.html и помешаем его на сервер да? виталий нестёркин а куда именно вписать

RewriteEngine On
RewriteBase /
RewriteCond % !-f
RewriteCond % !-d
RewriteRule . /index.php [L]

AddDefaultCharset utf-8
# END WordPress виталий нестёркин да уж зашел на блок почитать статью про оптимизацию сайта . а зацепился за эту статью . 4 утра а так не чего и не добился NMitra Не
Deny from all
а

Deny from all

иначе все страницы закроете 🙁 Пока не трогайте этот файл.

RewriteRule . /index.php [L] — у вас же нет этой страницы. У вас почему-то /index.html

Из-за того, что у вас файлы, а не база данных, это тоже не нужно
RewriteCond % !-f
RewriteCond % !-d NMitra Здесь упрощенный вариант http://www.cyberforum.ru/html/thread389569.html виталий нестёркин
Deny from all
я это и имел ввиду просто не все скопировол и не все вставилось а я не заметил
виталий нестёркин у меня на сервере где лежит сайт вобше нет ну или не нашел файл .htaccess а это то что нашел в интернете так сказать совет как сделать файл .htaccess

RewriteEngine On
RewriteBase /
RewriteCond % !-f
RewriteCond % !-d
RewriteRule . /index.php [L]

AddDefaultCharset utf-8
# END WordPress

пока не чего не куда не пихал пока не разберусь вечером почитаю ваш совет про упрошеннуцю схему может что получится (ну вечер у меня как заметили очень поздно наступает тогда же и в контакте напишу ) виталий нестёркин чтобы работали скрипты на php нужно чтоб на сайте стоял что то вроде ворлд пресс или ему подобное так . Пытаюсь поставить на сервер где лежит сайт ворлд прес при установки пишут что установка cms удалит все файлы что находятся в директории получается надо сохранить все файлы потом поставить ворлд прес а потом опять сайт выгрузить на сервер так что ли виталий нестёркин а вот этот код он будет работать без всяких PHP если его просто вставить в HTML страницу

Ваш код HTML не может быть принят: Недопустимый тег: не разрешает эта форма код для просмотра вставить .

чего то не хватает отображается на странице нормально корректно
но комментарии написать не получается
http://xn--51-8kcfemaodkveyaqedoqejz1ao.xn--p1ai/comments.html NMitra «чтобы работали скрипты на php нужно чтоб на сайте стоял что то вроде ворлд пресс» — нужно чтобы у хостера была поддержка php, а таких 90%, если не выше.

Комментарии не пускают теги, воспользуйтесь формой http://shpargalkablog.ru/2010/12/napisat-kod-tekstom.html

HTML не может быть динамичным. Искл. тег details и marquee. Последний уже выведен из спецификации. Анонимный 21 Анонимный or Анонимный яяяяя NMitra Ребят, здесь отзывы строятся по другому принципу, это Blogger, бесплатная блогоплатформа Google. Mishechka Наташа, а в Blogger файл .htaccess можно чем-нибудь заменить? Или тут вообще такое невозможно? NMitra В Blogger нет к нему доступа Mishechka Жаль, я хотел настроить кэширование:

FileETag MTime Size


ExpiresActive on
ExpiresDefault «access plus 1 month»

Анонимный Гуд Анонимный фыв Анонимный српар Dmitriatika Чтобы работал HTML как PHP нужно прописать в .htaccess строки:

RemoveHandler .html .htm .shtml .shtm
AddType application/x-httpd-php .php .html .htm .shtml .shtm

Сам html файл должен содержать все основные разметки, а предлагаемый код должен помещаться между тегами body и /body и будет всё работать. Но не ожидайте чудес от такого примитивного скрипта. Он может неплохо дополнить страницу раздела сайта «Отзывы и предложения».
Короче, я ради интереса попробовал — всё работает. NMitra Спасибо за дополнение! В службе поддержки хостинга мне в своё время предложили такое решение:

AddHandler fcgid-script .htm .html Анонимный Скажите, а как же быть с robots.txt, если в .htaccess закроется вся информация?
Или на ботов поисковых систем это не распространяется? NMitra Верно говорите, подправила статью. Отзывы делала для маленького сайта, для которого не нужен robots.txt. Спасибо за вопрос! Александр Вам спасибо — разобрался благодаря вашей статье со всем этим, всё сделал, всё отлично работает.
Мне вот только хотелось бы ещё как-нибудь выводить дату и время постинга — возможно ли такое без баз данных?
Еще один момент: в самом начале, когда еще нет ни одного коммента, у меня выдаёт вот такую ошибку:
Warning: fclose() expects parameter 1 to be resource, boolean given in . on line 33
Отправишь первый коммент — всё пропадает.
Можно ли как-то это исправить?
Большое спасибо вам. Александр Вот ещё какой момент: в .htaccess мы закрываем comments.txt, но ведь функция нам создаёт при отправлении первого комментария файл комментарии.txt.
То есть в коде PHP надо просто «комментарии.txt» поменять на «comments.txt». NMitra Какая я не внимательная! Всё верно, если у вас рф домен, то меняете всё на комментарии.txt и комментарии.html, если ru или com, то на comments.txt и comments.html NMitra У меня не ругается. Попробуйте сразу сами создать пустой comments.txt. Предполагаю, что скрипт пытается его открыть и закрыть, но не находит. NMitra Вводим дату

$z = array(
1 => $_POST[‘name’],
2 => $_POST[’email’],
3 => $_POST[‘content’],
4 => date(«m.d.Y H:i»)
);
$dl = »;

mail(«name@yandex.ru», «заполнена форма site.ru», $z[1] . «\n» . $z[2] . «\n» . $z[3]);

$fp = @fopen(«comments.txt», «r»);
if ($fp) while (!feof($fp)) $dl .= fgetss($fp, 8000, «,,,»);
>
>
fclose($fp);
>
?> NMitra date(«d.m.Y H:i») Александр Автор, вы просто душка!
Спасибо вам большое, во всём разобрался, вы мне очень помогли!
Я только для себя поменял вывод даты — поставил его перед именем комментатора.
Сейчас хочу ещё сделать определение по IP, чтобы нежелательных комментаторов ограничивать.
Плюс хочу сделать каптчу для отправления сообщения.
Не подскажете, в этих случаях уже точно без базы данных не обойтись?
Большое вам спасибо, Наталья, за блог и помощь. NMitra Добавить переменную

$z = array(
1 => $_POST[‘name’],
2 => $_POST[’email’],
3 => $_POST[‘content’],
4 => date(«m.d.Y H:i»),
5 => $_SERVER[«REMOTE_ADDR»]
);

Чтобы ограничить IP (вроде так, правильность не проверяла)
if($z[1] && $z[2] && $z[3] && ($z[5] != 0.000.000.000))

Капчу тоже можно сделать, но я не хочу этим заниматься. Добавляете поле, если то, что в поле удовлетворяет условию, то форма отправляется, иначе нет. Александр Спасибо вам большое!
IP прописывает отлично, но как ограничивать по IP, пока не разобрался. Но теперь уже знаю, что это должно быть не сложно.
Огромное вам спасибо, за несколько дней много интересного прочитал на вашем блоге! Александр Столкнулся вот с какой проблемой: когда скрипт сам по себе в файле с расширением .html, то всё отлично работает, хотя некоторые видят не кириллицу, а крокозябры (разные кодировки ставил, ANSI видит правильно большинство).
Стоит вставить скрипт в обычный файл, в то место, где, собственно, и нужны комментарии или отзывы, то видят кириллицу все, скрипт работает, но после отправления комментария пропадает всё, что есть на странице ниже этого скрипта, не происходит автоматическое обновление.
Скажите, можно ли как-то это исправить без привлечения JS или JQery?
А то так был доволен простотой, но в итоге скрипт не вполне подходит, печально. Александр Ой, неожиданно разобрался с этой проблемой, когда снова прочитал вашу статью =))
Надо просто PHP-скрипт вставлять в документ до DOCTYPE.
Тогда всё работает, как и должно работать. NMitra :)) Только хотела написать, что код везде работает одинаково, искл. если один скрипт перебивает другой. Но код в любом случае один и тот же будет.

По поводу кириллицы, на HTML странице должен быть мета-тег

Если проблемы в письме email, то нужно прописывать заголовок http://shpargalkablog.ru/2014/01/feedback-form.html Александр Спасибо вам большое! Максим Замечательный скрипт, то, что надо как раз. Но вот одна проблема. После написания комментария, страница должна обновляться, но обновляться она не хочет. Соответственн, приходитс обновлять ее вручную. В чем может быть пролема не подскажите? Максим И еще вопрос такой: комментарии выводятся обычным текстом. Как к ним прописать стиль я разобрался. Но хотелось бы подключить разные стили к имени, комментарию. Возможно ли это? NMitra Вот это Header(«Location: «.$_SERVER[‘PHP_SELF’]); должно обновлять страницу.

dd <
white-space: pre-line;
margin: 0;
border: solid;
>
dt margin-top: 1.5%;
font-weight:bold;
> Анонимный На блоге этот скрипт работает? NMitra Этот блог на бесплатном Blogger от Google, тут нет поддержки PHP Анонимный ghjgj Анонимный Не могу разобраться почему не отправляет письмо на почту. Выводит Ваш отзыв будет опубликован после проверки автором сайта но письмо не приходит. проверяю локально на OpenServer
NMitra Попробуйте загрузить на хостинг Анонимный OpenServer не отправляет письма заглушка стоит) Здесь сам разобрался)) Анонимный Здраствуйте. Подскажите пожалуйста, как разделить комментарии между собой с помощью тега hr. Анонимный аяяй забывал новый коментарий написать))Растяпа) NMitra Здравствуйте, я бы стилями сделала

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *