最近WordPressのバージョンアップを3.8へアップデートしてサイトを表示してみたら、プラグインを使用している箇所で「Warning: Missing argument 2 for wpdb::prepare()」というワーニングメッセージが表示されていました。どうもこの事象は3.5へアップデートした時から発生している事象のようで、当方は3.4→3.8へのバージョンアップだったので今頃遭遇しました・・・。
放置しても動作はしますが、見栄えが悪いので対処方法を調べてみました。
原因
WordPressの3.5以上では「wp-db.php」で定義されているFunction「prepare」の引数の数が2つ必要になっています。
|
function prepare( $query, $args ) { |
今回Warningが発生した原因はこの「prepare」をプラグインのphpから呼び出す際に引数が1つしか指定されていない為にWarningが表示されたみたいです。
対処方法
原因は明確なので、function「prepare」を使用しているphpを修正します。function「prepare」を使用している箇所へダミー引数となる「null」を2つ目の引数として指定すれば対応完了です。(もちろんプラグインが正式対応したらバージョンアップしましょう)
変更前
|
$wpdb->get_row($wpdb->prepare($sql)); |
変更後
|
$wpdb->get_row($wpdb->prepare($sql, null)); |
Webページを作成していると背景色や文字色を変更する際、画面上のこの色に合わせたいなあと思うことが良くあるかと思います。
こういう場合には「FE – Color Palette」というフリーソフトを使用するとカラーコードが簡単に取得出来るので非常に便利です。
ダウンロード先
FE – Color Palette Ver.1.12 (LZH形式・42.1KB)
使用方法
- ダウンロードしたファイルを任意のフォルダへ解凍します。
- 解凍したフォルダ内にある「FE – Color Palette.exe」をダブルクリックして起動します。
- 「画面の色」ボタンを押下すれば現在ディスプレイに表示されているカラーコードの取得が可能となります。
特徴
- 画面上でイメージをリアルタイムに確認できる。
- HSV形式・RGB形式での色指定が可能。
- 128個のパレットをもち、さらに自由にパレットを作成・保存することができる。
- 作成した色は、目的に合わせた形(HTML、RGBマクロ、DWORD)で簡単にクリップボードにコピーできる。
- 画面上の任意の点の色を取得することができる。
- 使いやすいユーザーインターフェース。
- ファイルサイズが小さく、動作も軽快。
- 外部ファイルは一切必要としない。
よくテストデータ作成などで、中身は何でもいいから同じファイルを複数作成したくなる場合があります。10件や20件位なら1件ずつコピーして作成しても良いですが、何百件・何千件という単位で必要になる場合にはとても手でコピーなどしてられません。こういう時にbatファイルを作成すれば指定数分のファイルを簡単にコピーする事が出来ます。
cpyFile.bat
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
echo off set n=0 for %%f in ( *.txt ) do call :copyFile %%f exit /b :copyFile if "%n%"=="10" (goto :finish) set /a n=n+1 set /a exp=1000+n copy %1 %~n1%exp:~1%%~x1 goto :copyFile :finish set n=0 goto :EOF |
実行前
以下は「cpyFile.bat」実行前のファイル状態です。
実行後
コピー元ファイル「コピー元ファイル.txt」を用意し、「cpyFile.bat」を実行した後の状態です。
Webページを作成していると、ブラウザバック(ブラウザの戻るボタン押下)時に有効期限切れのメッセージが表示される事があります。今回はこの事象についてまとめてみようと思います。
何故「ページの有効期限切れ」対策が必要なのか?
そもそも何故、ページの有効期限切れ対策が必要となるのでしょうか?
正直、個人的にはブラウザによるセキュリティ対策で個人情報をキャッシュさせない為の制御なので、ブラウザ仕様になるのでAP側では対処不要と考えています。
それでも業務用APなどではクライアント側が納得してくれないケースも多いと思われます。それは何故でしょうか?
- まず、格好と見栄えが悪い。
- 戻るボタンを押したのだから、当然直前の入力画面へ戻るだろうと勝手に思い込んでいる。
- ユーザから見れば意味不明の画面が表示されているので、何か異常があったのかと思う。
大体、こんなところでしょうか。
「ページの有効期限切れ」が発生する原因
- POSTでパラメータ送信している
- SESSIONを使用している
- 上記を使用しているページへ戻ろうとしてブラウザの「戻る」ボタンを押下した
ブラウザ側では「ページの有効期限切れ」を表示する際、どこをチェックするのか
多くのブラウザではページ有効期限を確認する際、以下の「HTTPヘッダー」の設定値を確認します。
- Last-Modified:最終更新日
- Expires:有効期限
- pragma :HTTP1.0仕様に基づくデータのキャシュ制御オプション
- Cache-Control:HTTP1.1仕様に基づくデータのキャシュ制御オプション
ページの有効期限切れが発生した場合、まずHTTPヘッダーの設定値が現在どうなっているか確認して下さい。
対策
クライアント側
サーバ(AP)側
- ブラウザの戻るボタンを無効又は非表示にしてしまう。
仮に有効期限切れの事象を回避出来てたとしても、DB更新後にブラウザバックされた場合など、ブラウザバックによって他にも問題が出てくる可能性が高いと思われます。AP側で一番良い対処法と思われるのはブラウザの戻るボタンがユーザの目立つ位置に見えているからつい押下してしまうので、戻るボタンを無効化又は非表示にしてしまうことが一番確実な対処方法と思われます。但しクライアントが納得すればの話ですが。
- POSTではなくGETを使用する。
ブラウザではPOSTは警告を出力しますが、GETではそのまま画面遷移します。但し、POST時にパスワードなどの個人情報や大量のデータを送信している場合はオススメしません。
- HTTPヘッダーの設定値を見直す。
HTTPヘッダーの設定値を変更する事で、ブラウザ側の有効期限チェックを回避する事が出来ます。
最近、JavaScriptやjQueryを使用する機会が増えてきたので、JavaScript関連の資格が無いか調べてみたら「マイクロソフト認定資格試験 (MCP) 70-480」という試験があるようなので少し調べてみました。試験内容の大半はJavaScript及びjQueryらしいので少し勉強すればなんとかなるかも。
資格名
マイクロソフト認定資格試験 (MCP) 70-480
試験番号
70-480
試験概要
HTML5 と JavaScript および CSS3 との組み合わせによるアプリケーションのプログラミングに関するスキルおよび知識の評価を目的としています。
受験対象者
この試験の受験対象者は、JavaScript を使用したさまざまなアプリケーション タイプおよびハードウェア/ソフトウェア プラットフォームに欠かせないビジネス/アプリケーション ロジックのプログラミングで 1 年以上の実務経験が必要です。また、受験対象者は、HTML を使用した、オブジェクト指向のイベント ドリブン プログラミング モデルの開発経験が最低 1 ~ 2 年必要です。
受験対象者は、以下のことについて十分に理解している必要があります。
- プログラム フローとイベントの管理
- 非同期プログラミングとスレッド処理
- データの入力規則と JQuery などのデータ コレクションの使用
- エラーと例外の処理
- 配列とコレクション
- 変数、演算子、および式の使用
- プロトタイプとのメソッドの使用
- 条件判断ステートメントと繰り返しステートメント
試験申込先
PROMETRIC
試験時間
140分
受験料
19,000円(税抜)
問題数
40問
合格ライン
700点
HTMLのリンクからネットワーク上の共有PC(CIFS)へアクセスしたいという要望があった場合の対処方法を記載します。
HTMLリンクはfile URI形式で設定
UNCパスでは「\\common\dir\test.xls」というエクスプローラでよく見かける記述となりますが、file URIのパスでは「file://///common/dir/test.xls」という記述形式となります。このfile URI形式でHTMLではリンクを設定します。
file URIパスへのリンクが有効になるようにブラウザ毎に設定
メジャーなブラウザ(IE以外)の多くはセキュリティ的観点から、file URIのリンクをクリックしてもリンク先を表示出来ない設定となっています。これを解除するためにはブラウザ毎に対応する必要があります。
Internet Explore
IEの場合、セキュリティ対策が甘いのか何も設定する必要はありません。
Firefox
- 「user.js」ファイルを作成
FireFoxの場合は設定が少し面倒で、プロファイルへ許可するアドレスを追加する必要があります。その設定ファイルをJavaScriptで以下の様に記述します。
|
user_pref("capability.policy.policynames", "localfilelinks"); user_pref("capability.policy.localfilelinks.checkloaduri.enabled", "allAccess"); user_pref("capability.policy.localfilelinks.sites", "http://common.dir.co.jp"); |
※”http://common.dir.co.jp”の箇所 をリンクを許可したいサーバのアドレスへ変更して下さい。複数ある場合はスペースで区切って記述します。
- FireFoxのプロファイルフォルダへ「user.js」ファイルを配置
配置先「%AppData%\Mozilla\Firefox\Profiles\(英数字のランダム文字列).default」
※既に「user.js」ファイルが存在している場合は記述を追加して下さい。
- FireFoxを再起動
FireFoxを再起動すると「user.js」ファイルへ記述した内容が「prefs.js」(Windowsで言うレジストリのようなもの)へ追加されます。
「駑馬十駕」 IT系情報を中心に調べた事をコツコツ綴っています。