ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Движок Цитатника от меня
  #1  
Старый 14.12.2007, 04:30
lsass.exe
Участник форума
Регистрация: 05.08.2007
Сообщений: 236
Провел на форуме:
4625160

Репутация: 457
Thumbs up Движок Цитатника от меня

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: lsass@yandex.ru.
Пример движка можно посмотреть на http://quotes.lsass.us.
Свежие версии всегда можно найти на http://lsass.us .
=================================================

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

(c) lsass.exe

//щас траблы с хостом, поэтому пока на рапиду залил (демо версия будет доступна позже)

Последний раз редактировалось lsass.exe; 18.01.2008 в 23:59..
 
Ответить с цитированием

  #2  
Старый 14.12.2007, 05:37
.:EnoT:.
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме:
4832771

Репутация: 1916


По умолчанию

Ну ты вообще молодец
Супер, слов нет)
Жалко что могу только +1 стаавить(
 
Ответить с цитированием

  #3  
Старый 14.12.2007, 06:16
Ю_ЗвЕРь
Участник форума
Регистрация: 23.11.2006
Сообщений: 143
Провел на форуме:
622668

Репутация: 92
Отправить сообщение для Ю_ЗвЕРь с помощью ICQ
По умолчанию

Прелесть! Искал в сети цитатники недавно. Это, пожалуй, самый оптимальный вариант. Понравилось, забираем с удовольствием ,) Благодарю!
 
Ответить с цитированием

  #4  
Старый 14.12.2007, 12:46
+toxa+
[Лишённый самовыражени
Регистрация: 16.01.2005
Сообщений: 1,787
Провел на форуме:
9751379

Репутация: 3812


Отправить сообщение для +toxa+ с помощью ICQ Отправить сообщение для +toxa+ с помощью AIM
По умолчанию

Там инхэкция есть через подмену значений 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); 
__________________

Последний раз редактировалось +toxa+; 14.12.2007 в 12:49..
 
Ответить с цитированием

  #5  
Старый 14.12.2007, 13:18
lsass.exe
Участник форума
Регистрация: 05.08.2007
Сообщений: 236
Провел на форуме:
4625160

Репутация: 457
По умолчанию

Цитата:
Сообщение от +toxa+  
Там инхэкция есть через подмену значений 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); 
исправил
Также добавлено:
5) Быстрое добавление цитат (нету защитного кода + сразу присваивается статуc "проверено")
 
Ответить с цитированием

  #6  
Старый 14.12.2007, 14:55
.:EnoT:.
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме:
4832771

Репутация: 1916


По умолчанию

Личто я предпочяитаю сразу фильтровать не отходя от кассы:
Цитата:
$realip = htmlspecialchars(stripslashes(getenv('REMOTE_ADDR' )));
 
Ответить с цитированием

  #7  
Старый 14.12.2007, 15:05
lsass.exe
Участник форума
Регистрация: 05.08.2007
Сообщений: 236
Провел на форуме:
4625160

Репутация: 457
По умолчанию

Цитата:
Сообщение от .:EnoT:.  
Личто я предпочяитаю сразу фильтровать не отходя от кассы:
Не катит, тогда уж сразу конечный $realip проверять
return htmlspecialchars(stripslashes($realip));

Функция определяет ип с вероятностью 99.9% =)))) Должна по крайне мере, если я не накосячил =\
 
Ответить с цитированием

  #8  
Старый 14.12.2007, 17:00
TrypoED
Banned
Регистрация: 22.04.2007
Сообщений: 213
Провел на форуме:
1031650

Репутация: 148
По умолчанию

Отлично )
Щас затестим ;]
 
Ответить с цитированием

  #9  
Старый 14.12.2007, 17:20
.:EnoT:.
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме:
4832771

Репутация: 1916


По умолчанию

Цитата:
lНе катит, тогда уж сразу конечный $realip проверять
return htmlspecialchars(stripslashes($realip));
+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();
?>
 
Ответить с цитированием

  #10  
Старый 14.12.2007, 17:26
Macro
Постоянный
Регистрация: 11.11.2006
Сообщений: 595
Провел на форуме:
1845062

Репутация: 1079


По умолчанию

Хороший двиг Только цифры с картинки иногда не прочесть совсем. Кстати я ошибся насчет инъекции

Последний раз редактировалось Macro; 14.12.2007 в 17:36..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Письма девочек-подростков в журнал "Yes!" Lolik Болталка 43 03.03.2009 22:43
Юмор: Кто сказал что у админов халявная работа? silveran Болталка 7 21.07.2007 02:37
Вообщем, Я показал на что Я способен, так что может померимся? Зачем меня раздражать? Кулицов Болталка 12 21.05.2005 13:45



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ