2017-09-16 10 views
-3

私は2ページのPHPコードを持っています。セッション変数が時間内にロードされない

Page 1:変数入力を複数の配列にロードし、次にこれらの配列を使用して作成したいくつかのSESSION変数にロードできます。

ページ2:すべてのSESSION変数を使用し、「imagecreate」を使用するpngを作成して表示します。

pgnが作成される前にページ2がすべてのSESSION変数をロードするとは限りません。不正な形式のイメージが表示されることがあります。

、すべてのセッション変数が最終的にすべてのセッション変数がロードされた後まで、PNGの生成を遅延させることができる2ページ

に渡されているか、別の解決策があることを確認し、正しいイメージを作成し、2ページを更新?

+1

pgnとは何ですか? ...あなたはPNGを意味しますか?また、2つのスクリプトのコードを見てセッション処理を確認すると非常に便利です。 –

+0

オジーは "pgn"ではなくpngイメージファイルを意味すると思います。そして、すべてのそれらの有権者は、彼/彼女の最初の投稿、オジーを休憩与える。少なくともあなたがそれを改善するために投票した理由についてコメントしてください。 –

+0

PHPセッションでは並行性がないことが保証されているため、ページ1がページ2よりも前に読み込まれると、データがそこに格納されます。しかし、両方のページを同時に呼び出すと、どちらが最初に読み込まれるかの保証はありません。問題はセッションではなく、単に物事が順番に読み込まれていることを確認していないということです。 – Havenard

答えて

1

あなたは、これらのアレイを使用して作成されたいくつかのセッション変数にその後、複数のアレイにあなたの質問の状態などのデータを

変数の入力をセッション変数を使用してはいけません。

セッション記憶域にユーザーごとに大きなデータを格納すると、トラフィックが増えてディスク容量が不足します。

SESSIONの代わりに、必要に応じてユーザーのブラウザのlocalStorageを使用すると、ディスクの容量がより高速になり、負荷が軽減されます。

+0

私はSESSION変数を使うべきではないと思っていますが、ページ2で正しく読み込まれていない理由について興味がありますか?上で述べたように、Ozzieのコードが役に立ちます。 –

+1

サーバーの処理が完了する前にページがレンダリングされるにつれて、処理時間が長くなるほどサーバーが処理する時間が長くなり、応答が遅くなり、いくつかの項目が未処理になります –

0

返信いただきありがとうございます。 問題はSESSION変数をロードしていないため、新しく作成されたイメージではなくキャッシュされたイメージがロードされていました。 イメージ名にタイムスタンプを含めましたが、これで問題は解決しました。 、すなわち、$ plan [time()] = imagecreatetruecolor(1000、1000);

関連する問題