Flash で実行される PHP スクリプトで Cookie を設定するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1145913

  •  16-09-2019
  •  | 
  •  

質問

プロセッサとして .php ファイルを使用するフラッシュ アップロード スクリプトがあります。PHP スクリプトで作成されたギャラリー ID を使用して Cookie を設定し、それを確認ページに渡すには、プロセッサ ファイルが必要です。Flash が php ファイルを実行する場合を除いて...Cookie は設定されません。セッション変数を設定しますが、これで十分でしたが、現在はサイト (確認ページを含む) に lighttpd を使用し、実際のアップローダー プロセッサ スクリプトに Apache (lighttps は大きなファイルのアップロードが苦手なため) に使用しているため、セッション変数は設定されません。 2 つのサーバー ソフトウェア間で転送されることはありません。

PHP プロセッサ (Apache 上で実行) から lighttpd を実行している確認ページに変数を転送するにはどうすればよいですか?

役に立ちましたか?

解決

ブラウザではなく Flash スクリプトによって呼び出されたため、Cookie は設定されず、Cookie はブラウザによって保存されると思います。

私が思いつく唯一の方法は、mysql データベースか、単にテキスト ファイルです。

他のヒント

おそらく Nico より効率的ではありませんが、あなたにとってはより適しているかもしれない 2 番目の解決策を考えました。Flash に送信される Cookie がブラウザにも送信されない場合は、Flash の ExternalInterface クラスを使用して、ブラウザに Cookie を設定する JavaScript 関数に Cookie の内容を渡すことができます。または、Cookie の内容を取得するために AJAX 呼び出しを行う JavaScript 関数を呼び出すこともできます。

同じことをしているかどうかはわかりませんが、フラッシュを介して実行されるPHPスクリプトからCookieを設定できないという同様の問題が発生しました。しかし、後で、引数が不足していたため失敗したことに気付きました。

flash.swf:
sendToURL('script.php?val=dataFromFlash');

script.php:
//setcookie('flashData', $_GET['val']); //this did not work
setcookie('flashData', $_GET['val'], '0', '/'); //this worked

PHP マニュアルには、name 引数のみが必要であると記載されていますが、これを機能させるには、expire 引数と date 引数を指定する必要がありました。おそらくこれは、ニコの回答が示すように、ブラウザ経由で送信されないためでしょうか?とにかく、これがお役に立てば幸いです。

ここでは、PHPスクリプトを使用してすべてのアップロード画像データをフレックスに保存するための最適なソリューションを見つけます

    $array                          =   array(); 
    $array["large_filename"]    =   $image_file_name; 
    $array["large_path"]        =   DIR_WS_IMAGES_TEMPIMAGES . $image_file_name;
    $setcookie              =   serialize($array); setcookie( "ImageCookie", 
    $setcookie, time()+(60*60*24*15) );
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top