вопрос
Приветствую. На сайте имеется рейтин комментов, по каким то не понятным причинам перестал работать, при нажатиии на кнопку лайк или дизлайк в консоли выводится ошибка Uncaught TypeError: Cannot read properties of null (reading 'success')
имеется 2 файлы рейтинга
js
и файл comm_rate
что в этом коде нужно поправить что бы заработал рейтинг?
имеется 2 файлы рейтинга
js
jQuery(document).ready(function($){
var cemt = null;
if ($('#dle-comments-list')) {
$('#dle-comments-list').on('click', '.comm-rate-up, .comm-rate-down', function(e){
e.preventDefault();
var comm_id = $(this).closest('.comm-rate').attr('data-id');
$.ajax({
url: '/engine/ajax/comm_rate.php',
type: 'POST',
data: {id: comm_id, action: (($(this).hasClass('comm-rate-up')) ? 'up' : 'down')},
success: function(result){
if (result.success) {
var comm = $('.comm-rate[data-id = "' + comm_id + '"] .comm-rate-count');
comm.html(result.rating);
comm.removeClass('count-m count-p');
if (result.class != '') comm.addClass(result.class);
} else {
clearTimeout(cemt);
$('#comm-errmsg').hide().html(result.message).fadeIn(300, function(){
cemt = setTimeout(function(){
$('#comm-errmsg').fadeOut(300, function(){
$(this).html('');
});
}, 3000);
});
}
},
error: function(){
}
});
return false;
});
}
});
и файл comm_rate
<?php
error_reporting(0);
ini_set('display_errors', 0);
session_start();
header("Content-type: application/json; charset=utf-8");
define( 'DATALIFEENGINE', true );
define( 'ROOT_DIR', substr( dirname( __FILE__ ), 0, -12 ) );
define( 'ENGINE_DIR', ROOT_DIR . '/engine' );
$ctime = time();
$comm_id = (isset($_POST['id']) && (int)$_POST['id'] > 0) ? (int)$_POST['id'] : '';
$action = (isset($_POST['action']) && ($_POST['action'] == 'up' || $_POST['action'] == 'down')) ? $_POST['action'] : '';
if (empty($comm_id) || empty($action)) die ("Hacking attempt!");
include ENGINE_DIR . '/data/config.php';
require_once ENGINE_DIR . '/classes/mysql.php';
require_once ENGINE_DIR . '/data/dbconfig.php';
require_once ENGINE_DIR . '/modules/functions.php';
require_once ENGINE_DIR . '/modules/sitelogin.php';
/* ----- ----- ----- ----- ----- */
if (!empty($_SESSION['_uh_c']) && !empty($_SESSION['_uth_c']) && !empty($_SESSION['_uh']) && !empty($_SESSION['_uth']) && !empty($_COOKIE[$_SESSION['_uh_c']]) && !empty($_COOKIE[$_SESSION['_uth_c']])) {
if ($_COOKIE[$_SESSION['_uh_c']] == $_SESSION['_uh'] && $_COOKIE[$_SESSION['_uth_c']] == $_SESSION['_uth']) {
$cdata = array();
$db->query("DELETE FROM comm_rating_stat WHERE last_activity < " . ($ctime - 3600 * 24));
$uh_data = $db->super_query("SELECT last_activity, activity_data FROM comm_rating_stat WHERE uh = '" . $_SESSION['_uh'] . "'");
if (!empty($uh_data)) {
$uh_data['activity_data'] = unserialize($uh_data['activity_data']);
if ($uh_data['last_activity'] > $ctime - 0) {
$db->query("UPDATE comm_rating_stat SET last_activity = $ctime WHERE uh = '" . $_SESSION['_uh'] . "'");
err_msg('Вы голосуете слишком часто');
}
if (in_array($comm_id, $uh_data['activity_data'])) err_msg('Вы уже голосовали за этот комментарий');
$uh_data['activity_data'][] = $comm_id;
$db->query("UPDATE comm_rating_stat SET last_activity = $ctime, activity_data = '" . serialize($uh_data['activity_data']) . "' WHERE uh = '" . $_SESSION['_uh'] . "'");
} else {
$db->query("INSERT INTO comm_rating_stat (uh, last_activity, activity_data) VALUES ('" . $_SESSION['_uh'] . "', $ctime, '" . serialize(array($comm_id)) . "')");
}
} else err_msg('Ошибка. Обновите страницу и попробуйте снова');
} else die();
/* ----- ----- ----- ----- ----- */
$comm = $db->super_query("SELECT * FROM " . PREFIX . "_comments WHERE id = $comm_id");
if ($is_logged) {
if ($member_id['user_id'] == $comm['user_id']) err_msg('Нельзя голосовать за свой комментарий');
}
$db->query("UPDATE " . PREFIX . "_comments SET rating = rating " . (($action == 'up') ? '+' : '-') . " 1, vote_num = vote_num + 1 WHERE id = $comm_id LIMIT 1");
$comm = $db->super_query("SELECT * FROM " . PREFIX . "_comments WHERE id = $comm_id");
$rating = round((int)str_replace('+', '', (string)$comm['rating']), 0);
$comm_rate_count_s = $comm_rate_count_c = '';
if ($rating > 0) {
$comm_rate_count_s = '+'; $comm_rate_count_c = ' count-p';
} elseif ($rating < 0) {
$comm_rate_count_c = ' count-m';
}
echo json_encode(array(
'success' => true,
'rating' => $comm_rate_count_s.$rating,
'class' => $comm_rate_count_c,
));
function err_msg($message) {
echo json_encode(array(
'success' => false,
'message' => $message,
));
die();
}
?>
что в этом коде нужно поправить что бы заработал рейтинг?