MW211 EXIT

devlog
PHP/ファイル出力したい場合
2012年03月17日
「$変数」にひたすら文字列を格納したものを、ファイル出力するには、
「file_put_contents()」が簡単だ。

こんな感じ。
┌──────────────────────────────────────┐
│file_put_contents('C:/xxxx/xxxx.txt', $変数);                               │
└──────────────────────────────────────┘
とっても簡単。
分類: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、注意
秀丸/正規表現の最長一致の原則
2012年03月15日
秀丸エディタの正規表現は「最長一致の原則」に従っている。
「【a】【b】」の場合、「【.+】」とすると
「【a】」ではなく「【a】【b】」までが該当する。

最短一致にするにはどうすればよいか?

「【.+?】」と「+」(もしくは「*」)の後ろに「?」をつけるのが
一般的な正規表現の最短一致指定だ。

ただ「【[^】]*】」という方法もある。

こちらだと「【[^】]*】(?!【)」というのも効く。
→【b】だけ検出してくれる。

「【.+?】(?!【)」だとこれが効かないようだ。
→「【a】【b】」を検出してしまう。
分類:秀丸エディタ、正規表現
PHP/php.iniにおけるセッション関係の設定
2012年03月14日
主なものは以下のとおり。
┌────────────┬─────────────────────────┐
│session.save_path       │セッションファイルの保存先                        │
├────────────┼─────────────────────────┤
│session.name            │セッション名(PHPSESSID)                           │
├────────────┼─────────────────────────┤
│session.gc_probability  │セッションファイル破棄確率(分子)                  │
├────────────┼─────────────────────────┤
│session.gc_divisor      │セッションファイル破棄確率(分母)                  │
├────────────┼─────────────────────────┤
│session.gc_maxlifetime  │セッションファイル破棄時間(秒)                    │
├────────────┼─────────────────────────┤
│session.cookie_lifetime │クライアント側クッキーの生存期間(秒)              │
├────────────┼─────────────────────────┤
│session.cookie_path     │クッキーが有効なパス                              │
├────────────┼─────────────────────────┤
│session.cookie_domain   │クッキーが有効なドメイン名                        │
├────────────┼─────────────────────────┤
│session.use_cookies     │セッションIDの保持に、クッキーを利用するのか      │
├────────────┼─────────────────────────┤
│session.cache_limiter   │キャッシュ有無                                    │
│                        │・nocache =キャッシュ無                          │
│                        │・private =ブラウザにキャッシュ                  │
│                        │・public  =キャッシュサーバにもキャッシュ        │
├────────────┼─────────────────────────┤
│session.cache_expire    │キャッシュ期間(分)                                │
└────────────┴─────────────────────────┘
分類:PHP
PHP/タイムアウト延長
2012年03月13日
「Maximum execution time of ■ seconds exceeded」エラーが発生した場合の対処方法
無限ループ対策のタイムアウトにひっかかったので、
タイムアウト時間を延長してあげればよい。

プログラムで対処する場合。
┌─────────────────────────────────────┐
│set_time_limit(■);                                                       │
└─────────────────────────────────────┘

「php.ini」の設定を変更する場合。
┌─────────────────────────────────────┐
│max_execution_time = ■;                                                  │
└─────────────────────────────────────┘

「httpd.conf」の設定を変更する場合(「.htaccess」でもOK)。
┌─────────────────────────────────────┐
│php_value max_execution_time ■;                                          │
└─────────────────────────────────────┘
分類:PHP
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、注意
CSS/ボタン
2012年03月09日
リンク文字(aタグ)にカーソルをもっていくと、指マークになる。
ボタンについても同様にしてあげるといいかも。
ってことで、それを実現するCSSは「style="cursor:pointer"」だ。

ただし、無効なボタン(「disabled="disabled"」のボタン)の場合は
指マークにしない方が親切だろう。
この場合、CSSを定義しないか「style="cursor:auto;"」を定義する。
分類:CSS
Smarty/textareaタグを使う場合の注意
2012年03月08日
Smartyでtextareaタグ中に初期値を表示する場合に
以下のように続けて書くとダメ。
┌──────────────────────────────────────┐
│<textarea>{$初期値}</textarea>                                              │
└──────────────────────────────────────┘

なぜなら、その値の先頭に空改行が意図的に混じっていた場合、
textareaタグ直後の改行ということで無視されてしまうのだ。

「参照→そのまま更新→参照→そのまま更新→…」を繰り返すと
先頭の空改行がだるま落としの如く一行ずつ減っていってしまう。

これを解消するには、textareaタグの後に必ず改行を入れてあげる。
┌──────────────────────────────────────┐
│<textarea>                                                                  │
│{$初期値}                                                                   │
│</textarea>                                                                 │
└──────────────────────────────────────┘
分類:Smarty
jQuery/クラスの追加削除
2012年03月07日
┌──────────────────────────────────────┐
│$(this).toggleClass("CSS");                                                 │
└──────────────────────────────────────┘
上記と下記は同一。
┌──────────────────────────────────────┐
│if ($(this).hasClass("CSS")) {                                              │
│  $(this).removeClass("CSS");                                               │
│} else {                                                                    │
│  $(this).addClass("CSS");                                                  │
│}                                                                           │
└──────────────────────────────────────┘
分類:jQuery
前へ 1 … 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 … 156 次へ