カテゴリー
WordPress

手書き文字出力 WordPressプラグイン wp-tegaki を試してみる

たまたま目に止まったのでちょっと試してみる。

TrueType Fontを用意すれば画像として表示してくれる。
ふい字を使ってのサンプル。

[tegaki]手書き風の文字が出力される[/tegaki]

設定>tegaki の設定画面
wp-tegakiの設定

カテゴリー
EC-CUBE PayPal

EC-CUBE PayPal決済モジュールのチェック機構を強化する

EC-CUBE PayPal決済モジュールの注意点の続き

PayPal決済モジュールのチェック機構を強化

とりあえずのコードを書いてみた。
なれないPHPだし、PostgreSQLだしで、いいのか悪いのか判断できません。
基本的にEC-CUBE本体から拾ったコードを再利用しただけです。

コードはEC-CUBE 開発コミュニティサイト - フォーラムに投稿してみました。

ソースはこちらから
PayPal決済モジュールのチェック機構を強化する

動作するのか

一応PayPalのテスト環境でテスト済みですが、ご利用は自己責任で。
ツッコミ大歓迎。

 

Sign up for PayPal and start accepting credit card payments instantly.
PayPal アカウントを作成して、あなたのサイトにカード決済を導入!

カテゴリー
EC-CUBE PayPal

EC-CUBE PayPal決済モジュールの注意点

PayPal決済モジュールはチェックが甘い?

PayPal決済モジュールは支払先のメールアドレス(receiver_email)の正当性しかチェックしていない。

支払われた金額のチェックを行っていないため、(ポストされる内容を変更など)不正な金額を支払ったとしても入金済みにしてしまう。
PayPalから届く入金確認メールの金額と違っていないか確認する必要がある。

また、支払い済みのトランザクションIDの記録やチェックも行っていないため、不正利用される可能性もあると思われる。

(たしか)PayPalからダウンロードしたPerlのサンプルスクリプトにもレスポンスが VERIFIED の場合以下のチェックを行えとある。

# check the $payment_status=Completed
# check that $txn_id has not been previously processed
# check that $receiver_email is your Primary PayPal email
# check that $payment_amount/$payment_currency are correct

ちょっとチェック不足な気がするが・・・。

つづきをどぞ
EC-CUBE PayPal決済モジュールのチェック機構を強化する

カテゴリー
OpenPNE

OpenPNEで全然ログイン出来ない

RDBMS(MySQL)ベースでログイン出来たのにファイルベースだとログイン出来なかった。
ログインボタンを押した後ブラウザに表示されるエラー内容はこんな感じ。

Warning: session_destroy(): Session object destruction failed in /var/www/html/xxxxx.com/OpenPNE/webapp/lib/OpenPNE/Auth.php on line 204

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/xxxxx.com/OpenPNE/webapp/lib/OpenPNE/Auth.php:204) in /var/www/html/xxxxx.com/OpenPNE/webapp/lib/util/util.php on line 34

借りている専用サーバではなにもしないで使えたOpenPNEだったけど、自分のサーバ環境では足りないものがあったのでメモ。

OpenPNEを使うには以下のものが必要のようだ。

参考:http://wiki.ryusendo.net/index.cgi?page=OpenPNE

  • httpd
  • php
  • php-mbstring
  • php-mysql
  • php-mcrypt
  • libmcrypt
  • mysql
  • mysql-server
  • postfix(sendmailや他のMTAでも可だと思う)

特に忘れがちなのが php-mcrypt らしく、自分の環境でも入っていなかった。

ファイルベースでセッション管理するには必須のようだ。

php-mcrypt のインストール

CentOS5ならyumでOKらしい。

yum install php-mcrypt

CentOS4 の場合はRPMからインストールが必要。

手順はコピペ。

参考:http://centossrv.com/bbshtml/webpatio/364.shtml

1.mcryptを組み込むのに必要なlibmcryptをrpmforgeからインストールします。
# yum -y --enablerepo=rpmforge install libmcrypt-devel

2.php用のmcrypt拡張モジュールをPHPRPMsよりダウンロードします。
# cd /usr/src/redhat/RPMS/i386/
# wget http://jaist.dl.sourceforge.net/sourceforge/phprpms/php-mcrypt-4.3.9-3.2.1.i386.rpm
最新版はhttp://phprpms.sourceforge.net/mcryptで確認して下さい。
CentOSはRHEL互換なのでRHEL4の物を落としました。
X86_64で無いならばi386で問題ありません。

3.ダウンロードしたrpmをインストールします。
# rpm -Uvh php-mcrypt-4.3.9-3.2.1.i386.rpm

ただし、

手順は以下のページhttp://phprpms.sourceforge.net/mcrypt は現在更新されていない(?)

以下のページでも出来ると思う。

CentOS4.8へphpmyadminをインストール

(2)「mcrypt 拡張をロードできません。PHP の設定を確認してください」というエラーへの対処。

を参考に。

これでヨシ、と思ったら。。。

いざログインしてみるとエラー。

あれ?ダメだ。

Auth.phpでググってみると、PEAR::Auth なるものハケーン。

perlでいうモジュールのようなものか?

インストールしてあるものを確認。

# pear list
Installed packages, channel pear.php.net:
=========================================
Package        Version State
Archive_Tar    1.3.1   stable
Console_Getopt 1.2     stable
DB             1.6.2   stable
HTTP           1.2.2   stable
Mail           1.1.3   stable
Net_SMTP       1.2.3   stable
Net_Socket     1.0.1   stable
PEAR           1.4.9   stable
XML_Parser     1.0.1   stable
XML_RPC        1.5.0   stable

とりあえずインストールしてみる。

# pear install Auth

確認してみる

# pear list
Installed packages, channel pear.php.net:
=========================================
Package        Version State
Archive_Tar    1.3.1   stable
Auth           1.6.2   stable
Console_Getopt 1.2     stable
DB             1.6.2   stable
HTTP           1.2.2   stable
Mail           1.1.3   stable
Net_SMTP       1.2.3   stable
Net_Socket     1.0.1   stable
PEAR           1.4.9   stable
XML_Parser     1.0.1   stable
XML_RPC        1.5.0   stable

これでどうだ?
だめらしい。。。

結局の所

config.phpの設定を

// デバッグモード
// 0: off ... エラー非表示、エラーログを記録する
// 1: on  ... エラー表示、エラーログを記録しない
// 2: on  ... 1 + Smartyデバッグコンソール
define('OPENPNE_DEBUGGING', 0);

にして、ログを記録させると
/var/www/html/sns.kaneyosi.com/OpenPNE/var/log/php_errors.log
というログが出来ていた。
内容はこんな感じ。

[16-Oct-2009 13:06:20] PHP Warning: Unknown(): open(/var/lib/php/session/sess_be885c6f8a428b01a1bf8466fc878cf7, O_RDWR) failed: Permission denied (13) in Unknown on line 0
[16-Oct-2009 13:06:20] PHP Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0
[16-Oct-2009 13:06:20] PHP Warning: session_destroy(): Session object destruction failed in /var/www/html/xxxx.com/OpenPNE/webapp/lib/OpenPNE/Auth.php on line 204

結局原因は /var/lib/php/session にアクセス権が無いという事だったというオチ。
httpd.confの実行ユーザーを変えていたからか。

対処方法は/var/lib/php/session のパーミッションを770から777にするか、apacheの実行グループをapacheにすれば良かっただけの話。

早速httpd.conf を修正。

# User/Group: The name (or #number) of the user/group to run httpd as.
#  . On SCO (ODT 3) use "User nouser" and "Group nogroup".
#  . On HPUX you may not be able to use shared memory as nobody, and the
#    suggested workaround is to create a user www and use that user.
#  NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET)
#  when the value of (unsigned)Group is above 60000;
#  don't use Group #-1 on these systems!
#
User myname
Group apache ←修正

で、apacheリスタート。

ようやくうまくいきました。

カテゴリー
webアプリ サーバ管理

senna 1.1.4のインストール

CentOS 4.4

wget http://iij.dl.sourceforge.jp/senna/33763/senna-1.1.4.tar.gz
tar xzf senna-1.1.4.tar.gz
cd senna-1.1.4
./configure --prefix=/usr/local
make
su--
make install