php、cgi作成メモ
phpでOpenID実装
自分のサイトの認証にOpenIDを利用しようと、ライブラリを導入しました。今回使用したのは、、、『lightopenid』という物です。
phpでOpenIDだと、一般的には、「PHP OpenID Library(JanRain PHP OpenID)」が使われるみたいですが、うちで使っているサーバのXREAでは何故か対応していないため、使えず。
というわけで、『lightopenid』を使っているわけです。
が、『lightopenid』では、yahooが実装しているAEでのユーザ情報が取得できないのですorz
説明にはサポートしてるとあるので使い方が悪い可能性も大なのですがw
まあ、なんとか「PHP OpenID Library」を使いたいのですが、XMLのライブラリに問題があるとか、MD5の乱数の生成部分に問題があるなど、、、色々試した結論として、XREAのサーバで使うのは無理でした。(複数の問題有り)
というわけで、XREA・coreserverでOpenIDを導入しようとしている方の参考になればとメモメモ。
ちなみに、ライブラリ自体はlightopenidの方が使いやすい印象。
2011年01月13日
2.Amazonアフィリエイト タグ改造
今回はAmazonアフィリエイト タグの改造です。
アマゾンの下記のようなAmazonライブラリリンクをよく使っているのですが、サイトのデザインとの相性とかもありデザインが気に入らなかったりします。
とくに、横幅とかがサイトのデザインとあわないなど。
そこで、改造です。
タグをみるとわかるように、これはiframeになっています。で、実際にアクセスされるページは
こちらにアクセスしても同じ表示がされるはずです(もともとアクセスするたびに商品がかわるリンクなので商品は若干かわりますが)。
さらに、こちらのページだとソースまでみることができます。
つまり、このソースをいじることができれば、アフィリエイトタグの改造ができるという訳です。
で、実際にはどうするかというと、
1,元となるアフィリエイトのタグを取得します。(iframeの)
2,そこに含まれる実際に表示されるページのURLを取得します。
3,2、で取得したURLにアクセスしそのページをGETして同じページを表示するようなCGIを作成。
4,3、のCGIの中でソースの置換などの改造を行う。
5,iframe等で3、のCGIにアクセスすれば4で改造された内容が表示されます。
簡単ですね♪
ただし、アマゾンのロゴやプライバシー云々のリンクをいじると確実に規約違反となるのでやめましょう。
また、3、においてスタイルシートのファイルも適当なフォルダにコピーしておかないとスタイルが崩れて同じように表示されないので注意してください。
2010年12月02日
Mysql使用時の文字化け
最近、CGIのプログラムはperlやphpを作るときにはもっぱらutf-8を使うんですが(楽天とかamazonとかのAPIから帰ってくるデータがutf-8なため)、 自分のサイトでMysqlを使ってプログラムを作ると、データの受け渡しで何故か文字化けが発生します。もちろん、データベース側の文字コードもutf-8に設定。
結論から言うと
データ受け渡しのsqlクエリーを発行する前に
SET NAMES utf8
SET CHARACTER SET utf8
(どちらか片方でもいいらしい)のクエリーをmysqlに送ればデータがデータベースの内部エンコードに関わらず設定した文字コードで帰ってくるらしいです。 便利ですね。
ただし、perlの場合はそれ以前の問題として、ソースの文字コード、内部文字コード、出力する際の文字コードなどの設定を正しく行ってください。
個人的にはそういう面ではphpの方が使いやすい気がします。
2010年11月14日