Пятница, 19 Апреля 2024, 07:06

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Записи участника » guerrero [5]
Результаты поиска
guerreroДата: Четверг, 11 Августа 2011, 14:43 | Сообщение # 1 | Тема: Ребятки помогите с поиском нормального исходника браузерки
был не раз
Сейчас нет на сайте
alexander,
Учитесь читать сообщения, которые выдает интерпретатор.
Функция session_is_registered с версии php5.3x считается устаревшей, вместо нее следует использовать:
isset ($_SESSION['var']);

т.е. код должен выглядеть так:
Code
if (!isset( $_SESSION['ProverkaOK'] )) { LogError('Потеря переменной сессии', $_SERVER['PHP_SELF'], '1'); header("Location: ".$GLOBALS['domen']); exit;}

Дальше - аналогично.
guerreroДата: Среда, 10 Августа 2011, 17:11 | Сообщение # 2 | Тема: Безопасность - важные моменты.
был не раз
Сейчас нет на сайте
Quote (anton-gar)
Сессиями или "кукисами".

Я так понимаю, что ТС нужно передавать данные от пользователя к скрипту, каким образом это будет происходить через сессии?

Переменную от браузера скрипту можно передать только через POST/GET или cookies. Cookies также легко подделать(в Опере: Инструменты=> Управление cookies). Так стоит ли заморачиваться над этим?!

Также стоит задуматься над ограничениями кукисов:
1) Они являются частью http-заголовка, т.е. каждый раз, при обращении к любому скрипту, эти кукисы отправляются на сервер.
2) Ограничен размер данных кукисов - 4096 символов (это включая знак равенства и имя самой куки)

Пруф-линки не привожу, они легко гуглятся.
guerreroДата: Среда, 10 Августа 2011, 15:51 | Сообщение # 3 | Тема: Безопасность - важные моменты.
был не раз
Сейчас нет на сайте
Quote
- основное требование к передаче переменных из скрипта в скрипт - передавать их через сессию или методом POST имхо как мы поняли GET ломается очень легко


Передача данных методом POST ломается точно также, как и GET. Основная защита от взлома, не доверять данным, полученным от пользователя. Например, если игрок находится в точке X,Y, а отправляет данные на перемещение в точку X2,Y2, то программист должен проверить, может ли игрок переместится в эту точку (эта точка соседняя, она проходима и не занята другим игроком), если такое перемещение возможно, надо сохранить новые координаты игрока(X2,Y2), если нет - координаты игрока не изменяются. Точно также надо поступать с остальными данными.

Quote
- устанавливать везде защиту от SQL/PHP-иньекций.

Это обязательно:)
Если данные, получаемые от пользователя должны быть числом, следует их обрабатывать как
Code
$var = intval($_GET['var']);

либо, если число вещественное:
Code
$var = floatval($_GET['var']);

Если же получаемые данные другие, следует их обрабатывать функцией mysql_real_escape_string и только потом подставлять в mysql запрос.

Quote
- Обрабатывать тексты вводимые пользователем HTMLSPECIALCHARS чтобы написанные скрипты не включались в работу а просто выводились текстом.

Да, это поможет избавиться от межсайтого скриптинга, но эту функцию надо использовать с умом.

Также следует уделить особое внимание загрузке пользовательских файлов, например, аватарок. Перед сохранением файла следует проверять его расширение, MIME-заголовок, и через .htaccess запретить выполнение любых скриптов в директории, где будут храниться эти файлы.

Также советую установить следующие параметры php:
1) register_globals = Off
2) magic_quotes_gpc = Off
Эти директивы в php5.3.x считаются устаревшими, а в php6 вообще будут удалены:)
guerreroДата: Пятница, 05 Августа 2011, 09:25 | Сообщение # 4 | Тема: Как создать такое игровое поле?
был не раз
Сейчас нет на сайте
У вас совершенно не рабочий код!
Вы тянете из базы помимо аватарки, еще и кординаты игрока, но непонятно как их используете.

Я так понимаю, что вам нужно все данные о персонаже передать в js?
Я бы сделал следующим образом:
1) Вместо массива использовал хеш;
2) Структура хеша следующего типа:
var users_avas = {'user_id': { 'ava':'sprtire.gif', 'sector_x':'0', 'sector_y':'0'}}
Тогда при обращении по users_avas['user_id']['ava'] получим аву игрок, естественно, вместо user_id должно быть числовое представление id игрока.

Собственно код:
Code

<?php
$arr_buffer = array();
$buffer = '';

define('TABLES_USERS','users');

$db_id = @mysql_connect('localhost', 'root', '');
@mysql_select_db('test2', $db_id);

//Выбираем игроков, которые на этой карте, их координаты и авы    
$query = "SELECT u.id_user, u.user_sector_x, u.user_sector_y,
        av.vid    
      FROM ".TABLES_USERS." AS u, avatar AS av
      WHERE u.map_user='map1' AND av.id_ava=u.id_user";    
         
$res = mysql_query( $query );

while ($row = mysql_fetch_object( $res ) ){
    $arr_buffer[] = "
    '{$row->id_user}' :    
     {
     'ava':'{$row->vid}',
     'sector_x':'{$row->user_sector_x}',
     'sector_y':'{$row->user_sector_y}'
     }";
    }

$buffer = implode(',', $arr_buffer);
       
echo '
<script type="text/javascript">
var users_avas = {'.$buffer.'};
var buff = "";
       
//перебираем хеш и выводим данные
for(var k in users_avas){
    buff += "<p>user_id - " + k + "<br />";
    buff += "ava - " + users_avas[k][\'ava\'] + "<br />";
    buff += "sector_x - " + users_avas[k][\'sector_x\'] + "<br />";
    buff += "sector_y - " + users_avas[k][\'sector_y\'] + "<br />";
    buff += "</p>";
}

document.write(buff);    
</script>
';
?>


Результат работы скрипта:


Сообщение отредактировал guerrero - Пятница, 05 Августа 2011, 09:32
guerreroДата: Четверг, 04 Августа 2011, 13:38 | Сообщение # 5 | Тема: Пара вопросов о создании
был не раз
Сейчас нет на сайте
1) Советую начать со следующих книг:
а) Самоучитель PHP 5. Авторы: Максим Кузнецов, Игорь Симдянов.
б) Самоучитель MySQL 5. Авторы: Максим Кузнецов, Игорь Симдянов
Также, на форуме этих авторов Вы всегда сможете получить помощь в изучении php/mysql.

Лучше, конечно, начать изучать php5. Хотя бы по той причине, что на большинстве хостингах сейчас стоят php 5.2.x.
А отличий php5 от php4 не так уж много и если изучите php5, смело сможете говорить, что знаете php4 smile

2) Возможностей php хватит для создания ККИ игр (сам когда-то делал упрощенный вариант klanZ, но у заказчика начались проблемы с финансами и проект пришлось свернуть). Как заметил Assasin, совместно с php желательно использовать хотя бы javascript. Игра будет выглядеть более красиво, современно и, главное, пользовательский интерфейс будет удобнее для игроков.

Если идея не секретная, можем попробовать обсудить ее в icq или лс. Может смогу помочь в проектировании игры:)

3) Если честно, не задавался таким вопросом:) Попробуйте поискать исходники на сайте sourceforge.net. Возможные запросы для поиска: ccg php, card game php и т.п.
Форум игроделов » Записи участника » guerrero [5]
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг