人気ブログランキング |
2012年 11月 12日 ( 3 )
(HTTP,PHP)httpsからhttpへのリファラは送信されない!?
PHPで Referer を取得しようとするんですが、https のサイトからリンクすると、"Notice: Undefined index: HTTP_REFERER "エラーになってしまいます。

で、調べた結果 https から http へアクセスした場合、Referer は送信されないんですね。
知りませんでした。

ちなみに、PHPだとリファラがないと、$_SERVER['HTTP_REFERER'] 自体が存在しないため、上記のエラーとなります。
PHPでサーバ変数とか使うときは、以下のように変数が存在するかどうかをチェックしてから値を使うようにしたほうが良いですね。
$referer = ( isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : "");

参考:
[INFO] セキュリティ保護されていない状況で Internet Explorer から Referer ヘッダーを送信しない
nitoka blog: https://ページからhttp://ページへのリンクした場合リファラーは送出されない
by Jehoshaphat | 2012-11-12 21:52 | PHP開発
(JavaScript)jQueryを使って外部JavaScriptを動的に読み込む
Ajaxなページを作っていると、JavaScriptファイルも動的に読み込ませたくなります。
jQueryを使うと簡単に外部JavaScriptファイルを読みこませるできます。

こんな感じです。
$.getScript("./test.js", function(){
});



もし、読み込んだ後に、処理したければコールバック関数に処理を書いてやればOKです。
$.getScript("./test.js", function(){
alert("読み込み完了");
hoge();
});


jQueryってほんと便利ですね。

参考:
[jQuery] 外部JavaScriptファイル読込みに関する考察|A Day In The Boy's Life
逆引きjQuery:非同期でJavaScriptのコードを取得するには? - @IT
by Jehoshaphat | 2012-11-12 01:54 | Webがらみ
(JavaScript)連想配列のループ
JavaScriptにはPHPやC#で言う所のforearch構文の代わりに、for in 構文でループが出来るようです。
こんな感じ。
var arytest = { "name" : "安部礼司", "age":39 , "nickname":"平均", "bloodtype":"A" };
for (var key in arytest) {
if ( key == "bloodtype" ) break;
alert("キー:" + key + " 値:" + arytest[key]);
}



ちなみに、jQueryを使って配列をforeach的に処理することも可能なようです。
var arytest =  { "name" : "安部礼司", "age":39 , "nickname":"平均", "bloodtype":"A" };
jQuery.each(arytest, function(key, value) {
if ( key == "bloodtype" ) return false; //ループを抜けるときはfalseを返す。
alert("キー:" + key + " 値:" + value);
});


参考:
JavaScript の配列と連想配列の違い - IT戦記
JavascriptでPerlやPHPのforeachするスクリプトの書き方 - Layer8 Reference
jQuery.each(object, callback) - jQuery 日本語リファレンス
jQuery for each 連想配列 - mmj
by Jehoshaphat | 2012-11-12 00:51 | Webがらみ