MW211 EXIT

devlog
PHP/mb_convert_encoding()とNULL
2017年01月11日
「mb_convert_encoding()」に「NULL」を渡すと、空文字「''」に変換されるので注意。
┌──────────────────────────────────────┐
│mb_convert_encoding(NULL, 'SJIS-win', 'UTF-8'   );                      →''│
├──────────────────────────────────────┤
│mb_convert_encoding(NULL, 'UTF-8'   , 'SJIS-win');                      →''│
└──────────────────────────────────────┘
「NULL」のままにしたい場合には事前に迂回する必要がある。
分類:PHP
JavaScript/プロトタイプなど
2017年01月10日
┌──────────────────────────────────────┐
│var グローバル変数;                                                         │
└──────────────────────────────────────┘
┌──────────────────────────────────────┐
│function グローバル関数(引数) {                                             │
│     var ローカル変数;                                                      │
│     return 戻り値;                                                         │
│}                                                                           │
├──────────────────────────────────────┤
│var グローバル関数 = function(引数) {                                       │
│     var ローカル変数;                                                      │
│     return 戻り値;                                                         │
│}                                                                           │
├──────────────────────────────────────┤
│グローバル関数(引数);                                                       │
└──────────────────────────────────────┘
┌──────────────────────────────────────┐
│function コンストラクタ関数(引数) {                                         │
│     this.公開メンバ変数 = 引数,                                            │
│     this.メソッド = function(引数) {                                       │
│         var ローカル変数;                                                  │
│         return 戻り値;                                                     │
│     };                                                                     │
│}                                                                           │
├──────────────────────────────────────┤
│var オブジェクト = new コンストラクタ関数(引数);                            │
└──────────────────────────────────────┘
┌──────────────────────────────────────┐
│名前空間 = {                                                                │
│     公開メンバ変数:値,                                                     │
│     メソッド:function(引数) {                                              │
│         var ローカル変数;                                                  │
│         return 戻り値;                                                     │
│     }                                                                      │
│};                                                                          │
└──────────────────────────────────────┘
分類:JavaScript
Smarty/gettext連携
2016年12月07日
Smartyで「_()」関数を使用する方法。
テンプレートにて以下のいずれかの記述を行う。
┌──────────────────────────────────────┐
│{_('文字')}                                                                 │
├──────────────────────────────────────┤
│{'文字'|_}                                                                  │
├──────────────────────────────────────┤
│{gettext('文字')}                                                           │
├──────────────────────────────────────┤
│{'文字'|gettext}                                                            │
└──────────────────────────────────────┘
プラグインを使うという手もある。
分類:Smarty
PHP/crypt()
2016年12月03日
【暗号化】
┌──────────────────────────────────────┐
│$暗号文 = crypt($平文);                                                     │
└──────────────────────────────────────┘

【照合】
┌──────────────────────────────────────┐
│if (crypt($平文, $暗号文) === $暗号文) {                                    │
│    echo '一致する';                                                        │
│} else {                                                                    │
│    echo '一致しない';                                                      │
│}                                                                           │
└──────────────────────────────────────┘
分類:PHP
Apache/PHPの設定
2016年12月02日
「httpd.conf」における以下の記述が肝。
┌──────────────────────────────────────┐
│LoadModule php5_module "C:\PHP\php5apache2_4.dll"                           │
│AddHandler application/x-httpd-php .php                                     │
│PHPIniDir "C:\PHP\"                                                         │
└──────────────────────────────────────┘
「C:\PHP\php5apache2_4.dll」と「C:\PHP\」は適宜変更のこと。

分類:PHP、Apache
PHP/password_hash()など
2016年11月30日
PHP5.5から導入された「password_hash()」等の暗号化関係の関数について。

【暗号化】
  「password_hash()」は暗号化するための関数である。
┌──────────────────────────────────────┐
│$暗号文 = password_hash($平文, PASSWORD_DEFAULT);                           │
└──────────────────────────────────────┘
  暗号化結果($暗号文)は、現状は60文字のハッシュ値となるが、
  格納する領域は将来的な拡張に備え255文字あたりにした方が無難。

【照合】
  「password_verify()」は照合するための関数である。
┌──────────────────────────────────────┐
│if (password_verify($平文, $暗号文)) {                                      │
│    echo '一致する';                                                        │
│} else {                                                                    │
│    echo '一致しない';                                                      │
│}                                                                           │
└──────────────────────────────────────┘

【暗号文のレベルを上げる】
  暗号文の難易度レベルは、コストに比例するので、
  使用するハードに適したコストのレベルにしなければならない。
  (難しすぎると処理が重くなり使いものにならない)
  但し、ハードを交換して性能が上がった場合には、レベルをあげたくなる。
  この場合は、以下の方法をとる。
┌──────────────────────────────────────┐
│// まず暗号文と照合し、平文を確認                                           │
│if (password_verify($平文, $暗号文)) {                                      │
│    $options = array('cost' => 11);  // 既定より一つ上のレベルのアルゴリズム│
│    // その暗号文が一つ上のレベルのアルゴリズムを満たさないか?             │
│    if (password_needs_rehash($暗号文, PASSWORD_DEFAULT, $options)) {       │
│        // 満たしていなければそのレベルで暗号文を再生成                     │
│        $暗号文 = password_hash($平文, PASSWORD_DEFAULT, $options);         │
│    }                                                                       │
│}                                                                           │
└──────────────────────────────────────┘
  「password_needs_rehash()」は暗号のレベルを判断するための関数である。


【暗号内容確認】(暗号化前の平文は確認できないが)
  「password_get_info()」は暗号のレベル等の情報を確認するための関数である。
┌──────────────────────────────────────┐
│$暗号内容に関する連想配列 = password_get_info($暗号文);                     │
└──────────────────────────────────────┘
分類:PHP
PHP/HTTP500内部サーバエラー調査
2015年09月01日
再現できるなら、まずエラーを見てみよう。
┌──────────────────────────────────────┐
│ini_set('display_errors', On);                                              │
│error_reporting(E_ALL);                                                     │
└──────────────────────────────────────┘
PHPソースコードの冒頭に以下の処理を埋め込めばよい。

画面にエラーメッセージが表示されるはず。
分類:PHP
MSSQL/レコードなしを返却
2015年08月31日
ストアドプロシージャでレコードを返すことになっているものの
条件分岐であきらかにレコードを返すものがない(0件レコードを返す)という時に
ダミーで0件レコードを返却したいが、適切な方法というのは見当たらない。

ということで、いくつか候補を考えてみた。
┌──────────────────────────────────────┐
│SELECT 1 WHERE 1 <> 1;                                                      │
├──────────────────────────────────────┤
│SELECT 0 WHERE 0 <> 0;                                                      │
├──────────────────────────────────────┤
│SELECT NULL WHERE NULL IS NOT NULL;                                         │
└──────────────────────────────────────┘
上に行くほど直感的、下に行くほど論理的ていう並びにしてみた。

とりあえず一番下のを推奨としたい。
分類:MSSQL
ACID特性
2015年08月29日
トランザクション処理に求められる四つの特性
┌───────┬──────────────────────────────┐
│原子性        │全て実行されるか、もしくは全て実行されないか                │
│   (Atomicity)│(中途半端な実行はありえない)                                │
├───────┼──────────────────────────────┤
│一貫性        │整合性のとれた状態で全て完了する(全実行)か、                │
│ (Consistency)│さもなくば整合性のとれた最初の状態に戻る(全不実行)か        │
├───────┼──────────────────────────────┤
│独立性        │処理中の中途半端な状態は完了まで外部へは非公開となる        │
│   (Isolation)│外見えは処理開始前に見える(もちろん中見えはリアルタイム反映)│
├───────┼──────────────────────────────┤
│永続性        │処理が完了(全実行もしくは全不実行)したら                    │
│  (Durability)│その結果は確定して記録される                                │
└───────┴──────────────────────────────┘
トランザクション処理とは、処理をグループ化して、
すべて成功しないと個別に成功したものも含めて連帯責任で失敗とみなし
処理を行わなかったことにする(処理開始前に戻す)こと
これにより、各種整合性が維持される
分類:設計
ディスクリート系製造業とプロセス系製造業
2015年08月28日
・ディスクリート系製造業…固体を扱う主に組立加工型の製造業
・プロセス系製造業      …流体を扱う主に化学合成型の製造業
分類:経営学
前へ 1 … 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 … 156 次へ