первое что пришло в голову: добавить в таблицу с юзерами 1 поле - счётчик урона. В процессе боя прибавляем туда нанесённый урон, а в конце боя высчитываем опыт и обнуляем счётчик урона - это самое простое решение имхо. топ браузерных игр
session_is_registered - это старая функция, и скорее всего не работает на новых версиях пхп. Либо поставьте более старую версию, либо перепишите исходник:) топ браузерных игр
Сообщение отредактировал a112 - Четверг, 11 Августа 2011, 14:41
Добавлено (11.08.2011, 14:28) --------------------------------------------- Да и где ві вообще там такое нашли? Там вроде как CREATE DATABASE `combats_root` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci; а information_schema это база где хранятся процедуры мускуля. Вам туда лезть не нужно
Есть 2 вида взломщиков: 1. Умные. 2. Те, которые думают что они умные. От первых защитится невозможно в принципе, т.е. если захотят - взломают. Не через сайт, так через хостинг, фтп, ssh, мыло вскроют - да много чего есть. Со вторыми проще, но как раз от вторых 90% всех бед.
Quote
етодом POST имхо как мы поняли GET ломается очень легко
ГЕТ от ПОСТа, по сути, отличается только максимальным объёмом передаваемой информации. Никаких "защит" в них нет, они просто передают параметры. Когда вы пишете скрипт в который пользователь передаёт данные, то нужно строго описывать все варианты данных, которые могут прийти. И неважно приходят они ГЕТом или ПОСТом. Например обработчик того же перемещения. Думаем - могут передать что угодно, а должно быть целое положительное число. Я всегда делаю так:
Code
$var = $_GET['var']*1; -умножаем на 1. Если пришло не число - в переменной будет 0. Этой строкой мы убрали всё нехорошести, которые можно передать:) Далее проверяем чтоб был не ноль и не отрицательное if (($var != 0) && ($var > 0)) { // Далее проверка на, скажем, существование координат для перехода. $sql = "SELECT * FROM koordinaty WHERE id = $var"; $res = mysql_query($sql) or die(mysql_error());//Вытягиваем координаты $num_rows = mysql_num_rows($res); if( $num_rows != 0 ){ //если данные есть - идём далее $arr = mysql_fetch_assoc($res); //Вытягиваем ассоциативный массив к примеру и с ним далее работаем
} else //Если координат нету, тоже можем что-то написать, послать в топку или забанить или ещё чего-то. } else //Что-то пишем или тупо хедером посылаем фтопку
Для текстовых данных достаточно будет $data = strip_tags(trim(htmlspecialchars($data, ENT_QUOTES))); , и то strip_tags и trim можно убрать, смотря что фильтруем. То есть проверки, проверки и ещё раз проверки. Их много не бывает:) топ браузерных игр
Сообщение отредактировал a112 - Среда, 10 Августа 2011, 19:28
function check_pass() { var res = $('inp_pass').value.length >= 6; setPictureStatus('pic_pass', res); return res; }
function check_pass2() { var res = ($('inp_pass').value.length >= 6) && ($('inp_pass').value == $('inp_pass2').value); setPictureStatus('pic_pass2', res); return res; }
var emailRegex = new RegExp(decode64('KD86W2EtejAtOSEjJCUmJyorLz0/Xl9ge3x9fi1dKyg/OlwuW2EtejAtOSEjJCUmJyorLz0/Xl9ge3x9fi1dKykqfCIoPzpbXHgwMS1ceDA4XHgwYlx4MGNceDBlLVx4MWZceDIxXHgyMy1ceDViXHg1ZC1ceDdmXXxcXFtceDAxLVx4MDlceDBiXHgwY1x4MGUtXHg3Zl0pKiIpQCg/ Oig/OlthLXowLTldKD86W2EtejAtOS1dKlthLXowLTldKT9cLikrW2EtejAtOV0oPzpbYS16MC05LV0qW2EtejAtOV0pP3xcWyg/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcLil7M30oPzoyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT98W2EtejAtOS1dKlthLXowLTldOig/OltceDAxLVx4MDhceDBiXHgwY1x4MGUtXHgxZlx4MjEtXHg1YVx4NTMtXHg3Zl18XFxbXHgwMS1ceDA5XHgwYlx4MGNceDBlLVx4N2ZdKSspXF0p'));
<script type="text/javascript"> window.addEvent('domready', function(){ var inp_country = $('inp_country'); var completer1 = new Autocompleter.Local(inp_country, countries, { 'delay': 100, 'filterTokens': function() { var regex = new RegExp('^' + this.queryValue.escapeRegExp(), 'i'); return this.tokens.filter(function(token){ return regex.test(token); }); }, 'injectChoice': function(choice) { var el = new Element('li').setHTML(this.markQueryValue(choice)); el.inputValue = choice; this.addChoiceEvents(el).injectInside(this.choices); } });
var inp_city = $('inp_city'); var completer2 = new Autocompleter.Local(inp_city, cities, { 'delay': 100, 'filterTokens': function() { var regex = new RegExp('^' + this.queryValue.escapeRegExp(), 'i'); return this.tokens.filter(function(token){ return regex.test(token); }); }, 'injectChoice': function(choice) { var el = new Element('li').setHTML(this.markQueryValue(choice)); el.inputValue = choice; this.addChoiceEvents(el).injectInside(this.choices); } });
// Перехватываем submit формы для ajax запроса $('form_reg').addEvent('submit', function(e) { // Отсанавливаем другие event'ы, чтобы запретить сабмит без ajax new Event(e).stop();
покажите что напишет. Если непойдёт, закомментируйте mysql_query($res) or die(mysql_error()); на 91 строке и напишите ниже echo $res; PS. Не люблю копаться в чужих скриптах. топ браузерных игр
Сообщение отредактировал a112 - Пятница, 29 Июля 2011, 00:37
Создайте бд, залейте дамп sql в неё и пропишите её название сюда $mysqlbase = ""; Ну и проверьте логин-пароль от мускуля. В денвере по дефолту логин root стоит по моему. Вы нового юзера создали? Судя по ошибке, вы вообще без логина и пароль подключаетесь:) топ браузерных игр
насчет безопасности тут было 4 страницы ... безопасность я не объясняю (мало и без углублений) а так $name = mysql_real_escape_string ($_POST["$me"]); $name = strip_tags($name); $name = htmlspecialchars($name); $name= stripslashes($name); $name = addslashes($name);
- 90% гарантии обезопасить от инекций smile
Добавлено (18.07.2011, 09:49) --------------------------------------------- или проще можно сделать и избавить себя от 6 строк happy а использовать:
А, ну тоесть вам не нужно часто(каждые несколько секунд) соединяться с базой и проверять не настало ли время выдать голд? Если раз в несколько минут нормально, тогда пишите пхп скрипт и ставьте его на корн. Там тоже ничего сложного выборка, сравнение и апдейт(если нужно). топ браузерных игр
А если вам нужно каждые 2 секунды обновлять 1000 значений? А если в нескольких таблицах? 1. Соединение с бд 2. Запрос-выборка 3. Получение значений 4. Обработка их ПХП 5. Запрос-апдейт Запрос приходящий от пхп, мускуль не сразу обрабатывает, а сначала анализирует, а это тоже время. То есть каждые 2 секунды обновлять много значений корном через пых - не реально. Хотя конечно реально, но не рационально:) пых рано или поздно положит базу+будут задержки.
Quote (wInDx)
Нужно что б как нить автоматом без обращения к файлам(тоесть переходам на них в браузере) обновлялось значение, вот к примеру:ранее когда то занеслось в базу значение золото=100 время=123546225 и что б опять таки без обращения к файлу выполнялся код если время в базе равно время сейчас игроку давалось ето кол во золота и ето поле в базе удалялось:)))Вот как то так:
С временем чёт не понял. Промежутки времени одинаковые или разные? Типа 1 раз в минуту прибавлять по 50 золота игроку(кам)? топ браузерных игр
Сообщение отредактировал a112 - Воскресенье, 17 Июля 2011, 23:09
не буду зарекаться но помоему то о чем вы говорите сказка) , как изобретут напишите мне:)
Изобрели года 2-3 назад наверное. Когда мускуль 5 появился. Там 3 строки SQL "кода" wInDx, давайте название таблицы и полей с максимальным количеством и текущим количеством хп - напишу запрос.
Quote (webstrict666)
как изобретут напишите мне:)
http://www.opennet.ru/docs/RUS/mysqlpro/ - читайте. Там много чего интересного есть, о чём вы даже не подозреваете:) топ браузерных игр
Сообщение отредактировал a112 - Воскресенье, 17 Июля 2011, 23:12
В MySQL есть гора и малнькая тележка ф-ий:) Вот так с лёту не подскажу как называется, но подобная точно есть. Создаёшь к примеру колонки hpMax и hp. Ф-ия будет увеличивать значение hp с заданной периодичностью на заданное кол-во пунктов, покуда значение в колонке hp не станет равно значению в колонке hpMax. Можно и на пхп+corn написать, но: 1. В бд работать будет быстрее 2. нагрузка на сервер ниже В общем буду дома, гляну в книжке, если не забуду:)
Добавлено (16.07.2011, 19:12) --------------------------------------------- Или может тут есть архитектерщики БД Mysql - пусть подскажут топ браузерных игр
Сообщение отредактировал a112 - Суббота, 16 Июля 2011, 19:13
С нуля писать смысла кагбе нет:) Зачем придумывать велосипед:) Наберите в поисковике "php скрипт форума", выберите какой вам хочется, или посмотрите тут. Далее допилите под вашу БД и всё:) топ браузерных игр
Сообщение отредактировал a112 - Пятница, 17 Июня 2011, 18:20
Домен org.ua - бесплатный Регистрируется в течении 5-и минут. Но есть одно НО! Хостинг, к которому будет прикреплятся домен, должен быть территориально размещён в Украине и иметь украинский IP адрес. На не украинский IP домен просто не прицепится. топ браузерных игр
Подзреваю что там те же яйца, только с php 4.* переписаны под php 5.*
Добавлено (17.06.2011, 13:07) --------------------------------------------- У меня валяются классные курсы по php. Найду откуда скачал - кину ссылку. Раз в 500 полезнее этих уроков будут(да и стоят раз в 10 больше):)
Добавлено (17.06.2011, 13:14) --------------------------------------------- vovnet, отправил вам в ЛС ссылки на курсы