2009-07-24 15 views
1

私のサイトには、ユーザーがログインしてWindows Mediaストリーミングコンテンツを見ることができるメンバー専用エリアがあります。PHPでASXファイルを保護する

私はASXファイルを提供するためにPHPスクリプトを作成しましたが、これをセッション情報で検証することはできません。私はこれがWMPがPHPページではなく要求を出しているからだと思います。

誰もがASXファイルを保護するためのエレガントな方法を提案できますか?

答えて

0

は.ASX要求にPHPのセッションIDを組み込むです。通常、この識別子はクッキーに格納され、各ページリクエストでPHPに渡されます。この場合、WMPはクッキーを送信していないので、要求が認証されているかどうかを知る方法がありません。あなたがdownload_asx_file.phpの上部にsession_start()を呼び出すとき

$download_link = "http://myserver.com/download_asx_file.php?" 
$download_link .= "f=$file_id&"; 
$download_link .= htmlspecialchars(SID); 

今、それは正しくセッションを見つけ、ロードする必要があります:あなたの出力ダウンロードASXファイルのリンク、GET変数としてセッション識別子のタックが

、通常どおりに認証することができます。

:SID定数をPHPSESSID=12345678に評価さ(またはそのユーザーのセッションがあることを起こるものは何でも)され

0

あなたがこの試すことができます:私はどうなるのか

//$user->isAuthenticated is only for ilustration, use whatever method you 
//use to check if the user is authenticated 
if($user->isAuthenticated()) { 
     $asx = file_get_contents("/path/to/my/file.asx"); 
     header("Content-type: video/x-ms-asf"); 
     echo $asx; 
} else { 
     //Tell the user that he can't view this asx 
}