Движок Цитатника от меня

Discussion in 'PHP' started by lsass.exe, 14 Dec 2007.

  1. lsass.exe

    lsass.exe Elder - Старейшина

    Joined:
    5 Aug 2007
    Messages:
    156
    Likes Received:
    161
    Reputations:
    24
    Simple Quotes Engine v1.3 (Обновление от 10.01.2008)

    Возможности самого движка:
    1) Постраничный вывод цитат.
    2) Выбор кол-ва выводимых цитат на страницу.
    3) Редактирование имени(title) сайта.
    4) Добавление цитат пользователями (стоит капча от флуда, спама и т.д.).
    5) Изменение рейтинга цитаты (Посетитель может 1 раз повысить\понизить рейтинг, ведутся логи по изменениям рейтингов всех цитат).
    6) 20-лучших\худших\новых цитат.
    7) Статистика на главной странице (кол-во проверенных\непроверенных цитат, модераторов\администраторов).
    8) Использование ЧПУ.
    9) Подтверждение цитаты модератором.

    Возможности администраторской панели:
    1) 2 уровня доступа: админ - может делать все и модератор - только редактировать цитаты.
    2) Управление цитатами (изменение статуса(проверено\не проверено), редактирование, удаление).
    3) Управление пользователями (выбор статуса moderator\admin, создание новых пользователей, удаление старых, редактирование текущих).
    4) Изменение настроек сайта (кол-во цитат, выводимых на страницу, имя(title) сайта).
    5) Быстрое добавление цитат (нету защитного кода + сразу присваивается статуc "проверено").
    6) Редактирование страницы "О сайте".
    7) Редактирование правил, отображающихся при добавлении цитат.

    В разработке:
    1) Изменение рейтинга без перезагрузки страниц.
    2) Удобный инсталлятор (если вабще нужен будет).

    Установка (хост должен поддерживать PHP, MySQL, mod_rewrite):
    1) Залить все файлы на ваш хост.
    2) Изменить данные для соединения c базой данных MySQL (файл config.php).
    3) Если нужно измените дизайн (в папке inc три файла: top.php, bottom.php, style.css).
    4) Импортируйте dump базы данных (файл dump.sql), например через PhpMyAdmin.
    5) Цитатник готов к использованию.
    6) Администраторская панель находится по адрессу http://yoursite.ru/adm/, по умолчанию логин: admin пароль: qwerty (не забудьте сменить!!!)

    Последнее обновление:
    -Подправлен код (исправлены некоторые ошибки, убрано лишнее, вынесены функции в отдельный файл и т.д.)
    -Исправлена бага в репутации, теперь все работает. Посетитель может 1 раз нажать + и 1 раз нажать -, для каждой цитаты.
    -Раздел "О сайте" теперь редактируется прямо из Админки.
    -Исправлена ошибка, которая возникала при редактировании пользователей в Админке (неправильно выставлялся статус).
    -Теперь при удалении цитаты, также удаляются ее логи (имеется ввиду логи изменения рейтинга).
    -Добавлена возможность редактирования правил, отображающихся при добавлении цитат.
    -Новый раздел "20 новых" (вывод 20 последних добавленных цитат).

    =================================================
    О всех найденных багах\ошибках\пожеланиях просьба сообщать по ICQ# 7766666 и e-mail: [email protected].
    Пример движка можно посмотреть на http://quotes.lsass.us.
    Свежие версии всегда можно найти на http://lsass.us ;).
    =================================================

    Скачать Simple Quotes Engine (lsass.us)
    Скачать Simple Quotes Engine (rapidshare.com)

    (c) lsass.exe

    //щас траблы с хостом, поэтому пока на рапиду залил (демо версия будет доступна позже)
     
    #1 lsass.exe, 14 Dec 2007
    Last edited: 18 Jan 2008
    26 people like this.
  2. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Ну ты вообще молодец :)
    Супер, слов нет)
    Жалко что могу только +1 стаавить(
     
  3. Ю_ЗвЕРь

    Ю_ЗвЕРь Member

    Joined:
    23 Nov 2006
    Messages:
    98
    Likes Received:
    28
    Reputations:
    1
    Прелесть! Искал в сети цитатники недавно. Это, пожалуй, самый оптимальный вариант. Понравилось, забираем с удовольствием ,) Благодарю!
     
  4. +toxa+

    +toxa+ Smack! SMACK!!!

    Joined:
    16 Jan 2005
    Messages:
    1,674
    Likes Received:
    1,029
    Reputations:
    1,228
    Там инхэкция есть через подмену значений X_FORWARDED_FOR и CLIENT_IP +)

    index.php
    PHP:
    function getip()
            {
                if(isset(
    $HTTP_SERVER_VARS)) 
                {
                    if(isset(
    $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])) 
                    {
                        
    $realip $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
                    }
                    elseif(isset(
    $HTTP_SERVER_VARS["HTTP_CLIENT_IP"])) 
                    {
                        
    $realip $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
                    }
                    else
                    {
                        
    $realip $HTTP_SERVER_VARS["REMOTE_ADDR"];
                    }
    ....

    $ip getip();

            function 
    modrate($id,$ip)
            {
                require_once 
    "config.php";
                
    $query mysql_query("SELECT `rating` FROM `quotes` WHERE `id` = '$id'");
                
    $r mysql_fetch_array($query);
                if(
    $_GET['rating']=="plus"$r['rating']++;
                if(
    $_GET['rating']=="minus"$r['rating']--;
                
    $query mysql_query("UPDATE `quotes` SET `rating` = '$r[rating]' WHERE `id` = '$id'");
                if(
    $query)
                {
                    
    $query mysql_query("INSERT INTO `logs` VALUES('','$id','$ip','$_GET[rating]')");     
                } else return 
    false;    
                return 
    true;
            }    

    ....
    $query mysql_query("SELECT * FROM `logs` WHERE `ip` = '$ip' AND `qid` = '$id'");
    if(
    mysql_num_rows($query)>0)
    {    
    ....
    лечится заменой 95 строчки в index.php на
    PHP:
    return addslashes($realip);
     
    _________________________
    #4 +toxa+, 14 Dec 2007
    Last edited: 14 Dec 2007
    2 people like this.
  5. lsass.exe

    lsass.exe Elder - Старейшина

    Joined:
    5 Aug 2007
    Messages:
    156
    Likes Received:
    161
    Reputations:
    24
    исправил ;)
    Также добавлено:
    5) Быстрое добавление цитат (нету защитного кода + сразу присваивается статуc "проверено")
     
  6. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Личто я предпочяитаю сразу фильтровать не отходя от кассы:
     
  7. lsass.exe

    lsass.exe Elder - Старейшина

    Joined:
    5 Aug 2007
    Messages:
    156
    Likes Received:
    161
    Reputations:
    24
    Не катит, тогда уж сразу конечный $realip проверять
    return htmlspecialchars(stripslashes($realip));

    Функция определяет ип с вероятностью 99.9% =)))) Должна по крайне мере, если я не накосячил =\
     
    1 person likes this.
  8. TrypoED

    TrypoED Banned

    Joined:
    22 Apr 2007
    Messages:
    145
    Likes Received:
    106
    Reputations:
    -85
    Отлично )
    Щас затестим ;]
     
  9. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    +1 ты прав, но я в своих скриптах делаю так, конечно больше кода, но привык я так =/:
    PHP:
    <?php

    function getip(){
    if(
    htmlspeciachars(stripslashes(getenv('REMOTE_ADDR')))) 
    $ip htmlspeciachars(stripslashes(getenv('REMOTE_ADDR')));}
    elseif(
    htmlspeciachars(stripslashes(getenv('HTTP_FORWARDED_FOR')))) 
    $ip htmlspeciachars(stripslashes(getenv('HTTP_FORWARDED_FOR')));} 
    elseif(
    htmlspeciachars(stripslashes(getenv('HTTP_X_FORWARDED_FOR')))) 
    $ip htmlspeciachars(stripslashes(getenv('HTTP_X_FORWARDED_FOR')));} 
    elseif(
    htmlspeciachars(stripslashes(getenv('HTTP_X_COMING_FROM')))) 
    $ip htmlspeciachars(stripslashes(getenv('HTTP_X_COMING_FROM')));} 
    elseif(
    htmlspeciachars(stripslashes(getenv('HTTP_VIA')))) 
    $ip htmlspeciachars(stripslashes(getenv('HTTP_VIA')));} 
    elseif(
    htmlspeciachars(stripslashes(getenv('HTTP_XROXY_CONNECTION'))))
    $ip htmlspeciachars(stripslashes(getenv('HTTP_XROXY_CONNECTION')));} 
    elseif(
    htmlspeciachars(stripslashes(getenv('HTTP_CLIENT_IP')))) 
    {
    $ip htmlspeciachars(stripslashes(getenv('HTTP_CLIENT_IP')));} 
    else{
    $ip "unknown";}
    return 
    $ip;


    $ip_user getip();
    ?>
     
    2 people like this.
  10. Macro

    Macro Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Хороший двиг :) Только цифры с картинки иногда не прочесть совсем. Кстати я ошибся насчет инъекции
     
    #10 Macro, 14 Dec 2007
    Last edited: 14 Dec 2007
    1 person likes this.
  11. lsass.exe

    lsass.exe Elder - Старейшина

    Joined:
    5 Aug 2007
    Messages:
    156
    Likes Received:
    161
    Reputations:
    24
    согласись это нерацианально, нет смысла проверять каждый раз, если в результате все равно получим $realip , которые првоерим 1 раз и все =)
     
    3 people like this.
  12. -Hormold-

    -Hormold- Кто, если не ты?

    Joined:
    29 Sep 2007
    Messages:
    418
    Likes Received:
    290
    Reputations:
    44
    Перезалейте...
     
  13. lsass.exe

    lsass.exe Elder - Старейшина

    Joined:
    5 Aug 2007
    Messages:
    156
    Likes Received:
    161
    Reputations:
    24
    Добавил в первый пост скриншоты админки.
     
  14. F!$T

    F!$T Повелитель шнэков!

    Joined:
    5 Feb 2007
    Messages:
    94
    Likes Received:
    300
    Reputations:
    6
    lsass.exe, молодца, что сказать...
     
    9 people like this.
  15. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    Если оценил цитату, убери плюченги и минусенги, или хотябы пиши не "Спасибо, рейтинг успешно изменен" а "Вы это уже оценили" ИМХО
     
    1 person likes this.
  16. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    на одну и ту же цитату можно сначала нажать плюсег, а потом минусег. думаю, это не правильно =\
     
    1 person likes this.
  17. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,547
    Likes Received:
    1,398
    Reputations:
    612
    а почему тут нету фильтрации???
     
  18. lsass.exe

    lsass.exe Elder - Старейшина

    Joined:
    5 Aug 2007
    Messages:
    156
    Likes Received:
    161
    Reputations:
    24
    За одну цитату можно отдать один раз + и один раз -, если передумали например. На баше так по крайне мере, я решил сделать тоже самое.

    GreenBear это Enot показывал как он делал функцию =\ В двиге это не используется ;)
     
    1 person likes this.
  19. Solide Snake

    Solide Snake Banned

    Joined:
    28 Apr 2007
    Messages:
    382
    Likes Received:
    820
    Reputations:
    69
    Оооо спасибо:)))Давно хотел себе такой двиг на комп...Но чёто так и не дошли руки...А щас скачал:)Ещё раз спс:)
     
  20. Vaillas

    Vaillas New Member

    Joined:
    29 Dec 2007
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    lsass.exe, где скачать? У тя на саите даёт еррор 404