Перейти к содержанию

Таблица лидеров


Популярный контент

Показан контент с высокой репутацией 02/12/18 во всех областях

  1. 1 балл
    Появилось много свободного времени. Вот решил заняться добрым делом, да и может копеечку заработать) В силу своих возможностей помогу всем) Бесплатные: 1) Работа с базой правка sql\xml запросов для шмоток, пушек, бижи, ГМшопов и т.д под вашу сборку. 2) Помощь в редактировании датапака. 3) Установка и настройка сервера на linux(debian7)\windows. Помощь в установке smartguard. 4) Помощь в настройке stressweb\ghtweb Платные: 1) любая работа с photoshop 2) Установка и настройка движка Stress Web(13) IPB любой версии. 3) Написание и оформление HTML (баферы,гк,гмшопы) 4) Создание кнопок(анимированные),логотипы в шопы. 5) Оформление патча \разработка\ (логотипы,сплеши,загрузочные лого) 6) Установка и настройка платежных систем (nextpay, unitpay) 7) Настройка и установка серверов Lineage 2 (разработка с нуля по вашим заказам) Что входит в сервер под ключ: 1) Полная реализация сервера по вашим задумкам. 2) Разработка уникальных HTML (баферов,магазинов,телепортов). 3) Написание всех логотипов\кнопок\икнок (возможность анимации). 4) Возможность редактирования текстур шмота по вашим пожеланиям (перекраска, добавление\удаление элементов, анимирование). 5) Полное оформление патча. 6) Полная поддержка сборки в течени 2 недель после сдачи работы. Несколько примеров работ по серверам: Hide Несколько примеров работ по серверам: Hide Все цены договорные и зависят от сложности работы! Пишем в лс. Skype: +79513751002 ICQ: 509986
  2. 1 балл
    А стоило бы проверить работу в клиенте по той причине, что у logo нету нижней части в альфа канале. Я посчитал нужным убрать название лишь из альфы, а ник автора оставить при просмотре. На сервере текстура будет без нижней части. Вот как.
  3. 1 балл
    Клево) Удачи и побольше покупателей
  4. 1 балл
    Очень красивая и качественная работа. Даю 5 из 5
  5. 1 балл
    Наконец таки что-то свежее, и человек не зажравшийся. Несколько заказов выполнены на ура.
  6. 1 балл
    Смотри что отправляет сервер пакетом NpcInfo (открой декомпилом ядро, если что)
  7. 1 балл

    Версия 1.0.0

    100 раз скачали

    Запрет фарма при наличие предметов, сертификата новичка, премиума, заточки для PwSoft(l2j)

    Бесплатный

  8. 1 балл

    423 раза скачали

    http://youtu.be/b1XSKbhuPEQ Уже выкладывал на одном из форумов, но все ссылки биты, на l2maxi не нашел )

    Бесплатный

  9. 1 балл
    Еще за лето накопилась работка на продажу ) Персонаж из PW обработан художницей ) персонажа можно поменять, также как логотип ну и что еще захотите ) По всем интересующим вас вопросам пишите в вк: https://vk.com/asaya_art или в skype: asaya_artstudio (на аватарке фото, регион: Украина)
  10. 1 балл

    90 раз скачали

    Помню играл в одной игре и видел там рейд босса решил его вытащить для Вас! От СПС + НЕ ОТКАЖУСЬ!

    Бесплатный

  11. 1 балл

    Версия Interlude

    130 раз скачали

    [media= ]http://www.youtube.com/watch?v=0sGq3YRbmwA[/media] Новый пет для вашего сервера,данный нпц заменяет страйдера,и у вас есть возможность гонять на Queen Ant.

    Бесплатный

  12. -1 балл
    Всем доброго времени суток! В этом уроке мы с вами будем учиться использовать mysqli_prepare который сделает наш скрипт куда современнее + защитит от простых SQL инъекций. Что это и зачем это нужно Начнем с того, что MySQL перестал поддерживаться уже давным давно, на смену ему пришел MySQLi. Он стал куда сочнее и функциональнее да и пользоваться в целом им стало удобнее. Мы с вами остановимся конкретно на mysqli_prepare. Последнее что я выделил жирным это очень замечательно. Таким образом если наш зловредный школохакер захочет дропнуть нашу базу прописав в форму регистрации что то вроде : "; DROP TABLE l2jserver; # У него ничего не получится, ведь подготовленный запрос должен состоять из одного SQL выражения! Рассмотрим на конкретном примере Давайте представим что у нас стоит обычный MySQL и перед регистрацией аккаунта наш скрипт проверяет наличие аккаунта перед тем как его добавить (или вернуть ошибку что аккаунт существует). В таком случае PHP код регистрации будет выглядеть примерно так: <?php $connect=mysql_connect($host, $user, $password); // иницилизируем подключение mysql_select_db($connect, $dbname); // выбираем нужную бд $query='SELECT * FROM accounts WHERE login="'.$login.'"'; // объявляем переменную с запросом $result=mysql_query($query); // выполняем запрос $rows=mysql_num_rows($result); // получаем кол-во строк из результата if($rows) { // если строки найдены // аккаунт уже есть, выдаем ошбку; } else { // если строки не найдены // аккаунта нет, можем регистрировать; } mysql_close($connect); // закрываем подключение ?> А теперь давайте представим что мы школохакеры и хотим дропнуть базу сервера зная её название. Тогда вместо логина я должен указать: "; DROP DATABASE l2jserver; # # - нужна чтобы MySQL игнорировал всё что идёт после неё. Таким образом $query будет выглядеть следующим образом: $query='SELECT * FROM accounts WHERE login=""; DROP DATABASE l2jserver; #"'; За ним последует выполнение функции mysql_query и как следствие дроп базы сервера. Как этого избежать? - Юзай MySQLi! Теперь предлагаю рассмотреть код регистрации который мы привели выше с использованием MySQLi (без prepare). <?php $connect=new mysqli($host, $user, $password, $db); // иницилизируем подключение к бд $query='SELECT * FROM accounts WHERE login="'.$_POST['login'].'"'; // объявляем переменную с запросом $result=$connect->query($query); // выполняем запрос $rows=$result->num_rows; // получаем кол-во строк в полученном результате из запроса if($rows) { // если строки найдены // такой аккаунт уже найден выводим ошибку; } else { // если строки не найдены // аккаунт не найден, регистрируем; } $result->free(); // очищаем результат $connect->close(); // закрываем подключение ?> Но этот скрипт до сих пор не безопасен, поскольку мы так же легко выполним два запроса одной функцией. Чтобы этого избежать будем использовать mysqli_prepare. Поехали!) <?php $connect=new mysqli($host, $user, $password, $db); // иницилизируем подключение к бд $query='SELECT * FROM accounts WHERE login=?'; // объявляем переменную с запросом $stmt = $connect->prepare($query); // подготавливаем наш запрос $stmt->bind_param('s', $_POST['login']); // присваеваем первому ? в запросе параметр с типом данных s (string) $stmt->execute(); // выполняем подготовленный запрос $result=$stmt->get_result(); // получаем результат из подготовленного запроса $rows=$result->num_rows; // получаем кол-во строк в полученном результате из запроса if($rows) { // если строки найдены // такой аккаунт уже найден выводим ошибку; } else { // если строки не найдены // аккаунт не найден, регистрируем; } $result->free(); // очищаем результат $stmt->close(); // закрываем подготовленный запрос $connect->close(); // закрываем подключение ?> // P.S. Я сам только сейчас осваиваю эту функцию и поэтому для усвоения решил написать этот мануал. Поэтому если что то не так - поправьте. Теперь давайте по порядку. Мы можем забиндить (функция bind_param) сколько угодно параметров любого типа данных. Главное чтобы мы их объявляли по порядку исходя из нашего запроса. В $query где login=? мы даем понять коду что мы хотим вместо ? подставить параметры которые мы присвоили ниже функцией bind_param. Таким образом мы можем строить куда более сложные запросы и использовать разные типы данных. Как в примере ниже: <?php $accesslevel=0; $stmt = $mysqli->prepare( "INSERT INTO accounts ( login, password, accesslevel ) VALUES (?,?,?)" ); $stmt->bind_param( "ssi", $_POST['char_name'], $_POST['password'], $accesslevel ); $stmt->execute(); $stmt->close(); ?> Что у нас получается. В наш запрос будут подставлены данные из переменных с тем типом данных которые мы указали перед первой запятой в кавычках. i - int (целое число) s - string (строковое значение) Теперь когда наш школохакер захочет выполнить sql инъекцию система просто не даст ему это сделать, поскольку подготовленный запрос может быть только один. Для подстраховки вы можете так же использовать функцию экранирования mysqli->real_escape_string($string); перед тем как подставить эти данные в запрос, но это для супер параноиков т.к. prepare автоматически экранирует данные. Надеюсь урок будет полезен и расширит ваш кругозор!) Не откажусь от благодарности. Всем спасибо за внимание!
×
×
  • Создать...