OpenPNE: 2009年7月アーカイブ

色々事情があって、OpenPNE の「メッセージを送る」画面でメッセージ送信をすると、OpenPNE のユーザのメールアドレスに直接メールを送信する機能を Perl で実装した。

OpenPNE ではメールアドレスは暗号化されているので、OpenPNE のソースを元に、以下のような復号化スクリプトを書いて復号を行った。

#!/usr/local/bin/php
<?php
    $address = $argv[1];
    define('ENCRYPT_KEY', 'hogehoge_key');
    $path ="/www/lib/include";
    set_include_path(get_include_path() . PATH_SEPARATOR . $path);
    include_once 'Crypt/Blowfish.php';
    $blowfish = new Crypt_Blowfish(ENCRYPT_KEY);
    $address = base64_decode($address);
    $address = $blowfish->decrypt($address);
    echo $address;
?>

で、不思議なことに、hogehoge3@exsample.co.jp宛のメールアドレスにはメールが届くのに、hoge@exsample.co.jp宛には届かない。
どちらも、ちゃんと存在しているメールアドレスなのにだ。

原因は、復号されたメールアドレスにあった。
どうも、上記のスクリプトで復号すると、24バイト以下のメールアドレスの後ろに 0x00 のコード(NULL)がセットされてた・・・

一応、後ろにスペースがセットされてたらやだなと思って、Perl 側で、

$address =~ s/\s//g;

な置換はかけてたんだけど、NULL値は \s じゃ引っかからんのね・・・

ということで、

$address =~ s/[\x00]//g;

として不要な NULL値を削ってやったら、問題なくメールが届くようになった。

ああ、ほんまに、ラピッドサイトサーバは maillog が見れないんで駄目駄目サーバだ。
独自のシステムを動かしたい企業は、月数千円の金をケチるのはやめて、WebARENA とかを使うべきである。(・・・て話は、この間もしたな(^^;)

今、「サイト全体で OpenPNE の cookie を参照したいのだが」を書いたばかりだけど・・・

うまくいきました・・・
やっぱ、俺のやり方で間違ってなかったのだ。俺、天才。
どうも、古いクッキー情報(path に OPENPNE_URL を指定したもの)が残っていたために、うまくいかなかったようだ。

一応、InternetExplorer7 で、[ツール]→[インターネットオプション]で Cookie の削除もしたのだが、どうもちゃんと消えてなかったようで・・・他に IE7 のウィンドウが開いていたせいか???
全ての IE7 を一旦閉じて、もう一度チャレンジしたら上手くいった。(^^;

これで、CGI から PHPSESSID が取れるので、OpenPNE の認証が終わっているかどうかの判断が出来る。

ばっちり!
う~ん・・・

OpenPNE(OpenPNE-2.12.11)の cookie 情報をサイト全体で参照したいのだが、なかなかうまくいかん。

例えば、OpenPNE の URL(OPENPNE_URL)を、http://exsample.jp/AAA/ とする。
で、http://exsample.jp/BBB/ の下で動いている CGI から cookie を参照したいわけだ。

ソースを見ると、OPENPNE_URL を cookie の path にセットしているようなので、grep で cookie_path の編集をしているソースを見つけて、以下のような修正をしてみた。

◇webapp/init.inc の 106行目
ini_set('session.cookie_path', $url['path']);
  ↓
ini_set('session.cookie_path', '/');

◇webapp/lib/OpenPNE/Auth.php の 86行目
            $this->cookie_path = $url['path'];
        ↓
            $this->cookie_path = '/';

o_public_invite.php と、o_regist_prof.php については、init.inc でセットした session.cookie_path を参照しているだけのようなので何もせず。

しかし、この状態でログインを行うと正しく認証されないようで、すぐにログイン画面に戻ってしまう。

Auth.php の修正箇所を元に戻せば、ログイン出来るようになる。
(が、当然のことながら、サイト全体に cookie は有効にならない)

む~・・・取りあえず、OpenPNE 公式SNS で質問をさせていただこう。

このアーカイブについて

このページには、2009年7月以降に書かれたブログ記事のうちOpenPNEカテゴリに属しているものが含まれています。

前のアーカイブはOpenPNE: 2009年6月です。

次のアーカイブはOpenPNE: 2009年9月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら