Быстрый лёгкий надёжный форумный движок
Вы не вошли.
Страницы 1
Тема закрыта
Здравствуйте.
Пользуясь поиском решение проблемы не нашёл.
Мод "Post Thanks", не помню уже где откопал, сам мод выложил тут.
Что делает: добавляет кнопочку "Сказать спасибо" при нажатии на которую под сообщением появляется "на это сообщение сказали Спасибо [список логинов]". Если Вы уже сказали спасибо - вылезет сообщение об ошибке. Самого себя благодарить тоже нельзя. И последнее - под аватаркой написано, сколько раз Вам сказали спасибо.
Пример работы: http://murrclan.ru
Проблема: 80% нажатий на ссылку "Сказать спасибо" приводят к появлению JS окошка "BAD REFERER".
Думаю проблема в thanks.php
Код:
<?php
define('PUN_ROOT', './');
require PUN_ROOT.'include/common.php';
// Cehcking referer url
function CheckURL($referURL, $baseURL, $id){
$referURL=substr($referURL, 0, (strlen($referURL)-strlen($id)));
if($referURL==substr($referURL, 0, strlen($baseURL))."/viewtopic.php?id=" or $referURL==substr($referURL, 0, strlen($baseURL))."/viewtopic.php?pid="){
$result=true;
}else{
$result=false;
}
return $result;
}
// Message alert
function messagealert($message, $goto){
echo '<script>window.alert("'.$message.'");location.href=\''.$goto.'\'</script>';
}
// Submiting thanks
if(!$pun_user['is_guest']){
$getid=$_GET['id'];
$referer=$_SERVER['HTTP_REFERER'];
if(CheckURL($referer, $pun_config['o_base_url'], $getid)==true){
// Get Poster & PosterID
$poster_result=$db->query('SELECT id, poster_id FROM '.$db->prefix.'posts WHERE id=\''.$getid.'\'');
$poster_fetch=$db->fetch_assoc($poster_result);
$post_id=$poster_fetch['id'];
$poster_id=$poster_fetch['poster_id'];
if($pun_user['id']!=$poster_id){
// Check for existing thanks
$cfeth_result=$db->query('SELECT id FROM post_thanks WHERE postid=\''.$getid.'\' AND username=\''.$pun_user['username'].'\'');
$cfeth_num=$db->num_rows($cfeth_result);
if ($cfeth_num < 1){
$submit_thanks=$db->query('INSERT INTO forum_post_thanks VALUES (\'\', \''.$poster_id.'\', \''.$pun_user['username'].'\', \''.$post_id.'\')');
header("location: $referer");
}else{
messagealert("You have already said thank you for this post!", $referer);
}
}else{messagealert("You cant thanks your post!", $referer);}
}else{
messagealert("BAD REFERER", $referer);
}
}else{
header("location: login.php");
}
?>
Буду благодарен за любое решение проблемы (ну кроме как удалить мод). Спасибо.
Совсем нет решения?
Dark Wizard
Наверняка ф-ию CheckURL надо потрошить
echo '<script>window.alert("'.$message.'");location.href=\''.$goto.'\'</script>';
во это уберите не будет окошко показываться, хотя это не решение проблемы.
Страницы 1
Тема закрыта