
PHPでSSL通信時、IEでファイルのダウンロードに失敗する
シルバーウィークですねっ。
昨日は久しぶりにアウトドアなことをしたました。
楽しかったのですが、ぐったりと疲れました。
IEでSSL通信時にファイルをダウンロードしようとしたら、なぜかうまくいかない・・・ということはないでしょうか?
かなり限られた状況だとは思うのですが、私は実際にありました。
とあるシステムの案件でエクセルファイルを生成してダウンロードさせる部分があったのですが、完成してもIEでうまくダウンロードできず。。。
あれこれ試しながら最終的に、
session_cache_limiter('public');を、セッションがスタートする前に指定してあげることで回避が出来ました。
もし同じようにダウンロードができないということに陥った場合は、お試しください。
追記:
上記のものとは異なり、以下の場合もIEでうまくダウンロードできないことがあるみたいです。
<?php ~ダウンロード処理~ ?> ← ファイルの最後尾に不要な改行コードのみの行が存在


PostgreSQLでnullをソートする
明日からシルバーウィークですねっ。
バーベキュー行ったり、仕事したりしながら、基本的にダラダラ過ごしていると思われます。
それはさておき、SQLでデータを抽出する際、ORDER BY句でソートするカラムにNULLが入っていることもあります。
例えば、
SELECT price, name FROM fruit ORDER BY price;とした時に、
price | name |
100 | みかん |
200 | りんご |
400 | ぶどう |
いちご |
この時、いちごは値段をつけていないけど、一番先頭に表示するには、以下のSQL文で抽出できます。
SELECT price, name FROM fruit ORDER BY (price IS NULL) DESC, price;
price | name |
いちご | |
100 | みかん |
200 | りんご |
400 | ぶどう |


MD5よりもSHA-1
ハッシュ化(暗号化)するのによく用いるMD5。
基本的には複合化(元に戻す)ことは不可能だといわれていますが、どうもアルゴリズムに脆弱性があるようで、不可能ではないようです。
詳細はWikipediaのMD5のページにある安全性の項目で。
実際のところ、気にするほどではないのかと思っていたのですが、今年の頭くらいにベリサインがMD5を用いていた部分をSHA-1に切り替えているので、ちょっと気にした方がいいのかなと。
私も今後はMD5ではなく、SHA-1を用いるようにしようと思う、今日この頃です。


IE6でマージンが2倍になるバグの対策は
皆様コーディングしていますか?
日々ブラウザのバグ達と戦っていますか?
特にIE6とかIE6とかIE6とか・・・
IE6で「キーッ」となるバグの一つである、floatしたボックスのmarginが倍になるバグ。
大体はpaddingで代用が出来るのですが、どうしてもmarginが使いたい時があったりします。
ボックスに背景が指定してあったり、よくわからない隙間が出来てしまった為にネガティブマージンを使いたい時とか。
続きを読む


CakePHPで論理削除するSoft Deletable Behavior2
最近朝方は冷え込んできました。
私も朝はミノムシのように毛布にくるまっております。
さて、昨日の記事で紹介したSoft Deletable Behaviorですが、[CakePHP] SoftDeletable Behavior で論理削除 – Sun Limited Mt.を参考にそのままやると、特にPostgreSQLの場合にいくつか問題があります。
TINYINTという型がPostgreSQLは対応していないです。
削除フラグなのでINT型にするというのも変なので、BOOL型に変更しようかと思います。
soft_deletable.phpを開き、
$attributes['field'] => 1 ↓ $attributes['field'] => true
$purged = $Model->deleteAll(array($this->__settings[$Model->alias]['field'] => '1'), $cascade); ↓ $purged = $Model->deleteAll(array($this->__settings[$Model->alias]['field'] => true), $cascade);
$this->__settings[$Model->alias]['field'] => '0' ↓ $this->__settings[$Model->alias]['field'] => false
$queryData['conditions'] = $Db->name($Model->alias) . '.' . $Db->name($this->__settings[$Model->alias]['field']) . '!= 1 AND ' . $queryData['conditions']; ↓ $queryData['conditions'] = $Db->name($Model->alias) . '.' . $Db->name($this->__settings[$Model->alias]['field']) . '= false AND ' . $queryData['conditions'];
$queryData['conditions'][$Model->alias . '.' . $this->__settings[$Model->alias]['field']] = '!= 1'; ↓ $queryData['conditions'][$Model->alias . '.' . $this->__settings[$Model->alias]['field']] = false;
と変更。
これでBOOL型で動作すると思います。
とはいえ、ではMySQLだったらそのままでいいってわけでもなく・・・
CakePHPはTINYINT型をBOOLEARN型として扱うようで、これはこれで常にデータが全削除扱いになってしまうので、結局TINYINT型は使えないようです。
CakePHPトtinyintトboolean – [k]zi.bz
それ以外にもSoft Deletable Behaviorの挙動にちょっとした難点があり、[CakePHP] SoftDeletable Behavior で論理削除 – Sun Limited Mt.によると
「SoftDeletable Behavior を使用すると Model::del は必ず false が返ります。
これは Behavior が beforeDelete で削除フラグを立てて、モデルの del メソッドを実行させないために false を返すためです。
この点だけ注意が必要です。」
とのことなので、削除に成功したか失敗したかは別過程で取得しないといけないというネックがあります。

- 脱出ゲームを作成しました
- Studio Yuksのサイト制作のお手伝いをさせていただきました
- よみがな.netを公開しました
- Slug or PostIDプラグインがバージョン1.0になりました。
- お問い合わせフォームへの連投を防ぐ方法+α
- phpMyAdminのsetup.phpに脆弱性があるみたいです
- 1つのデータベースに複数のWordPressをインストールする方法
- 仕事とプライベートで使っているマウスをご紹介
- WordPressでiFrameが消えないようにする記述が必要なくなったようです
- CSS3で横並びのメニューを簡単に作る方法
- Windows7にIllustratorCS2入れたけど日本語入力ができなかった
- FFFTPでファイルをダウンロードしたのに、ファイルがその場所になかった時
- PHPでurlの日本語パラメータをGETで受け取ると文字化けする場合
- JavaScriptでブラウザのテキスト選択を解除する
- お問い合わせフォームへの連投を防ぐ方法+α
- PHPのSmartyでゼロパディングする
- WordPressでiFrameが消える時の解決方法
- CSS3で横並びのメニューを簡単に作る方法
- MT5インストール時に「LWP::UserAgentがありません」とエラーが出てインストールできない時
- WordPressでiFrameが消えないようにする記述が必要なくなったようです
- HTML+CSS (8)
- JavaScript (12)
- PHP (21)
- PostgreSQL (4)
- WordPress (8)
- WordPressプラグイン (1)
- Movable Type (13)
- Photoshop (2)
- Illustrator (2)
- Firefox (5)
- ツール (2)
- 雑記 (23)
- 未分類 (3)
- Android (1)