Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#1 2008-09-12 01:30:29

Dark Wizard
Гость

Мод: Кнопка Спасибо. Проблема.

Здравствуйте.

Пользуясь поиском решение проблемы не нашёл.

Мод "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");
}

?>

Буду благодарен за любое решение проблемы (ну кроме как удалить мод). Спасибо.

#2 2008-09-15 01:07:28

Dark Wizard
Гость

Re: Мод: Кнопка Спасибо. Проблема.

Совсем нет решения? sad

#3 2008-09-15 07:40:51

Visman
Гость

Re: Мод: Кнопка Спасибо. Проблема.

Dark Wizard
Наверняка ф-ию CheckURL надо потрошить smile

#4 2008-09-15 07:52:41

VoiD
Гость

Re: Мод: Кнопка Спасибо. Проблема.

     echo '<script>window.alert("'.$message.'");location.href=\''.$goto.'\'</script>';

во это уберите smile не будет окошко показываться, хотя это не решение проблемы.

Подвал доски

Под управлением FluxBB. Хостинг Hostens