ホームページ >バックエンド開発 >PHPチュートリアル >Flash と PHP の対話でセッションを同期する

Flash と PHP の対話でセッションを同期する

WBOY
WBOYオリジナル
2016-06-20 13:01:241120ブラウズ

Flash と PHP 間の対話におけるセッションの同期

今日、Uploadify と thinkphp を使用して複数のファイルをアップロードするときに問題が発生しました。アップロードされたファイルを選択して自動的にアップロードした後、「http 301」または「http 302」リダイレクトを促す警告ウィンドウがポップアップ表示されました。その後、Flash プラグインを介して開始されたリクエストは別のクライアントによって開始され、ブラウザ セッションと矛盾しており、サーバーのバックエンド コードにたまたまログイン認証があったことがわかりました。これには、URL またはポストを通じて現在の session_id を php に渡す必要があります。

最初は、session_destory()、session_id($_REQUEST['session_id'])、session_start を通じて、session_id を query_string として php に渡すことを想像しました (つまり、$_GET['session_id'] または $_POST['session_id'])。 () 一連の関数は、ブラウザとの一貫性を保つために Flash セッションを同期します。技術グループの専門家は、php.ini の session.name がパラメータとして渡されている限り、PHP がそれを自動的に処理することを思い出させました。つまり、$_GET、$_POST、または $_COOKIE 配列に「PHPSESSID=現在のセッションの ID」がある場合、PHP は自動的にセッション転送を処理して実装できます。以上:

$("#uploadify").uploadify({
    'uploader'       : '/xxx/xxx/uploadify.swf',
    'script'         : '/xxx/xxx/xxx.php',
    'scriptData'     : {'PHPSESSID' : '<?= session_id() ?>'},
    ....

または:

$("#uploadify").uploadify({
    'uploader'       : '/xxx/xxx/uploadify.swf',
    'script'         : '/xxx/xxx/xxx.php?PHPSESSID=<?= session_id() ?>',
    ...

でも、Flash Cookie をクリアする方法を誰か教えてくれませんか? 。このため、デバッグプロセスは常に困難でした。ははは。 。バカすぎる

これは今日解決された問題です (笑)。しかし、フラッシュでは PHPSESSID パラメータのみが渡され、値は空のままにできることがわかりました...


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。