読者です 読者をやめる 読者になる 読者になる

炊きたてのご飯が食べたい

定時に帰れるっていいね。自宅勤務できるっていいね。子どもと炊きたてのご飯が食べられる。アクトインディでは積極的にエンジニアを募集中です。

( php ) GO2WEB20の提供するtwitterのFollow meバッチでエラー 【http/httpsで分岐】


SSL接続(https)でサイトを訪問した際、IE
「セキュリティで保護されたWebページ コンテンツのみを表示しますか?」
のエラーが発生。
最初は原因が分からず、色々と調べてみると、
GO2WEB20のサイトで作成したtwitterのFollow meバッチのスクリプト

<!-- twitter follow badge by go2web20 -->
<script src='http://files.go2web20.net/twitterbadge/1.0/badge.js' type='text/javascript'></script><script type='text/javascript' charset='utf-8'><!--
tfb.account = 'twittername';
tfb.label = 'follow-me';
tfb.color = '#6BCCD7';
tfb.side = 'r';
tfb.top = 136;
tfb.showbadge();
--></script>

httpの部分が原因だった。

httpsでサイトに訪問した際、ページ内に、httpとhttpsのコンテンツが混在している場合に
「セキュリティで保護されたWebページ コンテンツのみを表示しますか?」がIEでは表示される。
↓詳しくはこちらの記事を参照
http://accentplus.blog134.fc2.com/blog-entry-25.html

解決方法として、$_SERVER['HTTPS']でサイトのURLがhttpsかどうかを判別し、「http → 表示、https → 非表示」で対応をした。

if( $_SERVER['HTTPS'] != "on" ) {
echo <<< HTML
<!-- twitter follow badge by go2web20 -->
<script src='http://files.go2web20.net/twitterbadge/1.0/badge.js' type='text/javascript'></script><script type='text/javascript' charset='utf-8'><!--
tfb.account = 'twittername';
tfb.label = 'follow-me';
tfb.color = '#6BCCD7';
tfb.side = 'r';
tfb.top = 136;
tfb.showbadge();
--></script>
HTML;
}

GO2WEB20の提供するtwitterのFollow meバッチをSSL接続(https)に対応しているサイトで使用する際には気をつけよう。
※$_SERVER['HTTPS']:httpの場合はNULL、httpsの場合はonを返す