2011-09-05 13 views
0

私の最初の質問stackoverflow!便利な情報をたくさん読んだことがありますが、以下の質問に対する有益な答えを見つけることができませんでした。PHPブラックジャックゲーム;更新表示

OO PHPの学習経験として、PHPでブラックジャックゲームを作成しました。私はすべてのカードの詳細とゲームの状態を含む1つの主要なオブジェクトを持っています。私はこれをシリアル化してファイルに保存しますが、同時に複数の人が同時にプレイしているときに競合が発生します。私はセッションを調べ、そこにこのデータを保存しましたが、特別なセッションIDなどを生成する必要があるかどうか疑問に思っています。どうすればいいですか?前もって感謝します。

+0

からのデータにアクセスしようとしているされたときに誰が誰だか知っているするには?ブラウザで新しいタブを開いて同じサイトに接続しましたか?あるいは、別のコンピュータの2人がゲームをしましたか? – user482594

+0

このマニュアルでは、セッションの使い方について[いくつかの例](http://www.php.net/manual/en/session.examples.php)を提供しています。私はそれらの例の一つから始め、必要に応じて展開します。 –

答えて

0

私はこの問題についてデータベースを使用しています。ゲームのすべてのプレイヤーが同じデータを持つ必要があるため、セッションを使用してゲームの状態を保存しないでください。したがって、すべてのプレーヤーのデータを複製して、他のプレイヤーのセッションに保存する必要があります。

使用セッションが認証し、あなたがゲームをプレイする人々の多数をテストしましたか、データベース

+0

@ user482594:サーバーに接続すると、各ブラウザにセッションIDで追跡できる一意のIDを与えると仮定して、2つのブラウザを開いてテストしました。私は、接続された各ユーザーについて保存されたセッションデータに固有のセッションIDを結びつける方法があることを期待していました。しかし、私はそうは思わない! – TeeHays

+0

私は、セッションがログインしている各ユーザーごとに固有の情報を記録していると考えていました。セッション名としてsession_idを使用するのは当然です。すなわち 'code' $ mySession_id = session_id(); $ mySaveState = serialize($ this-> card_pack); $ _SESSION ['$ mySession_id'] = $ mySaveState; これは、自分のcard_packオブジェクトのデータを、この特定のユーザーのセッションID名の下に保存する必要があります。それとも、セッションの仕組みを誤解していますか? 乾杯 – TeeHays

関連する問題