2016-11-08 3 views
-1

В настоящее время я работаю над Banlist для своей игры, и в настоящее время он работает, но я хочу знать, есть ли способ использовать пост ex: http://example.com/banlist?newentry=SAVETHIS и сохранить в новом случае в инструкции переключателя.PHP Сохранить новый элемент в инструкции Switch

В принципе, я хочу сохранить «SAVETHIS» после новенького в совершенно новый корпус.

Вот изображение, которое поможет вам понять, что я имею в виду. enter image description here

+2

Итак, когда загружается 'newentry', вы хотите сохранить его значение в своем файле? Это похоже на то, что БД будет лучше. Вы также можете использовать массив запрещенных номеров, а затем 'in_array'. – chris85

+0

Код должен быть статическим, неизменным. * Данные * меняются. Данные хранятся в базе данных или другом отдельном хранилище. Данные не являются кодом. – deceze

ответ

1

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

if(isset($_GET['newentry'])){ 
    if(file_put_contents('./banlist.txt', $_GET['newentry'] . PHP_EOL, FILE_APPEND) === false){ 
     die('no perms, cant create file in '.getcwd()); 
    } else { 
    die('user banned'); 
    } 
} elseif(isset($_GET['id'])){ 
    if(in_array($_GET['id'], explode(PHP_EOL, file_get_contents('./banlist.txt')))){ 
    die('user is banned'); 
    } 
} 

Смотрите это как Пример код, предпочтительный является использование базы данных и поместить этот код за вход стены некоторых видов, как это имеет НЕТ БЕЗОПАСНОСТЬ проверки.

В текущем состоянии, если я знаю местоположение этого скрипта, я могу просто создать цикл и запретить каждому пользователю в диапазоне от 0 до MAX_INT. Кроме того, он не проверяет, запрещен ли пользователь, поэтому я могу заполнить ваш жесткий диск, запустив простой скрипт на бесконечность. Noor проверяет потенциальные атаки XXS.

Смежные вопросы