2

$_SERVER['HTTP_USER_AGENT'] を使用して、Web サイトにファイルをアップロードするユーザーのブラウザと OS を MySQL テーブルに挿入しています。これは、HTML5 をサポートしていないブラウザー用のフラッシュ (uploadify) を使用するためのフォールバックです。Flash を使用すると、$_SERVER['HTTP_USER_AGENT'] を使用して OS とブラウザーが返されず、代わりに「Adobe Flash Player 11」が表示されます。

このチュートリアルからわかるように、アクション スクリプトをアップロードするフラッシュ ファイルに追加して、ブラウザーを返すことができます。ExternalInterface.call は、userAgent 変数に格納されている $_SERVER['HTTP_USER_AGENT'] と同じ情報を返します。ただし、これを MySQL データベースへの挿入と統合する方法がわかりません。MySQL テーブルのフィールドに挿入するための引数が 1 つ必要です。

誰かがこれを手伝ってくれますか?

ありがとう、

ニック

4

1 に答える 1

0

経由でjavascriptを使用してuserAgentを取得できますnavigator.userAgent

Uploadify には、次のような js があるはずです
。この例では、サーバー ファイルは uploadify.php であるため、他の URL と同様に値を簡単に渡すことができます。

$(function() {
    $('#file_upload').uploadify({
        'swf'      : 'uploadify.swf',
        'uploader' : 'uploadify.php' + '?ua=' + encodeURIComponent(navigator.userAgent)
    });
});

したがって、uploadify.php では、次の方法でユーザー エージェントにアクセスできます。

$_GET['ua']

次に、どの入力変数が実際に割り当てられているかを確認する必要があります。

$userAgent = '';
if (isset($_SERVER['HTTP_USER_AGENT'] && false === strstr($_SERVER['HTTP_USER_AGENT'], 'Adobe Flash Player') {
    $userAgent = $_SERVER['HTTP_USER_AGENT'];
} else {
    $userAgent = $_GET['ua'];
}

したがって、mysql ステートメントで $userAgent を使用できます。
ただし、次のようにエスケープするmysql_real_escape_string(または PDO バインディングを使用する)ことを忘れないでください。

$userAgent = mysql_real_escape_string($userAgent);
于 2012-06-04T18:00:39.000 に答える