многопользовательские игры с пустым именем php? - PullRequest
0 голосов
/ 27 мая 2020

Haii

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

Например, как в игре skribbl.io, которая при нажатии «Создать личную комнату», создайте случайную ссылку, чтобы ваши друзья могли присоединиться к вам:

skribbl.io/?random_string
like skribbl.io/?h4fwY8Ef

Итак, для меня похоже, что у них есть файл php без имени, для которого они предоставляют случайную строку в качестве параметра. Но я не мог создать файл без имени php.

Вместо этого я решил, что каждый раз, когда пользователь нажимает «Создать частное совпадение» для моей игры, сценарий php будет копировать уже существующие сценарии php, содержащие серверную часть, работают, но назовите его как random_string. php как y4aHr329sJ.php, чтобы игроки писали в URL-адресе: mygame.com/y4aHr329sJ (без. php из-за apache. htaccess rule)

Но недостатком является то, что для каждого человека, который хочет «создать отдельную комнату», у меня будет больше ненужных файлов, которые будут дублироваться на сервере.

Даже подумал, что у меня есть скрипт, который удаляет все просроченные файлы random_string. php после истечения срока игры (в каждом начале дня скрипт запускается и удаляет файлы 1-дневной давности)

Я все еще думаю, что это вроде контрпродуктивно .

Кстати, я знаю, что делаю что-то вроде mygame.com/join?random_string, но мне это не особенно нравится.

Также я не поклонник apache .htaccess mygame.com/random_string в mygame.com/join?random_string автоматически, потому что некоторым игрокам нравится копировать ссылку из адресной строки, а не из поля «поделиться ссылкой».

Плюс я бы предпочел, если есть решение без вопросительного знака, которое skribbl.io использует в skribbl.io/*?*random_string .

Ваша помощь много значит. Заранее спасибо !!

1 Ответ

1 голос
/ 27 мая 2020

На самом деле у вас есть файл index. php в папке root, но apache можно настроить, чтобы скрыть его из URL-адреса.

Вы можете сделать это, поместив эту конфигурацию ( в .htaccess в root проекта или в конфигурации vhost)

И вам нужно включить mod_rewrite.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

Если вы хотите сохранить index. html вам может потребоваться создать путь, например: /rooms/random-room-name, и обработать комнату как:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/rooms/(.*)$ /index.php?room=$1 [L]
...