Создать ответ 
Проблемы со скриптом добавления комментариев на сайт
Автор Сообщение
grishin Не на форуме
Рядовой
*

Сообщений: 4
У нас с: Apr 2016
Сообщение: #61
RE: Проблемы со скриптом добавления комментариев на сайт
Добрый день, первая проблема после написания комментария и ответа на всплывающее окно, что комментарий успешно добавлен, страница перезагружается и слетает шапка и подвал до следующей перезагрузки. Файл подключал в самом верху страницы.

Второй вопрос, как убрать номер комментария, а так же изменить формат даты?
08.04.2016 22:21:02
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #62
RE: Проблемы со скриптом добавления комментариев на сайт
Чтобы понять в чем причина, попробуйте для начала удалить код вывода сообщения о том, что комментарий принят:
PHP код:
if (isset($_SESSION["send"]) and $_SESSION["send"]!="") {    //вывод сообщения
    
echo '<script type="text/javascript">alert("'.$_SESSION["send"].'");</script>';
    
$_SESSION["send"]="";


Чтобы убрать номер комментария, удалите строки:
PHP код:
echo '<a style="float:right; width:70px;" href="'.$mess_url.'#m';
 echo 
$tag[$up][$i][0].'"># '.$tag[$up][$i][0].'</a>'

Формат даты меняется в строке: echo '('.date("H:i:s d.m.Y", $tag[$up][$i][3]).' г.)</div>
08.04.2016 23:15:17
Найти все сообщения Цитировать это сообщение
ingener523 Не на форуме
Младший сержант
*

Сообщений: 21
У нас с: Mar 2016
Сообщение: #63
RE: Проблемы со скриптом добавления комментариев на сайт
Здравствуйте! Создал отдельный файл в который добавил скрипт комментариев, выводится ошибка:Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in X:\home\localhost\www\raschet\test1.php on line 9
PHP код:
if (session_id()==''session_start();
$time=time();
$db=mysqli_connect("localhost","*********","**********","raschet") or die();
$res=mysqli_query($db,"set names utf8");
$mess_url=mysqli_real_escape_string($db,basename($_SERVER['SCRIPT_FILENAME']));
//получаем id текущей темы
$res=mysqli_query($db,"SELECT id FROM data WHERE id=1".$mess_url."'");
$res=mysqli_fetch_array($res);
$theme_id=$res["id"]; 
В чем ошибка, помогите подключить комментарии.


По искал в интернете причину ошибки, советуют чтобы транслировать ошибки базы данных в ошибки РНР, достаточно перед коннектом написать вот такую строчку:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
Добавил и вот что мне вывело:
Fatal error: Uncaught exception 'mysqli_sql_exception' with message 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1' in X:\home\localhost\www\raschet\test1.php:9 Stack trace: #0 X:\home\localhost\www\raschet\test1.php(9): mysqli_query(Object(mysqli), 'SELECT id FROM ...') #1 {main} thrown in X:\home\localhost\www\raschet\test1.php on line 9
(Последний раз сообщение было отредактировано 09.04.2016 в 14:22:19, отредактировал пользователь ingener523.)
09.04.2016 14:12:09
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #64
RE: Проблемы со скриптом добавления комментариев на сайт
А какой тип поля у столбца id в таблице data?
Могу предположить, что integer, а вот в запросе:
PHP код:
$res=mysqli_query($db,"SELECT id FROM data WHERE id=1".$mess_url."'"); 
Вы пытаетесь подставить в него значение с типом string.

Попробуйте изменить запрос на такой:
PHP код:
$res=mysqli_query($db,"SELECT id FROM data WHERE id=1"); 
09.04.2016 14:41:13
Найти все сообщения Цитировать это сообщение
ingener523 Не на форуме
Младший сержант
*

Сообщений: 21
У нас с: Mar 2016
Сообщение: #65
RE: Проблемы со скриптом добавления комментариев на сайт
(09.04.2016 14:41:13)Admin писал(а):  А какой тип поля у столбца id в таблице data?
Могу предположить, что integer, а вот в запросе:
PHP код:
$res=mysqli_query($db,"SELECT id FROM data WHERE id=1".$mess_url."'"); 
Вы пытаетесь подставить в него значение с типом string.

Попробуйте изменить запрос на такой:
PHP код:
$res=mysqli_query($db,"SELECT id FROM data WHERE id=1"); 
Ошибка исчезла, а за что отвечает переменная $mess_url?
09.04.2016 14:47:32
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #66
RE: Проблемы со скриптом добавления комментариев на сайт
Это переменная нужна только тогда, когда для каждой странички требуется выводить только относящиеся к ней комментарии, например, как у нас на сайте.
09.04.2016 14:50:15
Найти все сообщения Цитировать это сообщение
ingener523 Не на форуме
Младший сержант
*

Сообщений: 21
У нас с: Mar 2016
Сообщение: #67
RE: Проблемы со скриптом добавления комментариев на сайт
(09.04.2016 14:50:15)Admin писал(а):  Это переменная нужна только тогда, когда для каждой странички требуется выводить только относящиеся к ней комментарии, например, как у нас на сайте.
Вот это то мне и нужно, что бы для отдельной статьи выводились ее же комментарии и было сделано ввиде дерева(((. Для получения id темы я использую запрос GET.
if (isset ($_GET['id'])) {$id = $_GET['id'];}
if (!isset($id)) {$id = 1;}
Сделаны у меня и комментарии правда одноуровневые, выводятся конкретно к той статье для которой оставляется комментарий. Вот как реализованы:
PHP код:
$result3 mysql_query("SELECT * FROM comments WHERE post='$id' ORDER BY date DESC",$db);
if (
mysql_num_rows ($result3) > 0)
{
$myrow3 mysql_fetch_array($result3);
do {
printf ("<div class='post_div'>
<p class='post_view_left2'><strong>Комментарий добавил(а):</strong> 
<strong style='color:green;'>%s</strong></p>
<p class='post_view_right2'>Дата: %s</p>
<p>%s</p></div>"
,$myrow3["author"], date("d.m.Y"strtotime($myrow3['date'])), $myrow3["text"]);


09.04.2016 14:59:36
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #68
RE: Проблемы со скриптом добавления комментариев на сайт
Ну так сделайте все, как указано в теме Добавление комментариев на сайт.

И вместо:
PHP код:
//получаем id текущей темы
$res=mysqli_query($db,"SELECT id FROM таблица WHERE file_name='".$mess_url."'");
$res=mysqli_fetch_array($res);
$theme_id=$res["id"]; 

сделайте так:
PHP код:
if (isset ($_GET['id']))    {$id $_GET['id'];}
if (!isset(
$id))  {$id 1;}
$theme_id=$id
09.04.2016 15:07:23
Найти все сообщения Цитировать это сообщение
ingener523 Не на форуме
Младший сержант
*

Сообщений: 21
У нас с: Mar 2016
Сообщение: #69
RE: Проблемы со скриптом добавления комментариев на сайт
Не получается выводится ошибка:
PHP код:
if (isset ($_GET['id']))    {$id $_GET['id'];}
if (!isset(
$id))  {$id 1;}
//получаем id текущей темы
$res=mysqli_query($db,"SELECT id FROM data WHERE id='$id'".$mess_url."'");
$res=mysqli_fetch_array($res);
$theme_id=$res["id"]; 
09.04.2016 15:19:37
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #70
RE: Проблемы со скриптом добавления комментариев на сайт
Конечно не получится. Я Вам говорю одно, а Вы делаете совсем другое.
Вот откуда Вы взяли строчку:
PHP код:
$res=mysqli_query($db,"SELECT id FROM data WHERE id='$id'".$mess_url."'"); 

И что Вы при помощи нее пытаетесь получить?

Еще раз перечитайте тему на сайте (не на форуме) и попробуйте сделать как там говориться.
09.04.2016 15:33:34
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru