Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232

Как выводить на сайте комментарии с обращением к автору родительского комментария

06.12.2024, 13:07. Показов 2758. Ответов 43

Студворк — интернет-сервис помощи студентам
Я хочу выводить на сайте комментарии с обращением к автору родительского комментария. Так:
Анна, я согласен с Вашим мнением…
НО у меня почему-то не работает обработка формы вторичного комментария. Что я делаю не так?

В БД у меня таблица comments с полями:
idс – id комментария
idt – id темы, которая комментируется
idpvc – id родительского комментария
comms – текст комментария
dateC - дата
avtorC – автор комментария


Я сделала отдельные формы для первичного и вторичного комментария:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
//Форма для ввода комментария
//Проверим, авторизован пользователь или нет
if (!empty($_SESSION['auth'])) { 
//Если авторизван, выводим форму для написания комментария
echo '<p  style="color:#E095B2;font-size: 18px ">
<b>Добавить комментарий<b></p>';
?>
<div class="comms">
<form method='POST' action='obr_c.php'>
<input type="hidden" name="idt" value="<?= $idt?>"/>
Наберите здесь текст комментария:<br>
<textarea name='comms' cols='50' rows='5'></textarea></br>
<input type='submit' name='s5' value='Опубликовать комментарий'>
</form><br><br>
</div>
 
<?php
//вставляю форму вторичного комментария
?>  
    <div class="otvcomm">
<p  style="color: blue;font-size: 18px ">
<b>Добавить комментарий к комментарию<b></p>
<form method='POST' action='obr_vtc.php'>
<input type="hidden" name="idt" value="<?= $idt?>"/>
<input type="hidden" name="idpvc" value="<?= $idсR?>"/>
idpvc=<?= $idcR?><br>
Наберите здесь текст комментария:<br>
<textarea name='comms' cols='50' rows='5'></textarea></br>
<input type='submit' name='s6' value='Ответить на комментарий'>
</form><br>
</div>
Форма вторичного комментария открывается после нажатия кнопки «Ответить» в соответствующем комментарии:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
<?php
//Обработка кнопки Ответить  
if (isset($_POST['o'])){ 
    //Достаю из формы значение родительского idc 
    $idcR=$_POST['idc'];
//Проверяю, передано ли значение родительского idc
    echo'$idcR = '. $idcR;
    //Делаю видимой вторичную форму
echo '<style>.otvcomm{display: block;}</style>';
    }
Файл обработки формы вторичного комментария obr_vtc.php:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php session_start();?>
<?php header("Content-Type: text/html;charset=utf-8");?>
<?php include 'functions.php';?>
<?php mysqli_set_charset($link, 'utf8mb4');?>
<?php
$id = $_SESSION['id'];// id вошедшего юзера
//Получаю текущую дату
$odate = date('Y-m-d  H:i');
//Получаю из БД логин автора вторичного комментария
$query1 = "SELECT login FROM avts WHERE id='$id'"; 
$res=mysqli_query($link, $query1);
$row1 = mysqli_fetch_assoc($res);
//Достаём значения из таблицы в БД 
$avtorC=$row1['login']; // из БД    
// выполняем обработку формы для комментария
if (empty($_POST['s6']) || empty($_POST['comms'])
|| empty($_POST['idpvc'])) {
    http_response_code(403);
    die();
}else{
//Если из формы получены значения
//Получаю из формы
$idt = $_POST['idt'];
$idpvc = $_POST['idpvc'];
$comms = sanitizeString($_POST['comms']);
 //Сохраняю данные в БД
//Вставляю значение + дату в таблицу comments в БД
$query = "INSERT INTO comments(idt,idpvc,comms,dateC, avtorC)
VALUES('$idt','$idpvc','$comms','$odate','$avtorC')";
$res=mysqli_query($link, $query);
}
//редирект
$redirect = isset($_SERVER['HTTP_REFERER'])? $_SERVER['HTTP_REFERER']:'redirect-form.html';
header("Location: $redirect");
exit();
?>
Новый вторичный комментарий в БД вставляется и на странице сайта выводится, но с $idpvc=0, а не с тем, который я передавала во вторичной форме, и без обращения. Хотя в проверке видно, что во вторичной форме передаётся правильный $idpvc.
В результате того, что $idpvc всегда =0, естественно, обращение в комментарий в следующем коде не вставляется:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
//Вставляю текст
    echo '<div class="comments">';
    if ($row1['idpvc']==0){
    echo $row1["comms"] . 
    '</div><br/>';
    }else{
    //Вывожу имя автора первичного комментария с idc=idpvc
    $query4 = mysqli_query($link,"SELECT avtorC FROM 
    comments WHERE idc='$idpvc'");
    $row4 = mysqli_fetch_assoc($query4);
    //вставляю сначала обращение по нику и запятую
    //потом текст вторичного комментария c обращением 
    echo $row4['avtorC'] . ', ' 
    . $row1["comms"] .  '</div><br/>';      
    }
Подскажите, пожалуйста, что в моём коде не так, или, возможно, Вы можете подсказать другой способ вставлять обращение к автору родительского комментария во вторичные комментарии.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.12.2024, 13:07
Ответы с готовыми решениями:

Как создать форму для создания комментария на сайте в MongoDB
Доброго времени суток! Возник вопрос по поводу создания комментария в посте на сайте. Не понятно, как подключить форму создания комментария...

Как сделать, чтобы производный класс наследовал все операторы от родительского класса и от родительского родительского
Есть 1й базовый класс в кот. определён operator ++ (); //prefix Есть производный от 1го, 2й класс в кот. дополнительно определён operator...

Как реализовать комментарии на сайте
Всем привет. Я хотел бы узнать вот как сделать следующие вещи буду рад если поможете))))) 1. Возможность оставлять коментарий ( дата...

43
Заблокирован
07.12.2024, 21:10
Студворк — интернет-сервис помощи студентам
Sollita, я поймал тебя на лжи. Так что имей смелость это признать и попроси прощения. Еще раз повторяю. Врать нехорошо.
0
7 / 17 / 0
Регистрация: 30.09.2021
Сообщений: 232
07.12.2024, 21:10  [ТС]
barabar, страница обновляется сама автоматически и её не нужно обновлять юзеру. Комментарий сразу появляется на странице. А что именно Вы имели в виду интересно?
0
Заблокирован
07.12.2024, 21:16
Sollita, именно это я и имел ввиду. Зайди и посмотри как добавляются комменты хотя бы на ютубе. Или почитай про технологию AJAX, которая уже давным давно успешно используется. Нигде ты не увидишь обновления страницы. В частности и для этого существует JS. Но тебе, вероятно, это бесполезно объяснять. Тем более мне, который даже не знает PHP
Салют знатокам веб-дизайна. Хотя бы иконку для браузера поставила. Фавикон. Слышала про такое?
0
07.12.2024, 21:18
 Комментарий модератора 
Т.к. по хорошему вы не понимаете - тема закрыта.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.12.2024, 21:18

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

Попытка авторизации и отправка комментария на сайте
Авторизируюсь с помощью curl, данные сессии передаю вроде правильные, но почему-то не удается зайти на сайт http://cinema-hd.ru/ Потом...

как лучше сделать комментарии на сайте
как лучше сделать комментарии на сайте, то есть механизм записи и отображения. куда их записывать(в бд?) как их потом выводить или может...

Как по ip выводить на сайте название города
Народ даже не знаю в какой раздел форума стучаться. Такая задача- нужно чтоб в зависимости от IP посетителя менялось название города в...

Как парсить информацию из админ панели и выводить ее на сайте?
Доброго времени суток! В общем поставил себе на ДЛЕ шаблон красивый, для кинопортала, там есть кнопка &quot;Скачать фильм&quot;. В админ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
44
Закрытая тема Создать тему
Новые блоги и статьи
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
Сукцессия 20. Война автоботов. Делаем ставки. Лёд против "пш-пш!".
anaschu 11.07.2026
Битва ИИ в ризосфере: Как мы скрестили жесткие ОДУ, закон Фика и «подземный шантаж» Уважаемые коллеги! Хочу поделиться уникальным опытом ведения междисциплинарной компьютерной разработки. Прямо. . .
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
Просветление в 5 секунд
kumehtar 10.07.2026
Андрей Веретенников выдал фразу недавно: "Вам не обязательно кем-то себя считать"
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru