WeChat_PHP チュートリアルでページが開かれたかどうかを判断する PHP の例

WBOY
リリース: 2016-07-13 10:31:47
オリジナル
904 人が閲覧しました

コードは次のとおりです:

$user_agent = $_SERVER['HTTP_USER_AGENT'];

if (strpos($user_agent, 'MicroMessenger') === false) {

// WeChat以外のブラウザは閲覧禁止です

echo "HTTP/1.1 401 Unauthorized";

} 他 {

// WeChat ブラウザ、アクセスを許可します

「MicroMessenger」をエコー;

// バージョン番号を取得します

preg_match('/.*?(MicroMessenger/([0-9.]+))s*/', $user_agent, $matches);

エコー

バージョン: '.$matches[2];

}

そうですね、直接反論することはできませんが、これは確かに非常に信頼性が低いです、

データについて話しましょう。

Android、WinPhone、iPhoneのHTTP_USER_AGENT情報は以下の通りです。

コードは次のとおりです:

"HTTP_USER_AGENT": "Mozilla/5.0 (Linux; U; Android 4.1; zh-cn; Galaxy Nexus Build/Wind-Galaxy Nexus-V1.2) AppleWebKit/534.30 (Gecko のような KHTML) バージョン/4.0 Mobile Safari/534.30マイクロメッセンジャー/5.0.1.352"、

"HTTP_USER_AGENT": "Mozilla/5.0 (互換性; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Nokia 920T)",

"HTTP_USER_AGENT": "Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329 MicroMessenger/5.0.1",

WinPhoneにはMicroMessengerが全く無いので判定が出来ないのが分かりますが、実はuserAgentの判定がかなり偽物なので、WeixinJSBridgeの有無をjsで判定してからajaxでphpにすれば良いのではないかと思います

PHP は実際のページ情報を検出して返し、その過程で「Loading...」を追加します。これは非常に調和的です。もちろん、ajax も騙すことができますが、userAgent の騙しと比較すると、少し面倒です。

しかし、私たちの目的はそれがWeChatであるかどうかを検出することであり、欺瞞の問題ではありません。私はある種の使用主義と無制限のコピーアンドペーストが嫌いで、コードの一部がフィルタリングされる場合があるため、具体的なコードは書きません。関係ありません

www.bkjia.com本当http://www.bkjia.com/PHPjc/761298.html技術記事コードは次のとおりです: $user_agent = $_SERVER['HTTP_USER_AGENT']; if (strpos($user_agent, 'MicroMessenger') === false) { // WeChat 以外のブラウザは閲覧を禁止されています echo HTTP/1.1 401 Unauthorized ; }...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート