PHPのセッション管理はスッキリさせたい

PHPで手続きの途中で別のことをさせてまた戻るときに、
セッションに中断した情報を保存させたりします。
また、リダイレクト先でメッセージを表示させたいときにも利用しますね。

いままでは
$_SESSION['notice'] = $_SERVER['REQUEST_URI'];

$location = './';
if( isset($_SESSION['location']) ){
$location = $_SESSION['location'];
unset($_SESSION['location']);
}
header("Location: $location");

とかやったりするわけですが、あちこちでこんな処理を書くのはダサいですよね。

なので、ユーザ用クラスを作って放り込むことにしたわけです。
手続の中断情報を入れるために、カッコよくInterceptとでもしましょう。

class USER {

public function setIntercept( $location ){
$_SESSION['location'] = $location;
}
public function getIntercept( $flagClear=false ){
if( !isset($_SESSION['location']) ){ return; }
$location = $_SESSION['location'];
if( $flagClear ){ $this->clearLocation(); }
return $location;
}
public function clearLocation(){
if( !isset($_SESSION['location']) ){ return 0; }
unset($_SESSION['location']);
return 1;
}

}

こんな感じでスッキリさせました。
※コードは直書きでtypoちゃんと見てません、あしからず。

ImageMagickで画像の情報を得る

画像のいろんな情報を得るには、
identify -verbose
とするわけですが、
解像度を取得しようとコードを書いていたところ、ちょっとおかしな個所を見つけたので調べてみました。

まず、解像度は
「Resolution」
で取得できます。
最初はこれだけ見ていたのですが、実際のものと違うことがあったので悩んでいました。

よくみると
「Units」
という項目があり、これで単位を指定していることが判明。
通常は
「PixelsPerInch」
インチを基準にしていてDPIやPPIと言われるもので、
これであればResolutionはそのままDPIとなります。

次に
「PixelsPerCentimeter」
これが曲者でした。
インチとセンチを換算する必要があります。
1cm = 1inch / 2.54
なので、
[pixel/inch] = [pixel/cm] * 2.54
というわけです。

ちなみに
「Undefined」
はどういうものかよくわかりませんが、Resolutionは100が多いようです。

JavaScriptでURLをカッコよくパースする

次のようなURLがあったとします。
http://www.printry.jp/product/category/detail.php?product_category_id=15#productId193
これをパースしていろいろ弄りたいのですが、
「?」で分割して、右側を「&(&)」で分割して、「=」で分割して…
というのが何をやっているのか一目瞭然なのですが、次の方法があるようです。


var elm = document.createElement('a');
elm.href = 'http://www.printry.jp/product/category/detail.php?product_category_id=15#productId193';

console.log(elm.hostname);
// www.printry.jp
console.log(elm.pathname);
// /product/category/detail.php
console.log(elm.search);
// ?product_category_id=15
console.log(elm.hash);
// #productId193

これはなるほど、DOMに丸投げというわけですね。
カッコよく決まってデメタシデメタシ。

PayPalエクスプレスチェックアウトが機能しない

PayPalのオンライン決済「エクスプレスチェックアウト」が機能していないのを確認しました。
ログを見ると「Problem with the SSL CA cert (path? access rights?)」となっています。
どうやら、bashを更新したのが原因らしく、Apacheを再起動することで回避できました。

でめたしでめたし

ネット印刷受注システムPOASにPSD入稿を実装

ネット印刷受注システムPOASで、PhotoshopのPSD形式に対応しました。
拡張機能となりますので、別途契約が必要になります。
現在使える状態になっていますが、近いうちに判定機能を追加します。

機能の概要としては、
レイヤを合成して画像化します。
解像度を調べて仕上サイズを推測します。
PSDファイルのまま入稿できます。

プリントライで問い合わせがあったので、先送りにしていた機能を前倒しで導入しました。

GhostScriptでPDFを画像化する際にジャギーが目立つ

GhostScriptでPostScript系のデータを画像化できるわけですが、
「-dTextAlphaBits=4」
というおまじないが効かないことがあるようです。
アンチエイリアスを設定できることになっているのですが、PDFには効かないようです。
EPSは有効です。

PDFで設定が効かないのであれば、4倍大きいサイズで画像化してからアンチエイリアスを有効にして1/4にリサイズを行うことで対応できますが、
A4サイズ程度のデータになると、かなりのマシンパワーが必要になるため現実的ではありません。
他に何らかのオプションがあるのかどうか、また気が向いたら調べてみます。

ネット印刷通販システムのページデザイン機能を更新

印刷通販サイト「プリントライ」でも稼働している、ネット印刷通販システムPOASのページデザイン機能を更新しました。
これまでは、自由に編集できるようになっていましたが、いろいろと問題が出ていたのでバッサリと廃止。現在は1デザインのみに絞っています。
ヘッダ・コンテンツ・フッタ・メニュー・スタイルシートと項目が分かれ、個別に編集します。
内部で統合して、テンプレート化して高速な表示を目指します。
タグの構造をちょっと変更したので、スタイルシートの適用が外れている個所があるかもしれませんので、確認をお願いいたします。