отправить переменные PHP с JavaScript (ссылка?) - PullRequest
0 голосов
/ 06 апреля 2009

Я создаю браузерную игру и в данный момент разрабатываю скрипт, который обновляет положение моего персонажа, когда он / она нажимает на другую часть карты.

Я использую для этого немного ajax, который отправляет запрос в php-файл с именем position_update.php. Но чтобы это работало, мне нужно отправить два значения вместе с ним, чтобы он знал, какова новая позиция, как мне это сделать? Ниже моя ссылка, которая отправляет запрос в php файл.

<a onClick="positionUpdate();"><img src="images/transparent.gif" border="0" /></a>

В качестве примечания я использую суперглобальный php $ _GET для извлечения значений при их отправке.

Спасибо, Станни

Ответы [ 3 ]

5 голосов
/ 06 апреля 2009

Вам нужно нажать на URL:

position_update.php?var1=val1&var2=val2

PHP проанализирует полученную строку в $ _GET

1 голос
/ 06 апреля 2009

Кстати, вы должны убедиться в том, что оно изящно ухудшается, имея эквивалентное значение href, которое работает для пользователей, не являющихся js.

0 голосов
/ 06 апреля 2009

Если вам нужно закодировать строку URL, используйте функцию javascript encodeURL () :

sUrl = encodeURL("position_update.php?dir="+sDir+"&dist="+sDist);

И помните, что в архитектуре клиент-сервер не следует слишком доверять клиенту. Вся логика приложения, которая управляет игровой механикой и применением правил, должна содержаться в серверном компоненте.

Несколько лет назад существовала действительно популярная игра под названием TetriNET (многопользовательская онлайн-игра Tetris), которая была разработана без учета этих соображений безопасности. Мне потребовалось около 3 дней, чтобы взломать протокол связи и в основном рисовать на экранах других игроков, используя серверные команды для создания / очистки блоков. Это сделало читерство очень простым, используя простой прокси.

Так что не позволяйте клиенту 'сообщить' серверу , где находится игрок. Используйте клиент только для отображения интерфейса, сбора ввода и отображения вывода. Поэтому пусть клиент сообщает серверу, куда игрок «хочет» двигаться (направление, расстояние и т. Д.), А затем сервер вычисляет позицию игрока на основе того, что движется игроку по закону разрешено занимать и свою прежнюю позицию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...