MW211 EXIT

devlog
競馬オッズの注意点
2012年04月04日
単勝一番人気は「オッズが最小のもの」ではない。
一票も得票がない「0倍」が一番人気になってしまう危険性がある。

よって、「オッズが0倍を除く最小のもの」としなければならない。

「得票数が最大のもの」だと安全なのだが、
たいていはオッズの方のみが公開されてるものだ。
分類:注意、設計
正規表現/否定の勘違い
2012年03月31日
否定、つまりその文字以外を該当させるのはこんな感じ。
「[^■]」

「a」でも「b」でもないってしたい場合は、この中に並べればよい。

「[^a^b]」
で、これは誤り。

「[^ab]」
が正解。

先頭に一回否定「^」を書けば、以降すべて否定の対象になる。

「^+検索対象文字」ではなく、「[^]」をセットとして覚えてしまおう。
分類:注意、正規表現
正規表現/前に特定の文字がつかないものを検索
2012年03月27日
「a」単体や、「ac」の「a」は検索できるけど、「ab」の「a」は検索できない
つまり、後ろに「b」が続かない「a」を検索する正規表現は以下の通り。
┌──────────────────────────────────────┐
│a(?!b)                                                                      │
└──────────────────────────────────────┘

ではこの反対は(前に「b」がない「a」)というと…
┌──────────────────────────────────────┐
│(?!b)a                                                                      │
└──────────────────────────────────────┘
ではない。
→これだと、「ba」の「a」も該当してしまう。

正解はこれ。
┌──────────────────────────────────────┐
│(?<!b)a                                                                     │
└──────────────────────────────────────┘
と、「<」がいれてあげなければならない。

なんでも「a」を基準にして、さかのぼって左側を見てあげなければならないので
さかのぼりに記号「<」が必要らしい。
分類:注意、正規表現
PHP/クッキー
2012年03月25日
クッキーの設定方法と参照方法は以下のような感じ。
┌──┬───────────────────────────────────┐
│設定│setcookie('クッキー変数名', 値);                                      │
├──┼───────────────────────────────────┤
│参照│$_COOKIE['クッキー変数名']                                            │
└──┴───────────────────────────────────┘

ただし、設定されるのは、そのスクリプトが終了した時なので、
以下のような場合、設定された値はechoされない。
┌──────────────────────────────────────┐
│$変数 = '値';                                                               │
│setcookie('クッキー変数名', $変数);                                         │
│echo $_COOKIE['クッキー変数名'];  // →''                                   │
└──────────────────────────────────────┘

なので、そのスクリプトでクッキー変数の値を使いたい場合は、
設定元を(分岐して)使う必要がある。
┌──────────────────────────────────────┐
│$変数 = '値';                                                               │
│setcookie('クッキー変数名', $変数);                                         │
│echo $変数;  // →'値'                                                      │
└──────────────────────────────────────┘

ちなみに、以下のように直接代入すると、
そのスクリプト内ではクッキー変数に値が代入されているが、
実際のクッキーの中身には値は入らないので、次画面以降では値はクリアされてしまう。
┌──────────────────────────────────────┐
│$_COOKIE['クッキー変数名'] = '値';                                          │
│echo $_COOKIE['クッキー変数名'];  // →'値'                                 │
└──────────────────────────────────────┘
一瞬設定が成功したかのような錯覚に襲われるので注意が必要。
分類:PHP、注意
PDO/トランザクションとPDO
2012年03月16日
PDOでトランザクション処理を行う場合、
「PDO::beginTransaction()」などで処理を開始したりするわけだが、
注意すべきことがある。

通常、トランザクション処理中にSQLエラーが発生すると
最後にCOMMITしても自動でROLLBACKしてくれる。

だが、PDOレベルでエラーが発生するとSQLエラーを検出せずCOMMITしてしまう。

例えば、プレースホルダの記述ミスなんかがPDOレベルのエラーだ。

例えば、以下のようなSQL文で、文中に誤りがあったとする。
┌──────────────────────────────────────┐
│UPDATE "表" SET "列" = :プレースホルダ;                                     │
└──────────────────────────────────────┘

以下の場合は、SQL文としては成立し、SQLエラーとなるのでROLLBACKしてくれる。
┌──────────────────────────────────────┐
│UPDATE "表" SET "列×" = :プレースホルダ;                                   │
└──────────────────────────────────────┘

ところが、以下の場合、プレースホルダ不正によりSQL文成立まで至らないので
ROLLBACKしてくれない。
┌──────────────────────────────────────┐
│UPDATE "表" SET "列" = :プレースホルダ×;                                   │
└──────────────────────────────────────┘
分類:PDO、注意
HTML/ファイル入力欄の注意点
2012年03月11日
ファイル入力欄(inputタグのfile属性)について、
IEの場合、ファイルを直接入力できるが
それが不正な内容だと、セキュリティの関係から、submitが実行されない。

もし、JavaScriptでsubmitしようものならエラーとなってしまう。

FirefoxやChromeでは、直接入力できない(ファイル選択ダイアログが表示される)ので、
IEの場合も、以下のように直接入力を拒否してあげるのも一つの方法だ。
┌──────────────────────────────────────┐
│<input type="file" name="名前" onkeydown="return false;"/>                  │
└──────────────────────────────────────┘
分類:注意、HTML
CSS/入力欄の右詰時の注意
2012年03月10日
入力欄(inputタグのtext属性)にて、数値とかだからと
右詰(「text-align:right;」)にした場合、
IEだと、カーソルの点滅が枠の右線とかぶってしまう。
つまり、点滅がみえない。

こんな時は、若干右に余白を空けてあげればよい。
「padding-right:0.1em;」とかね。
分類:CSS、注意
PHP/foreachの参照渡しの場合の注意点
2012年02月29日
┌──────────────────────────────────────┐
│foreach ($a as &$value) {                                                   │
│  $value ='z';                                                              │
│}                                                                           │
└──────────────────────────────────────┘
foreachの参照渡しの場合の注意点。

┌──────────────────────────────────────┐
│foreach ($a as &$value) {                                                   │
│  $value ='z';                                                              │
│}                                                                           │
│unset($value)                                                               │
└──────────────────────────────────────┘
unset()すること。

とにかく絶対にだ。
分類:PHP、注意
JavaScript/置換の罠
2012年02月10日
「.replace(置換前,置換後)」は一文字しか置換しないので注意。

「"いっぱい".replace("い","お")」の結果は、
「おっぱい」であって「おっぱお」ではない。

全部置換したい場合には正規表現を使ってしまえ。
「"いっぱい".replace(/い/g,"お")」

「g」パラメータを使う。
また、「"」で囲う必要がないのにも注意。
分類:注意、JavaScript
CSS/空欄に文字を追加表示する時の注意点
2012年02月07日
空欄(横幅なし)のdivタグに、JavaScriptで文字を(追加)表示させると
一文字ずつ自動改行されて、縦表示になるブラウザがあるようだ。
#ChromeとSafariがそれ(InternetExplorer、FireFox、Operaは大丈夫)

回避策としてはdivタグにCSSとして「white-space:nowrap;」を
定義してあげるとよいようだ。
分類:CSS、注意
前へ 1 2 3 次へ