0

ユーザーが特定の OS で特定のブラウザーを使用している場合、mysql クエリを実行して特定の結果を省略できるようにする必要があります。私のデータベース クエリは AMFPHP サービスから行われ、ユーザー ブラウザーと OS を取得するために使用できる javascript browserDetect スクリプトがあります。

理想的には、ユーザーが自分のページに到着したときに browserDetect スクリプトを実行し、これを PHP セッション変数に保存したいのですが、JavaScript 変数を PHP セッションに渡す方法がわかりません。これにより、データベース クエリ スクリプトがセッションを検索し、それに応じてクエリを変更できるようになります。また、ブラウザ検出スクリプトを AMFPHP スクリプトに含めようとしましたが、これは機能しませんでした。これはサーバー側とクライアント側の問題であることがわかりました。

他にどのような解決策がありますか?

ありがとう

4

4 に答える 4

4

PHPだけでそれを達成してみませんか?PHP は、ブラウザと OS をフェッチすることもできます...
$_SERVER['HTTP_USER_AGENT']ブラウザと OS が含まれています...

于 2010-12-20T12:36:28.913 に答える
2

@thedomが言ったよう$_SERVER['HTTP_USER_AGENT']に、PHPで使用してください。ユーザー エージェント (ユーザーが変更しない限り) には、ブラウザー、ブラウザーのバージョン、および OS が含まれます。これが私のものです:

Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.15 (KHTML, like Gecko) Chrome/10.0.612.1 Safari/534.15

ただし、javascript を使用する場合は、私が ajax ログインを実装するために行ったのと同様のことを行う必要があります。

私は基本的にこれをスクリプトの先頭に置きます(login.php)

session_id($_POST['PHPSESSID']);
session_start();

そして、これはセッションを検出するためにJavaScriptが実行されるページにあります(index.php)

$sessionid = ($_COOKIE['PHPSESSID']) ? $_COOKIE['PHPSESSID'] : $_GET['PHPSESSID'];
<script type="text/javascript">var session = "$sessionid";</script>

そして、他のスクリプト (login.php) に投稿します (この場合、ajax 経由でログインするには)

$.post("ajax/login.php",PHPSESSID=" + session);

JQuery の使用。

于 2010-12-20T14:03:50.933 に答える
1

browserDetect javascript からの結果を javascript cookie に設定でき、PHP はそこから cookie を読み取ることができます。

詳細 : PHP で Javascript Cookie を読み取る方法

于 2010-12-20T12:35:29.747 に答える
0

もう 1 つの解決策は、javascript に OS/ブラウザを含む ajax リクエストを作成させることですが、より良い方法はユーザー エージェントを解析することです。

于 2010-12-20T14:08:10.350 に答える