Pages

2016年11月22日火曜日

Preloaded HSTS を登録する

HSTS に対応してもHTTPで接続してレスポンスで判断はする。
ブラウザ側でできれば最初から判断してほしいって事で Chrome 側で判断してもらうには

HSTS (HTTP Strict Transport Security) の導入

を見ると https://hstspreload.appspot.com/ から登録すれば良いみたいなので早速登録してみました。

確認はChromeブラウザで chrome://net-internals/#hsts の Query Domain でOKみたい。

2016年6月28日火曜日

CakePHP3 フォーム利用せずに hasMany 指定のテーブルに追加して save する

何か意味不明なタイトルになりましたが。。

今回シェル内でhasManyに指定されたTagsにデータを追加する事をsave一つでやりたかったんです。

何かしっくりこない気がまだしていますが、とりあえずこんな感じかな。。
$article = $articles->get(1, ['contain' => 'Tags']);

$data = $article->ToArray();
$data['tags'][] = [
  'name' => 'Tag Name',
];

$articles->patchEntity($article, $data, ['associated' => 'Tags']);
$articles->save($article);

2016年6月3日金曜日

iOS PowerPointファイルをsafariで開いて戻るとフォントが大きくなっちゃった!

そう、そんな時はこれ!

body {
  -webkit-text-size-adjust: 100%;
}

上記を指定してあげれば対応できました。

2016年5月29日日曜日

Chrome で Selenium を利用する

FireFox の拡張機能で提供されてる Selenium を Chrome でも使いたい。。

けどまだ Chrome ウェブストア の 拡張機能(https://chrome.google.com/webstore/category/extensions) で提供してくれない。。



しばらく待ってたけど、まだ提供されないので、もう 検索したら良く出てくる WebDriver 入れてFireFoxの拡張機能から実行するってやつ入れちゃいました。。


簡単に手順まとめ

  1. ダウンロード
  2. 設置
  3. サーバー起動
  4. FireFox起動
  5. テストケース実行

手順


ダウンロード

Selenium - Downloads

http://www.seleniumhq.org/download/


必要なファイル
  • Selenium Standalone Server (version 2.53.0)
  • The Internet Explorer Driver Server (version 2.53.1)
  • Third Party Drivers, Bindings, and Plugins > Google Chrome Driver > 2.21 > chromedriver_win32.zip (version 2.21)
※ ()内は自分が入れた時のバージョンです。

設置

設置はファイルをどこかに置くだけの簡単な作業

今回は D:\app\selenium\server というフォルダーを作成して、そこの以下を保存。


  • selenium-server-standalone-2.53.0.jar
  • IEDriverServer.exe
  • chromedriver.exe

サーバー起動

コマンドプロンプトを立ち上げて、以下を実行するとサーバーアプリが起動する。


  D: \
  cd \app\selenium\server \
  java -jar selenium-server-standalone-2.53.0.jar -Dwebdriver.ie.driver=.\IEDriverServer.exe
これでサーバーは起動する。


FireFox起動

FireFox を起動して Selenium を立ち上げる。

※ Selenium 立ち上げたらFireFoxのブラウザ側は閉じてもOK。


テストケース実行

後は、いつも通りテストケースを実行すると、Chromeのウィンドウが新規作成されて、実行されていく。

何か問題があれば、Seleniumのログとコマンドプロンプトを確認する。



2016年5月25日水曜日

CakePHP3 文字数チェックで改行コードがWindowsの時は2文字扱いになる

簡単に予想するからに

環境別改行コード

Windows CR+LF
Macintosh CR
Linux LF

って感じで Windows だけ2バイトになってるからだろう。。
って事で Validation.php を確認すると

public static function maxLength($check, $max)
{
    return mb_strlen($check) <= $max;
}
やっぱり。。 って事で AppController.php(デフォルトでは無い?) の initialize() に
array_walk_recursive($this->request->data, function(&$item, $key){
    // 改行コードをLFに統一
    $item = preg_replace("/\r\n|\r|\n/", "\n", $item);
});
を追加して今回は対応。

2016年3月21日月曜日

Bootstrap3 と jQuery UI のtooltip が衝突してる

 jQuery UI の tooltip 使おうと思ったらなんか想像とは違う結果が。。

って事で調べたら Bootstrap にも同じJS関数が用意されていてそいつを上書きしてしまっている様子。

という事で以下のように記述して、jQuery UI の方を uitooktip という名前で利用できる事を見つけたので、これで対応。


        



2016年3月1日火曜日

JavaScript n日ごとに開始位置を切り替える

PHPでやるのも面倒なので、JavaScriptで実装。

4日毎だとして、

var start = Math.floor(Math.floor(new Date().getTime() / 1000) / (60*60*24)) % 4;
console.log(start);

こんな感じかな。

2016年1月8日金曜日

CakePHP2 & CakePHP3 の alphaNumeric は日本語も通過する

CakePHP2 & CakePHP3 の alphaNumeric が日本語も通過しちゃうので、内容を確認したメモ


ソース

public static function alphaNumeric($check) {
  if (is_array($check)) {
    extract(self::_defaults($check));
  }

  if (empty($check) && $check != '0') {
    return false;
  }
  return self::_check($check, '/^[\p{Ll}\p{Lm}\p{Lo}\p{Lt}\p{Lu}\p{Nd}]+$/Du');
}

パターン

http://php.net/manual/ja/regexp.reference.unicode.php

\p{Ll} | 小文字アルファベット
\p{Lm} | 擬似文字
\p{Lo} | 大文字小文字の区別や修飾文字を持たないその他の文字
\p{Lt} | タイトル文字
\p{Lu} | 大文字アルファベット
\p{Nd} | 多言語における10進数字

パターン修飾子

D (PCRE_DOLLAR_ENDONLY)

この修飾子を設定すると、パターン内のドルメタ文字は、検索対象文字列の 終わりにのみマッチします。
この修飾子を設定しない場合、ドル記号は、 検索対象文字列の最後の文字が改行文字であれば、その直前にもマッチします。
この修飾子は、m を設定している場合に無視されます。
Perl には、この修飾子に等価なものはありません。

u (PCRE_UTF8)

この修正子は、Perl 非互換な PCRE の機能を有効にします。
パターンと対象文字列は、 UTF-8 として処理されます。
この修正子は、UNIX では PHP 4.1.0 以降、Win32 では PHP 4.2.3 以降で 使用可能です。
また、PHP 4.3.5 以降では、パターンの UTF-8 としての妥当性も確認されます。
な対象文字列を preg_* 関数に渡しても、何もマッチしません。
無効なパターンを渡すと、E_WARNING レベルのエラーが発生します。
5オクテットおよび6オクテットの UTF-8 シーケンスは、PHP 5.3.4 以降 (PCRE 7.3 2007-08-28 以降) では無効とみなされます。
以前のバージョンでは、これらも UTF-8 として有効だとみなされていました。

※ 上記説明解りにくい人はこのサイトの説明見たら解るかも?
http://pentan.info/php/reg/use.html

処理内容

つまり上記文字のどれかが1回以上利用された文字だけで構成されたものかをチェックする

Followers