- 締切済み
セッション管理
file1.html内でアップロードされた画像をabc.phpに送り、 そのabc.php内でfile1.htmlでアップロードされた画像の編集処理を行う プログラムを組みました。 編集処理には1分かかります。 ユーザAの画像を編集処理中の 編集処理時間1分間の間にユーザB、ユーザCがfile1.htmlでファイルをアップロードしabc.phpに処理を求めてきた時、 ユーザB、ユーザCのブラウザに対し 「あなたは1人目の処理待ちユーザです」 「あなたは2人目の処理待ちユーザです」 といったような順番待ち表示をセッション管理を応用して表示させたいです 。 下のセッション管理プログラムを応用して順番待ち表示を行なう事はできないでしょうか? 編集処理のプログラムは組めています。 <?php session_start(); if (!isset($_SESSION["visited"])){ print('0'); $_SESSION["visited"] = 1; $_SESSION["date"] = date('c'); }else{ $visited = $_SESSION["visited"]; $visited++; print($_SESSION["visited"]); $_SESSION["visited"] = $visited; $_SESSION["date"] = date('c'); } ?>
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- inu2
- ベストアンサー率33% (1229/3720)
順番待ちがカウントアップされてゆきますので、ブラウザをリロードすればするほど順番待ちが増えていきますよ あなたのプログラムだと_SESSIONに保存された$_SESSION["visited"]が何人目かを知ることになりますよね あなたのロジックだとそのサイトにアクセスした人全員に 「あなたは1人目の処理待ちユーザです」 って表示されてしまします しかもリロードすればするほど 2人目、3人目・・・ と増えてゆき、いつまでたってもDLできません _SESSIONは多人数単位でのセッションではなく、個人ごとのセッションです こういった処理の場合は、DBを使ってタスクマネージメントをしなくてはなりません アクセスしてきた順に順番リストをためてゆき、cronやら、DBのイベントスケジューラー やトリガを利用して処理していくことになります