dポイントプレゼントキャンペーン実施中!

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');
}
?>

A 回答 (1件)

順番待ちがカウントアップされてゆきますので、ブラウザをリロードすればするほど順番待ちが増えていきますよ



あなたのプログラムだと_SESSIONに保存された$_SESSION["visited"]が何人目かを知ることになりますよね

あなたのロジックだとそのサイトにアクセスした人全員に
「あなたは1人目の処理待ちユーザです」
って表示されてしまします
しかもリロードすればするほど
2人目、3人目・・・ と増えてゆき、いつまでたってもDLできません
_SESSIONは多人数単位でのセッションではなく、個人ごとのセッションです


こういった処理の場合は、DBを使ってタスクマネージメントをしなくてはなりません
アクセスしてきた順に順番リストをためてゆき、cronやら、DBのイベントスケジューラー やトリガを利用して処理していくことになります
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!