19:40
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
        
[SA-MP] Hosted Tab (119)
DieSeL 23.09.2017 14:53
GTA IV Mod Installer (5)
jasper2 23.09.2017 02:50
 





Рекомендуем:
Добавить IP: 95.172.59.51:7777





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
Скачать GTA SAMP 0.3.7 - Кл... 20.07.2015
Страница 1 из 212»
Модератор форума: Alcoholik 
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » SAMP Скрипты » Система обмена сообщениями [MySQL]
Система обмена сообщениями [MySQL]
ApecДата: Воскресенье, 29.04.2012, 20:50 | Сообщение # 1
Группа: Mappers
Сообщений: 1307
Награды: 29
Город: Минск
Репутация: 1922
Замечания: 0%
Статус:
Описание от Games:

Приветствую Всех!
Как всегда, АРЕС подкидывает интересные идеи.
В этот раз этому безумному человеку пришла мысль в голову создать систему обмена сообщений между пользователями, но отправка должна быть возможна, даже если игрок (получатель) не находится в данный момент на сервере.

Что включено в это готовое решение:

-Использование MySQL;
-Отправка сообщения игроку, даже если он оффлайн;
-Поиск получателя в базе: Можно использовать маску для поиска, т.е. если вы хотите найти игрока с ником Games, можно в поиск ввести следущее: "G%ES"
% - означает произвольную длину символов, она может быть равна и нулю (кто сдает ЕГЭ по информатике, в задании А4 аналогичная вещь :ay:);
-Чтение сообщений (входящих и исходящих), возможность удаления сообщений;
-Все непрочитанные сообщения отмечены, а их кол-во указано в главном меню системы;
-После первого спавна при наличии непрочитанных сообщений, в правом нижнем углу будет уведомление о новых письмах;
-Также уведомление приходит, когда Вам отправил сообщение любой онлайн игрок на сервере;
-Возможность отправки онлайн игрокам через клик в табе, при клике в табе на себя - происходит открытие главного меню;



Видео:


Качество видео не самое лучшее, поэтому более подробно посмотрите сами в игре.

SQL запрос для создания таблиц:
Code

CREATE TABLE `messages` (
      `mID` int(6) NOT NULL AUTO_INCREMENT,
      `Receiver` varchar(24) NOT NULL,
      `Sender` varchar(24) NOT NULL,
      `Date` varchar(32) NOT NULL,
      `Message` varchar(200) NOT NULL,
      `display` int(1) NOT NULL DEFAULT '0',
       PRIMARY KEY (`mID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `Names` (
`Name` VARCHAR( 24 ) NOT NULL     
) ENGINE = MYISAM ;


Как вы могли заметить, таблицы в запросе создается 2.
Первая - хранит сообщения, вторая - добавляет при коннекте ники в базу (используется для поиска Ник-Неймов).
Если у вас аккуанты хранятся в MySQL, рекомендую заменить вторую таблицу на чтение данных из вашей таблицы с аккуантами.
[bgcolor=#CCCCCC]СКАЧАТЬ[/bgcolor]

Авторы:
Games & APEC





Сообщение отредактировал Apec - Вторник, 01.05.2012, 10:25
Fus1Дата: Воскресенье, 29.04.2012, 21:46 | Сообщение # 2
Группа: Продвинутые
Сообщений: 2705
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус:
Прикольно, но к сожелению уже не новое)
ApecДата: Воскресенье, 29.04.2012, 22:06 | Сообщение # 3
Группа: Mappers
Сообщений: 1307
Награды: 29
Город: Минск
Репутация: 1922
Замечания: 0%
Статус:
В паблике нету ведь...


LatronДата: Воскресенье, 29.04.2012, 22:43 | Сообщение # 4
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Apec, Молодцы ,хорошая работа. Только исправьте: строку:
Code
ShowPlayerDialog(playerid,ID_DIALOG+6,DIALOG_STYLE  _INPUT,"Ввод текста","Введите текст сообщения:","Ок", "Отмена");

на:
Code
ShowPlayerDialog(playerid,ID_DIALOG+6,DIALOG_STYLE_INPUT,"Ввод текста","Введите текст сообщения:","Ок", "Отмена");

и строку:
Code
else if(listitem == 2) ShowPlayerDialog(playerid,ID_DIALOG+4,DIALOG_STYLE  _INPUT,"Поиск имени получателя","Перед отправкой сообщения Вам необходимо ввести имя пользователя,\nкоторому вы хотите отправить сообшение.Вы можете ввести и часть имени.\nНапример, Вы хотите отправить сообшение игроку с ником Games.\nВ этом случае для поиска имени достаточно ввести, \"mes\" или \"game\""," .:Ок:."," .:Отмена:.");

на:
Code
else if(listitem == 2) ShowPlayerDialog(playerid,ID_DIALOG+4,DIALOG_STYLE_INPUT,"Поиск имени получателя","Перед отправкой сообщения Вам необходимо ввести имя пользователя,\nкоторому вы хотите отправить сообшение.Вы можете ввести и часть имени.\nНапример, Вы хотите отправить сообшение игроку с ником Games.\nВ этом случае для поиска имени достаточно ввести, \"mes\" или \"game\""," .:Ок:."," .:Отмена:.");

и строку:
Code
ShowPlayerDialog(playerid,ID_DIALOG+6,DIALOG_STYLE  _INPUT,"Ввод текста","Введите текст сообщения:","Ок", "Отмена");

на:
Code
ShowPlayerDialog(playerid,ID_DIALOG+6,DIALOG_STYLE_INPUT,"Ввод текста","Введите текст сообщения:","Ок", "Отмена");

и строку:
Code
else format(string, sizeof(string), "{0000ff}Получатель:\n{ff0000}%s\n\n{0000ff}Время:\  n{ff0000}%s\n\n{0000ff}Текст сообщения:\n{ff0000}%s", Receiver, Date , Message );

на:
Code
else format(string, sizeof(string), "{0000ff}Получатель:\n{ff0000}%s\n\n{0000ff}Время:\n{ff0000}%s\n\n{0000ff}Текст сообщения:\n{ff0000}%s", Receiver, Date , Message );



Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )




Улыбайся всем как можно шире - =)) Они должны быть уверены,что ты холодная лицемерная сволочь. © Виктор Пелевин

Сообщение отредактировал Latron - Воскресенье, 29.04.2012, 23:02
oleg_tarantulaДата: Понедельник, 30.04.2012, 12:37 | Сообщение # 5
Постоялец
Группа: Продвинутые
Сообщений: 345
Награды: 5
Город: -
Репутация: 118
Замечания: 60%
Статус:
Отличная работа. Спасибо.


AirKiteДата: Понедельник, 30.04.2012, 16:50 | Сообщение # 6
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
Молодцы конечно, код тчатеьлно не просматривал, это по всей видимости сделал Latron. Тем не менее мельком глянул. Очень плохо что не используется отдельный поток. И самое главное скрипт открывает уязвимость SQL Injection для базы к которой он подключен.


[1337GAMES] Easy RP
(SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)


Jabber: airkite@qip.ru
[Addon] QuickBinder
[FS] Online Players Record
Fus1Дата: Понедельник, 30.04.2012, 16:55 | Сообщение # 7
Группа: Продвинутые
Сообщений: 2705
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус:
Quote (AirKite)
это по всей видимости сделал Latron

не, Латрон пишит по другому, даже по самому элементарному он разделяет всё, к примеру

PlayerInfo [ playerid ] [ test ] = 0 ; :D

Да и думаю вообще, его бы указали.
Quote (Apec)
Авторы: Games & APEC


AirKite, скажи пожалуйста как именно можно взломать спомощью sql иньекции данный скрипт. Подключится к бд , вытащить данные ? (PS: в этом вообще 0 :) )



Сообщение отредактировал Fus1 - Понедельник, 30.04.2012, 16:57
MarkeloFFДата: Понедельник, 30.04.2012, 17:31 | Сообщение # 8
Советчик
Группа: I'm V.I.P.
Сообщений: 1032
Награды: 14
Город: Калининград
Репутация: 191
Замечания: 80%
Статус:
Мне не очень понравилось, кажется стандарт удобнее.
[off]p.s. 800 постов[/off] crazy



Сообщение отредактировал MarkeloFF - Понедельник, 30.04.2012, 17:31
LatronДата: Понедельник, 30.04.2012, 22:20 | Сообщение # 9
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Quote (Fus1)
не, Латрон пишит по другому, даже по самому элементарному он разделяет всё, к примеру

PlayerInfo [ playerid ] [ test ] = 0 ; :D

Да и думаю вообще, его бы указали.

Ну не я не участвовал в создании я просто увидел и исправил ошибки ))



Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )




Улыбайся всем как можно шире - =)) Они должны быть уверены,что ты холодная лицемерная сволочь. © Виктор Пелевин
ApecДата: Вторник, 01.05.2012, 01:17 | Сообщение # 10
Группа: Mappers
Сообщений: 1307
Награды: 29
Город: Минск
Репутация: 1922
Замечания: 0%
Статус:
Насчёт кода это пинайте Игоря (Games) я просто говорю как всё должно работать
Quote (MarkeloFF)
Мне не очень понравилось, кажется стандарт удобнее.

эм... не понял о каком стандарте идёт речь.



LatronДата: Вторник, 01.05.2012, 01:32 | Сообщение # 11
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Quote (Apec)

эм... не понял о каком стандарте идёт речь.

Успокойся, маркелоф бредит, какой к черту стандарт, в паблике даже не было такого еще. А стандартно в самп нет такого .

Добавлено (01.05.2012, 01:32)
---------------------------------------------
[off]

Quote (Fus1)
Cream Life - Luxury RP [ последней версии!!!! ] - скачать


Я не поверил fun , но потом всё таки решил проверить bad fun [/off]



Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )




Улыбайся всем как можно шире - =)) Они должны быть уверены,что ты холодная лицемерная сволочь. © Виктор Пелевин
AirKiteДата: Вторник, 01.05.2012, 06:18 | Сообщение # 12
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
Fus1, я где то не правильно высказался?
Quote (AirKite)
Молодцы конечно, код тчатеьлно не просматривал, это по всей видимости сделал Latron.

Речь идёт о тщательном просмотре кода, которое уже и так сделал Latron судя по его посту. Причём тут его отношение к разработке данного скрипта?

Quote (Fus1)
AirKite, скажи пожалуйста как именно можно взломать спомощью sql иньекции данный скрипт. Подключится к бд , вытащить данные ? (PS: в этом вообще 0 )

Я же прикрепил ссылку на википедию по SQL injection. Суть взлома что можно выполнить произвольный SQL запрос. (Добавить админа, отредактировать любые данные и т.д.) Взлом возможен при помощи построения специального кода в диалог окна ввода нового сообщения.



[1337GAMES] Easy RP
(SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)


Jabber: airkite@qip.ru
[Addon] QuickBinder
[FS] Online Players Record
GamesДата: Вторник, 01.05.2012, 07:36 | Сообщение # 13
Новенький
Группа: Продвинутые
Сообщений: 8
Награды: 1
Город: Прим. край
Репутация: 147
Замечания: 0%
Статус:
Приветствую Вас, господа!
Как вижу, здесь начинается холивар.
Автор этого кода я... Тем более - авторы указаны в первом посту, так что не нужно тут что-либо придумывать.
А теперь по порядку...

Latron, спасибо, действительно, в коде образовались пробелы.
Причиной всего этого является прямое копирование кода из Pawno и его вставка непосредственно на сайт.
Как видим, в результате этого и образовались пробелы.
Поэтому, как альтернатива - была опубликована ссылка на скачивание pwn-файла.

Quote (AirKite)
Молодцы конечно, код тчатеьлно не просматривал, это по всей видимости сделал Latron.

Надеюсь, Вы поняли, что авторы этой работы Games и Арес :)

Quote (AirKite)
И самое главное скрипт открывает уязвимость SQL Injection для базы к которой он подключен.

Действительна, уязвимость есть.
Для этого в плагине MySQL есть замечательная ф-ия mysql_real_escape_string, которую я кстати и использовал в SQL-запросе при поиске Ник-Неймов в СУБД.
Но в форме ввода текста, к сожалению, я забыл её прописать.

В моем коде есть и еще один недостаток, если отправить пустой запрос при поиске имени - то отобразится весь список Ник-Неймов, т.к. все эти имена будут удовлетворять условию поиска "%%".
Но, проверка на пустой текст всё равно не поможет, ведь можно просто ввести "%%%%" к примеру, и тогда результат будет такой же, как и в первом случае.

Для этого я написал ф-ию bool:CheckInput(source[]), которая будет требовать наличие как минимум 2 символов, будь это a-z, A-Z или 0-9.

Исправленный код можно скачать здесь:
www.cruelgame.ru/offmsg/offmsg1.1.rar

Exclus1veДата: Вторник, 01.05.2012, 11:57 | Сообщение # 14
Освоившийся
Группа: Продвинутые
Сообщений: 141
Награды: 4
Город: Санкт-Петербург
Репутация: 330
Замечания: 40%
Статус:
[off]Молодцы конечно, код тчатеьлно не просматривал, это по всей видимости сделал Latron[/off]

wtf?

А так - Игорь молодец.



node.js

Сообщение отредактировал Exclus1ve - Вторник, 01.05.2012, 11:59
LatronДата: Вторник, 01.05.2012, 13:10 | Сообщение # 15
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Quote (Exclus1ve)
Оффтопик
Молодцы конечно, код тчатеьлно не просматривал, это по всей видимости сделал Latron
wtf?

Что хоть не понятного ? AirKite не стал смотреть код тчатеьлно по тому что это сделал Latron .



Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )




Улыбайся всем как можно шире - =)) Они должны быть уверены,что ты холодная лицемерная сволочь. © Виктор Пелевин
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » SAMP Скрипты » Система обмена сообщениями [MySQL]
Страница 1 из 212»
Поиск:





 


 


 
Хостинг от uCoz SAMP-RUS.COM