alexander, Учитесь читать сообщения, которые выдает интерпретатор. Функция session_is_registered с версии php5.3x считается устаревшей, вместо нее следует использовать: isset ($_SESSION['var']);
Я так понимаю, что ТС нужно передавать данные от пользователя к скрипту, каким образом это будет происходить через сессии?
Переменную от браузера скрипту можно передать только через POST/GET или cookies. Cookies также легко подделать(в Опере: Инструменты=> Управление cookies). Так стоит ли заморачиваться над этим?!
Также стоит задуматься над ограничениями кукисов: 1) Они являются частью http-заголовка, т.е. каждый раз, при обращении к любому скрипту, эти кукисы отправляются на сервер. 2) Ограничен размер данных кукисов - 4096 символов (это включая знак равенства и имя самой куки)
- основное требование к передаче переменных из скрипта в скрипт - передавать их через сессию или методом 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 вообще будут удалены:)
У вас совершенно не рабочий код! Вы тянете из базы помимо аватарки, еще и кординаты игрока, но непонятно как их используете.
Я так понимаю, что вам нужно все данные о персонаже передать в 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 игрока.
//Выбираем игроков, которые на этой карте, их координаты и авы $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";
1) Советую начать со следующих книг: а) Самоучитель PHP 5. Авторы: Максим Кузнецов, Игорь Симдянов. б) Самоучитель MySQL 5. Авторы: Максим Кузнецов, Игорь Симдянов Также, на форуме этих авторов Вы всегда сможете получить помощь в изучении php/mysql.
Лучше, конечно, начать изучать php5. Хотя бы по той причине, что на большинстве хостингах сейчас стоят php 5.2.x. А отличий php5 от php4 не так уж много и если изучите php5, смело сможете говорить, что знаете php4
2) Возможностей php хватит для создания ККИ игр (сам когда-то делал упрощенный вариант klanZ, но у заказчика начались проблемы с финансами и проект пришлось свернуть). Как заметил Assasin, совместно с php желательно использовать хотя бы javascript. Игра будет выглядеть более красиво, современно и, главное, пользовательский интерфейс будет удобнее для игроков.
Если идея не секретная, можем попробовать обсудить ее в icq или лс. Может смогу помочь в проектировании игры:)
3) Если честно, не задавался таким вопросом:) Попробуйте поискать исходники на сайте sourceforge.net. Возможные запросы для поиска: ccg php, card game php и т.п.