0 / 0 / 0
Регистрация: 17.08.2017
Сообщений: 30

Не приходит уведомление при отправке комментария

23.01.2018, 14:29. Показов 1044. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, проблема в том, что я делала сайт на локальном хосте. Там я где-то нашла код о том, как отправить комментарий на форму модерации на другой странице. Все работало, уведомление о том что отправилось или об ошибке приходило. Однако, недавно я перешла на веб-хостинг и теперь при отправке комментария уведомления не приходят, а страница просто становится белой. нО комментарии отправляются. При обновлении белой страницы даже два раза отправляются. Как это можно исправить?

Может быть нужно, но сайт по протоколу https.
Вот ссылка на сайт https://akzhol-edu.000webhostapp.com/index.php

PHP
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
37
38
<!--  обработка отправленных сообщений: комментарии-->
<?php 
     $time=time();
     //если сессии еще нет, то начало сессии
     if (session_id()=='') session_start(); 
 
     
     $res=mysqli_query($link,"set names utf8"); // перевод данных из бд в кодировку utf8
 
     $mess_url=mysqli_real_escape_string($link,basename($_SERVER['SCRIPT_FILENAME']));
 
     if (isset($_POST["contr_cod"])){    //если отправлен комментарий
            $login=htmlspecialchars($_POST["login"]);
            $message=htmlspecialchars($_POST["message"]);
            if ($_POST["contr_cod"]==$_POST["prov_summa"]){    //если проверочный код правильный
                if ($login!='' and $message!=''){
                    //ввод данных в БД и вывод сообщения о принятии
                    $res=mysqli_query($link,"insert into comments (date, login, message)
                    values ('".$time."','".$login."','".$message."')");
                    $_SESSION["send"]="Комментарий принят!";
                    header("Location: $mess_url#last"); exit;
                }
                else { //иначе вывод ошибки
                    $_SESSION["send"]="Не все поля заполнены!";
                    header("Location: $mess_url#last"); exit;
                }
            }
            else { //иначе вывод ошибки
                    $_SESSION["send"]="Неверный проверочный код!";
                    header("Location: $mess_url#last"); exit;
            }
     }
 
     if (isset($_SESSION["send"]) and $_SESSION["send"]!="") {    //вывод сообщения
                    echo '<script type="text/javascript">alert("'.$_SESSION["send"].'");</script>';
                    $_SESSION["send"]="";
     }
 ?>
HTML5
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
<!-- Блок для добавления комментариев пользователем -->   
 
                    <div  class="add_comment">
                        <fieldset id="add_comment">  
                        <!-- Форма для добавления комментариев пользователем --> 
 
                            <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> 
                                <P> <strong> Добавьте свой комментарий! </strong> </p>
                                <label for="login">Введите ваше имя:</label> <br><br>
                                <input class='add_comment' type="text"  pattern="[^0-9]{1,}"  name="login"  required="required" placeholder="Айгуль"><br><br>
            
                                <label for="message">Введите ваш комментарий: </label><br><br>
                                <textarea name="message" cols="100" rows="3" required="required"></textarea></p>
                                <P> <strong> Все комментарии проходят обязательную модерацию, поэтому будут опубликованы не сразу.</strong> </p>
                                <?php
                                    $cod=rand(10,90); $cod2=rand(1,99); $summa=$cod + $cod2;
                                    echo '<div style="margin:5px; float:right;">*  Введите сумму чисел:   '.$cod.' + '.$cod2.' = ';
                                    echo '<input type="hidden" name="prov_summa" value="'. $summa.'">';
                                    echo '<input type="text" name="contr_cod" maxlength="4" size="4">';
                                    echo '</div>';
                                ?>
                                <button class= 'add_comment' type="submit" name='submit'> Отправить </button> <br> <br> <br>
                
                            </form>
                       
 
 
                        </fieldset>    
                    </div>
                    <!-- /Блок для добавления комментариев пользователем -->  
                    <!-- Блок для отображения комментариев, прошедших модерацию --> 
                    <div style="margin-bottom: 20px">
PHP
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
                        <?php 
                            $res=mysqli_query($link,"SELECT * FROM comments WHERE   moderation=1 ORDER BY id");  
                            $number=mysqli_num_rows($res);
                            if ($number>0) { // условие если количество комментариев с модерацией больше 1 БОЛЬШЕ чем 0, то вывод их на страницу
                                echo '<br><b> <p style="margin-left: 30%"> Последние комментарии:</b><br></p>';
 
                                function get_comments($link) { // функция вывода комментариев, прошедших модерацию
                    
                                    $result = mysqli_query($link, "SELECT * FROM comments WHERE   moderation=1 ORDER BY id");
                                    $comments = mysqli_fetch_all($result, MYSQLI_ASSOC);
                                    return $comments;
                                }
                        
                                $comments = get_comments($link);
                                foreach ($comments as $comment){  // foreach цикл для вывода данных о каждой записи 
                                    $id_com=$comment["id"];
                                    echo '<div class="comment_name">'.$comment["login"].':
                                    <div class="comment_date">'.date('H:i:s d.m.Y', $comment["date"]).'</div></div> 
                                    <div class="comment">'.$comment["message"].'<div class="comment_answer">
                                    <a class="show-btn" href="javascript:void(0)" 
                                    onclick = "show('.$id_com.')"> Ответить</a></div><br><br></div>';
                            
                                    //Всплывающий блок формы ответа при нажатии ОТВЕТИТЬ-- форма для ответов  источник [1]
                                    echo '  <div id="'.$id_com.'"  class="envelope">
                                                <a  href="javascript:void(0)" style="float: right" onclick = "hide('.$id_com.')">Закрыть</a>
                                                <center><h2>Ответить на комментарий</h2></center><br>
                                                <form action="';  echo $_SERVER["PHP_SELF"]; echo '" method="POST"> 
                                                    <label style="color: white" for="login">Введите ваше имя:</label> <br><br>
                                                    <input  pattern="[^0-9]{1,}"  type="text" name="login"  required="required" placeholder="Айгуль" ><br><br>
                                                    <label style="color: white" for="message">Введите ваш комментарий: </label><br><br>
                                                    <textarea name="message" cols="100" rows="3" required="required"> Ответ:  '.$comment["login"].',  </textarea></p>
                                                    <P style="color: white"> 
                                                    <strong> Все комментарии проходят обязательную модерацию, поэтому будут опубликованы не сразу.</strong> 
                                                    </p>';
                                                    $cod=rand(10,90); $cod2=rand(1,99); $summa=$cod + $cod2;
                                                    echo '<div style="margin:5px; float:right;"><label style="color: white">Введите сумму чисел:  '.$cod.' + '.$cod2.' = </label> ';
                                                    echo '<input type="hidden" name="prov_summa" value="'. $summa.'">';
                                                    echo '<input type="text" name="contr_cod" maxlength="4" size="4">';
                                                    echo '</div>';
                                                    echo '<button class= "add_comment" type="submit" name="submit"> Отправить </button> <br> <br> <br>
                                                </form>
                                            </div>
                                    <div id="fade" class="black-overlay"></div> ';
 
                                } // закрытие цикла foreach 
                            } //закрытие условия если количество комментариев с модерацией больше 1 БОЛЬШЕ чем 0                 
                            if($number === 0): // если комментариев с модерацией нет, то вывод блока с сообщением
                            echo '<div style="text-align:center; margin:20px; background-color:white; height:200px"> Комментарии отсутствуют </div>';
                            else:  endif; 
                        ?>


HTML5
1
   </div>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.01.2018, 14:29
Ответы с готовыми решениями:

Приходит POST пустой, а при отправке все норм
Доброго дня. Уже башку сломал себе, как такое может быть. Отправляю запрос себе на страницу, судя по HTTP анализатору все уходит как...

Обратная связь при отправке СМС. уведомление об успешной отправке и доставке
Приложение отправляет СМС, при этом нужно зарегистрировать Activity как приемник событий об отправке и доставке СМС. private...

Редирект при отправке комментария на страницу авторизации
Здравствуйте. У меня на сайте имеется проблема, о которой я даже не знал. При отправке коментария идет редирект, то есть, после отправки...

7
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
23.01.2018, 14:36
Цитата Сообщение от Lara Semenova Посмотреть сообщение
страница просто становится белой
Для начала это посмотрите:
PHP код не выполняется / не работает / выводится в браузер / пустая белая страница
0
0 / 0 / 0
Регистрация: 17.08.2017
Сообщений: 30
23.01.2018, 16:34  [ТС]
Посмотрела, но то, что там ошибка, я знаю. Вопрос только какая. Мне не хватает опыта и знаний в этом деле, а результат нужен уже сейчас
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
23.01.2018, 16:43
Цитата Сообщение от Lara Semenova Посмотреть сообщение
Вопрос только какая.
По той ссылке, что я дал, есть информация, как включить вывод ошибок.
PHP
1
2
3
4
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>
0
 Аватар для Зверушь
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
23.01.2018, 16:43
По ссылке выше как раз и написано как включить вывод ошибок, будете знать что за ошибка.
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
23.01.2018, 16:43
Когда будем знать описание ошибки, сможем её устранить.
0
0 / 0 / 0
Регистрация: 17.08.2017
Сообщений: 30
25.01.2018, 00:36  [ТС]
Вчера хостинг тупил, поэтому пишу только сегодня

вот я сделала тот код вывода ошибки:
и вышло вот это сообщение
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/v/v778669i/v778669i.beget.tech/public_html/db_connect.php:21) in /home/v/v778669i/v778669i.beget.tech/public_html/index.php on line 14 Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/v/v778669i/v778669i.beget.tech/public_html/db_connect.php:21) in /home/v/v778669i/v778669i.beget.tech/public_html/index.php on line 14
Строки 14, 21 здесь соответственно
PHP
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
37
38
39
40
41
42
43
44
45
46
47
<?php 
require_once 'db_connect.php';  // подключение к Базе данных 
 
error_reporting(E_ALL);
ini_set('display_errors', 1);
 
?>
<html>
 
<!--  обработка отправленных сообщений: комментарии-->
<?php 
     $time=time();
     //если сессии еще нет, то начало сессии
     if (session_id()=='') session_start(); 
 
     
     $res=mysqli_query($link,"set names utf8"); // перевод данных из бд в кодировку utf8
 
     $mess_url=mysqli_real_escape_string($link,basename($_SERVER['SCRIPT_FILENAME']));
 
     if (isset($_POST["contr_cod"])){    //если отправлен комментарий
            $login=htmlspecialchars($_POST["login"]);
            $message=htmlspecialchars($_POST["message"]);
            if ($_POST["contr_cod"]==$_POST["prov_summa"]){    //если проверочный код правильный
                if ($login!='' and $message!=''){
                    //ввод данных в БД и вывод сообщения о принятии
                    $res=mysqli_query($link,"insert into comments (date, login, message)
                    values ('".$time."','".$login."','".$message."')");
                    $_SESSION["send"]="Комментарий принят!";
                    header("Location: $mess_url#last"); exit;
                }
                else { //иначе вывод ошибки
                    $_SESSION["send"]="Не все поля заполнены!";
                    header("Location: $mess_url#last"); exit;
                }
            }
            else { //иначе вывод ошибки
                    $_SESSION["send"]="Неверный проверочный код!";
                    header("Location: $mess_url#last"); exit;
            }
     }
 
     if (isset($_SESSION["send"]) and $_SESSION["send"]!="") {    //вывод сообщения
                    echo '<script type="text/javascript">alert("'.$_SESSION["send"].'");</script>';
                    $_SESSION["send"]="";
     }
 ?>
Новый адрес сайта
http://v778669i.beget.tech/index.php

Добавлено через 15 минут
а все решилась, надо было сохранить файл в Утф без БОМ и начать файл уже с части сессии
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
25.01.2018, 07:13
Вот видите, как полезно описание ошибки видеть.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.01.2018, 07:13
Помогаю со студенческими работами здесь

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

При отправке программным методом приходит битый архив!
В заголовке

FRxreport: при отправке отчёта письмом приходит пустой файл
Добро времени , Oraqry1. Active:=true; FrxRep1.PrepareReport(); FrxRep1.export(Frxmailexport); Картинку или rtf сохраняет в...

Xamarin Forms. При отправке SMS в Receiver приходит результат FirstUser
При отправке SMS в Receiver приходит результат FirstUser. Данный результат прилетает на телефоне Xiaomi Redmi Note 4, а на телефоне моего...

Всплывает ошибка при отправке уведомления: "Вы уже отправляли уведомление Администрации."
Здравствуйте. Столкнулся с проблемой на своем сайте. DLE 9.7. Выделением текста и сочетание клавиш Enter+ctrl юзеры мне отправляют...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru