2016-11-08 13 views
-1

現在、私のゲームのBanlistに取り組んでいますが、現在機能していますが、投稿を使用する方法があるかどうかを知りたいとします。例:http://example.com/banlist?newentry=SAVETHIS 新しいケースに保存switch文でPHP新しい記事をスイッチ文に保存する

基本的に、新品の後に「SAVETHIS」を新しいケースに保管したいと思います。

ここに私が何を意味するのか理解するのに役立つイメージがあります。 enter image description here

+2

それで 'newentry'がロードされたら、その値をファイルに保存しますか?これは、DBの方が良いと思われるようです。また、禁止された数字の配列と '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'); 
    } 
} 

好ましく、コードとしてこれを参照してください。データベースを使用し、それがNO SECURITYチェックを持っているとして、いくつかの種類のログイン壁の後ろにこのコードを配置することです。

このスクリプトの場所を知っていれば、ループを作成してすべてのユーザーを0〜MAX_INTの範囲で禁止することができます。また、ユーザーが既に禁止されているかどうかをチェックしないので、単純なスクリプトを無限にループすることでハードドライブをいっぱいにすることができます。 Noorは潜在的なXXS攻撃をチェックします。

関連する問題