xampp をwindowsマシンにインストールして、php アプリを構築中、timestamp 関係の処理がなんか変。

結論から言うと、php.ini で設定されているタイムゾーンが・・・・次の状態に・・・・

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Berlin

ベルリンってサマータイムがあるじゃん!どうりで、3月28日から日付処理でおかしくなっているわけだ!

上記の例の最後の行を

date.timezone = Asia/Tokyo

と修正。修正したら、PCを再起動。
これに気づくまでに半日つぶした・・・・・んで、今まで蓄積したデータで「サマータイム」で処理されていたデータを修正・・・
まぁ、該当するデータを一気に修正をかけるが・・・・・失敗したら大変なことに・・・
phpとMySQLの文字化けの解決について、検索するといろんな有益な情報が見つかりますが・・・

最新版の xampp-1.7.4 をインストールして、案の定「文字化け」

以前も同じ症状でドツボにはまったので、今回は楽勝と思ってましたが・・・・・

ネットで検索して、やっと答えにたどり着きましたので、こちらでも、その対処方法を掲載します。
参考URL: DegiWiki

\xampp\mysql\bin のフォルダーの中の my.ini を編集


# Here follows entries for some specific programs 

# The MySQL server
[mysqld]
port= 
~中略~
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
log_error="mysql_error.log"

この記述の下に、次の2行を追加

character_set_server=utf8 
skip-character-set-client-handshake

MySQL側の設定はこれでOK

ちなみにPHP側の設定は 「phpの文字化けを本気で解決する」を参考に、修正しました。

なお、当方はUTF-8を利用しますので、次の行の通りもう一回修正しました。

;; Set internal encoding to EUC-JP
mbstring.internal_encoding = UTF-8

mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII

平成21年4月22日からお弁当の製造・配達活動を始めておりましたが、本日より、この「ブログ」で私たちの活動を紹介していきます。

test - FACEBOOK&MT5技術覚書

| コメント(0) | トラックバック(0)
Facebookページ(昔のファンページ)について、訪問したユーザーが、「いいね」ボタンを押しているか否かの判定について説明

(注:アプリに対して、「いいね」ボタンがおされているかどうかの判定は、次の記事にて説明。なお、アプリのFacebookページについては、ここで取り上げる内容でOK。ややこしいですねw)

まず基本はアプリやタブページを作成する方法と同じです。

ソースについて記述します。
ここから↓
<?php
function parse_signed_request($signed_request, $secret) {
  list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

  // decode the data
  $sig = base64_url_decode($encoded_sig);
  $data = json_decode(base64_url_decode($payload), true);

  if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
    error_log('Unknown algorithm. Expected HMAC-SHA256');
    return null;
  }

  // check sig
  $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
  if ($sig !== $expected_sig) {
    error_log('Bad Signed JSON signature!');
    return null;
  }

  return $data;
}

function base64_url_decode($input) {
  return base64_decode(strtr($input, '-_', '+/'));
}

$data = '';
if (isset($_POST['signed_request'])) {
    $data = parse_signed_request($_POST['signed_request'], 'アプリの秘密の文字列');
}

print '<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<title>いいね 押してる?</title>
</head>
<body>;
f( $data['page']['liked']  ){
print 'いいねを押しくれてありがとうございます。<br />';
else{
print 'どうぞ、いいねを押してくださいませ。。。<br />';
}
print '</body>
</html>';
?>
ここまで↑
これをそのまま、ファイル名.php で保存し、Facebookページに埋め込んでください。

参考URL
練習も兼ねて、「おみくじ」アプリ(試作)を作ってみました。

作る前にいろいろと準備が必要です。

一番最初に、参考にしたサイトは
す。


そのサイトで紹介してあるソースをそのまま使って、動作確認。動くのは当たり前でも、他人のソースをそのままコピーしても、やはり動くとうれしい。

次にそのソースを研究。

$me = $facebook->api('/me'); // 自分の情報を取得
$uid = $facebook->getUser(); // 自分のユーザー ID を取得

<img src="https://graph.facebook.com/<?php echo $uid; ?>/picture">
<?php echo $me['name']; ?>

つまり、写真を表示させたいのであれば、
<img src="https://graph.facebook.com/ユーザーID番号/picture">
(ちなみに、私のユーザーIDは15ケタ)

自分の情報を取得するときのおまじない
$me = $facebook->api('/me');

そして <?php echo $me['name']; ?> という記述から、 $me は連想配列である。
その連想配列の「キー」として name があり、その中に 「名前」が格納されている。
では、他にどのような「キー」が存在するか、 phpコマンドの array_keys を使って抽出。
その結果 
Array
(
    [0] => id
    [1] => name
    [2] => first_name
    [3] => last_name
    [4] => link
    [5] => location
    [6] => work
    [7] => education
    [8] => gender
    [9] => timezone
    [10] => locale
    [11] => languages
    [12] => verified
    [13] => updated_time
)

それぞれの キー の中にもいろいろ詰まっていそうなので、
print_r($me);
で、表示してみると

PEARのインストールについてMEMO

参考にしたサイト



素直に、1 に従って、インストール
しかし、index.html をダウンロードして、再度ウェブ上でアクセスできる場所に移動させて、アクセスしなおすときに、2 の手順が必要になる。

point: 
// $pear_dir must point to a valid PEAR install (=contains PEAR.php)
$pear_dir = '@pear_dir@'; // default of install

この $pear_dir = '@pear_dir@'; を $pear_dir = '/home/○○○○/pear/PEAR'; に変更し、ウェブ上でアクセスできる場所にFTPでアップロードを行う。

前の記事で「Facebook Integration」の設定について記述しました。次に、それをどう表示させるか?ここまでして、やっとアプリやタブが追加されます。

Facebook Integration」の画面で、「変更を保存」を押した後に表示される画面で、
facebook_app_016.png
上の図のとおり、「Application Profile Page」を選択。
facebook_app_017.png

すると、右の画面に遷移する。

アプリやタブページのFACEBOOKページです。

そして、その画面の左にある「Add to My Page」をクリックすると、ご自身が管理している「Facebookページ」(昔のファンページ)の一覧がでてきます。



その一覧の中から、目的のfacebookページを選択して、タブページの追加が完了します。


Facebook Integration の設定ページ。
なおこの設定ページにたどり着くには、前の記事 「Facebookページにタブを追加【修正編】」を参照の事。
facebook_app_008.png
① Facebookのサーバー内に、ご自身のアプリのURLを設定します。なお、これは「早い者勝ち」です。当方の施設は「えがおの里」ですので、「smilevillage」のシリーズで名前を決めています。なお、使える文字は、アルファベットの小文字とアンダーバー「_」およびハイフン「-」。文字数は20文字以内という制限があります。

この設定の効果は、次の図のとおりです。
facebook_app_009.png
赤いラインのところ。①で入力したURLが、そのまま使われています。

(図は おみくじ のアプリの場合です。)

例として ①に smilevillage_tab と入力します。(皆様はご自身で任意のURLを指定してください。)

② Canvas URL には、自分のサーバーのURLを記入します。つまり、自分でサーバーを持っていないと、ここには何も記入できません。もっと言えば、サーバーを自分でレンタルする必要があります。
URLの具体例 http://www.mimata.jp/ としておきます。なお、ここで指定するURLはディレクトリーでなければなりません。(つまり、最後の部分にファイル名はNG。)ディレクトリーを指定しなかった時の警告は図の通り。
facebook_app_013.png

③ SSLによる暗号化で、ご自身のサーバーと接続する場合にそのURLを入力します。https://~~ で始まるURLのことです。なんじゃコレ?と思った方は、何も心配せずにここは空欄にしておきましょう。

④ Canvas Type は迷わず、「IFrame」を選びます。

⑤ iFrameサイズ では、ご自身の好みでOK。「Show scrollbars」とは何ぞや?次の図を参照
facebook_app_010.png
⑥ ブックマークURL・・・・ユーザーがクリックしたときに読み込まれるURL。指定がない場合は、Canvas Page で設定したURLが読み込まれます。基本的に空白のままでOKです。

⑦ Social Discovery で、有効 を選んだ場合、例えば、下図のように、アプリの宣伝・口コミが容易になります。
facebook_app_011.png
目的に応じて、適切な方を選んでください。

⑧ タブ名 ここは日本語でもOK「タブの名前のテスト」と力してみました。ここでの入力結果は、図のように反映されます。
facebook_app_012.png
⑨ Page Tab Type は素直に「IFrame」を選択してください。

⑩ タブのURL はファイル名で指定できます。先ほど ② のCanvasURLではディレクトリーの指定でしたが、ここでは、ダイレクトにファイル名を指定できます。(ここを空欄にした場合は、自動的にそのディレクトリーにある index.html などのindexファイルが指定されます。)ディレクトリーの中に複数のページを保存している場合に、ここで指定します。

⑪ 編集用URL ここにURLを設定すると、自分のサーバーに置いてある、ファイルを編集するサイトにジャンプできます。具体的には下の図で確認してください。(言葉での説明に限界を感じたw)
facebook_app_014.png
Facebookページを管理者の状態でログインしていると表示される「Facebookページを編集」ボタン(画面の左上のバナー写真の下にも表示されている)れをクリックすると、次の画面。
facebook_app_015.png
上の図で、「アプリケーションへ移動」をクリックしたときに、ジャンプする先のURLを 「編集用URL」に設定します。例えば、ご自身が借りている、レンタルサーバーのログイン画面とかに設定しておけば、あとあと楽です。ということです。

ここまで設定ができたら、忘れずに「変更を保存」ボタンを押してください。

そしていよいよタブの追加です。次の記事参照
登録したアプリやタブを訂正する方法

まず、「Facebook開発者」に移動 → 「マイアプリ」を選択
facebook_app_004.png