2013-11-24 83 views
2

我已經媒體網站一旦成員登錄查看兩頁成功它創建會話如何防止在同一時間

$_SESSION['login_id'] = $username; 

不知如何防止成員觀看同一時間兩個通道。

我的意思是,例如,如果會員正在查看頁面video.php?id=4並在新標籤頁video.php?id=5中打開,則表明他錯誤必須在查看新頁面之前關閉video.php?id=4的頁面。

進入我腦海的第一件事是隨機token key清除頁面退出,但我不知道它是否好主意或沒有人知道如何做或有更好的主意! 〜感謝

+0

你如何爲你的視頻提供服務?直接流媒體還是你用PHP控制流? –

回答

2

起初以爲

你可以使用請求到PHP腳本,告訴你,如果用戶仍然打開一個網頁。

對於您可以使用超時Ajax請求(使用jQuery例如)

提示的循環:

而是提出請求你可以嘗試加載微小圖像(1px的H/W)和當然加載這個圖像使用PHP腳本(你可以欺騙網址使用htaccess), 因此,當圖像被請求,你的PHP腳本將做的伎倆(設置當前觀看的視頻),然後服務圖像(不要忘記設置適當的內容類型)

並繼續加載圖像在一定的inter VAL(你需要生成URL標記來避免緩存;))


第二種解決方案是

使用PHP腳本作爲代理,這樣就可以知道服務您的視頻時,視頻已如果用戶請求第二個視頻,知道他仍然在流式播放前一個視頻,您拒絕他的請求,向他展示適當的消息或做你喜歡的:)

我想,使用2nd解決方案對你和訪問者來說會更好,因爲他可以開始緩存2n d視頻一旦一日一已經完全緩存

1解決方案將使用許多的要求,可以淹沒網絡或兩個客戶端和服務器端


這兩種解決方案不會跟蹤用戶是使用多個瀏覽器,這意味着他將有多個會話,除非用戶註冊並登錄

1
if ($_SESSION['login_id'] = $username && COUNT($_GET['id'])>1) 

現在你檢查此條件後,我不知道你能做到防止打開2個標籤用戶..

1

只是我的想法

由於video has to stream, it pings the serversession可以分配給它,點擊最後一個視頻。那麼一旦新的視頻被點擊,the session on the server will use the new video id一旦第一視頻坪服務器,並找出會議指出,在不同的頁面,那麼視頻可以返回一個錯誤消息

或者,你可以指定一個IDforma hidden field with an ID的每個instance,然後使用AJAX來使用該ID來ping服務器。如果用戶在存在活動ID時嘗試請求相同的表單,則應顯示錯誤消息。