• ベストアンサー

CGIゲームのデータ管理について

現在、簡単なCGIのブラウザゲームを作成しているのですが、 全プレイヤーのデータを保存しているファイルが 1つのため、一気にアクセスされると とても不安になります。 (一応ロック処理は行っています) データを保存するファイルを分けても良いのですが、 それでも数名が同時にアクセスしたら どうなるのかわからないので不安です。 大規模なCGIのブラウザゲームのデータ管理は 一体どのようにしているのでしょうか? Perl以外の言語を使っていたりするのでしょうか?

  • CGI
  • 回答数2
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 こちらのQAについても、恐らくデータベースを使用しています。 お使いの言語がPHPであれば、数行でデータベースに接続し、 情報を取得して、表示することが可能です。 ファイルにより保存するよりデータベースで保存した方が、 後々の開発でも楽になると思います。 (ファイルを読み込んで、だれそれの情報を書き換えて、上書き保存 というフローがあった場合、 データベースを使用すると だれそれの○○情報を上書きしますというSQL命令を投げれば一発で終わります。 使用するデータベースにもよりますが、排他処理も可能です。 ) ただ、サーバで使用できないのであれば無理ですが。 無料で使用できるということで PostgreSQL,mySQLこの辺を検索してみてください。

EnstenCoul
質問者

お礼

PHPだとデータベースに保存できるんですね! 助かりました。なんとか頑張ってみます。 回答ありがとうございました~!

その他の回答 (1)

noname#56568
noname#56568
回答No.1

もしデータベースを使用できるのであれば、データベースを使ってみてはいかがでしょうか? 保存用のファイルが排他処理しているからといって破損しない訳ではないので、ユーザーごとにファイルを作成させるようにした方が安全だと思います。 ファイルの中身はどのようなものか分かりませんが、個々に作成したからといって保存用のデータはそれほど容量はないでしょうし。

EnstenCoul
質問者

お礼

回答ありがとうございます。 データベースというのはつい先ほど調べてみたのですが、 WEB上(CGIプログラム上)からデータを読み書き出来るような事が書かれていませんでした。 CGIカテゴリで聞くのは間違っていると思うのですが、 データベースで作成したデータをWEB上やCGIプログラム中から読み書きすることは出来るものなのでしょうか? 少しやってみて、難しそうであれば プレイヤーデータを個々に作成してみようかと思います。

関連するQ&A

  • CGI

    webサーバーを立ち上げ、test.cgiをブラウザーからアクセスすると ファイルを保存しますか?開きますかと聞かれるのですが、なぜな んでしょうか?

  • CGIゲームの設置でエラーがでます

    オムニバスRPG"WIZARDLY" (Game - CGI/perl) http://bya.lib.net/src/ 上記のサイトで「オムニバスRPG"WIZARDLY"」をダウンロードしましたがサイトに書いてある通り「但し、動作無保証、サポート無し」でした。 CGI Error This program encountered an internal error. Error: Lock file open error 設置してゲームを始めようとしたら上記のエラーが出てしまっています(CGIの部分にアクセスすると上記のメッセージが出ました)。 これ以外の他のCGIはちゃんと動作しています(niftyサーバーです) 中身にも説明が無く、ネットで探しましたが解決方法が無かったので分かる方は教えて下さい。

    • ベストアンサー
    • CGI
  • CGIのデータ消失

    レンタルサーバーに、クイズを設置しています。 ここ半月ほど、問題なく動いていて、毎日のように訪問者がランキングされていて、盛況でしたが、突然問題が全部消去されていました。 自分は何の変更も更新もしていません。 クイズはHPからPWでアクセスでき、問題の追加や削除などが出来ます。もちろんPWや他のスクリプトなどは書き換えることはできません。 サーバーは特にCGIの設置場所はなく、自分のスペースの直下に置いています。 ファイル構成は、CGI, Perl とベース、ポイント、クイズデータファイルだけです。 ローカルのファイルは無事なので、サーバーに置いてあるファイルが不正アクセスされたんでしょうか? PWを解読されてしまったのでしょうか? 教えてください。

  • perl使用のCGIでのデータファイルの取り扱いについて

    こんにちは、 perlでCGIを動かしているんですが 掲示板やアクセスログなどのデータファイルの置き場所についてこまっています perlのopen関数などでファイルを開くことはできても、直接URLを指定すれば 見ることができてしまいまます。 内部の実行からは読み書きできて、直接URLを指定したら、アクセス拒否にする というパーミッションの設定or.htaccessなどの設定方法があれば教えてください。

    • ベストアンサー
    • CGI
  • cgi(perl)を実行のみしたい

    HTMLよりCGI(PERL)を起動し、ログファイルの読み書きを実行し、そのまま終了させることは出来ないでしょうか? CGIからデータを戻す必要は無く、ブラウザへの表示はHTMLファイルがそのまま表示される形で問題ありません。 宜しくお願いします。

  • cgiとplとpm

    掲示板ソースをダウンロードするとplやpmという拡張子のものがありました。中身はPerlでした。 拡張子の使い分けを教えてください。 適当に4つのルールを書いてみましたので、間違っていたり、追加するルールがありましたから教えてください。 1 ブラウザがそれ自身にアクセスし、ブラウザのアドレスバーに表示させるならcgiにするべき。 2 Perlのpackageの機能を使うなら、パッケージファイルはplかpmでなくてはならない。 3 Perlのrequireの機能を使うなら、その外部ファイルはplでなくてはいけない。 4 Perlのuseの機能を使うなら、その外部ファイルはpmでなくてはならない。

    • ベストアンサー
    • Perl
  • CGIを認識してくれなくなりました

    初めまして。cgi初心者です。 Windows2000+IIS(バージョン失念)+ActivePerl5.8.8でcgiを含むHPを作成しました。学内に閉じたNWで動かしています。 当初はなんの問題もなく動いていたのですが、先日久々に見てみるとcgiが動いていません(ソースがそのままブラウザ上に表示されます)。 ファイルが保存されているフォルダを見てみると.cgiファイルのアイコンがテキストになっていました。 IISのアプリケーションマッピングは.cgiで"C\***\perl.exe %s %s"になっています。 perlが壊れたのか?と思い、一度アンインストール→再インストールしてみたのですが、それでも駄目でした。 対処方法、そもそもこのようになった原因に思い当たることがありましたら教えていただけないでしょうか。

    • 締切済み
    • CGI
  • FlashよりLoadVarsクラスを使用し,CGIへデータを送信しようとしていますが…

    FlashよりLoadVarsクラスを使用し、CGIへデータを送信しようとしていますが・・・。 なかなか成功しません;; Flashのアクションスクリプト、およびCGI(Perlで)スクリプトをお教えいただけないでしょうか? -詳細- ボタンに LoadVars.send(); LoadVars.sendAndLoad(); などを使用し、Flash→CGIへ送信し、結果を表示したり、Flash→CGIへ送信し、CGIで送信した変数などを処理した後、Flashより変数を受信し、表示する。 -例- 1.Flashよりテキストフィールドに文字を入力し、CGIへ送信。 2.CGIにて受信後、受信した文字をopenで保存(.txtファイル作成) 3.先ほどCGIより保存したtxtファイルをFlashから読み込む。 -環境- 楽天さんのiswebライトでPerl言語を使い、Content-typeをHTMLでCGIを作成しております。 ご教授いただければ幸いです。 どうか、よろしくお願いいたしますm_ _m

    • ベストアンサー
    • Perl
  • 自前サーバでCGIを~

     まずはLAN内だけで掲示板などのCGIを実行できるようにしてみよう、ということでApacheを使ってCGIの設定をしているんですが、ブラウザからCGIファイルを起動してもInternal Server Errorと出てしまいます。よってそれ以前ということで・・・  コマンドラインから「perl test.cgi」のようにCGIファイルを実行してみるとちゃんと動作するんですが、「type -a perl」で検索したフルパスをそのままCGIファイルに「#!/usr/bin/perl」などのように書いても、ファイルがコマンド化されてくれません。でも、perlの実行ファイルは存在していました。  これは、どうすれば解決できるのでしょうか?

  • HTMLにCGIカウンターを

    初歩的なCGI(Perl)のアクセスカウンターの作り方を学びました。 今まではHTMLでHPを作成していました。そこでトップページにアクセスカウンターを付けたいのですが、当然のことながら今のトップページは「index.html」ファイルです。このファイルにCGIによるアクセスカウンターをつける場合、「index.html」のファイルを一から「index.cgi」ファイルにPerlで書き換えなければならないのでしょうか。今の「index.html」の一部分を書き換えるだけでCGIのアクセスカウンターが設置できないものでしょうか。

    • ベストアンサー
    • CGI

専門家に質問してみよう