| @技術/プログラミング

 長らく悩まされたRSSボタンが表示されなくなる現象の原因が分かりました。

 「サイト管理」の「環境設定」で「出力文字コード」や「SQL内部エンコード」をいじって文字化けを起こすと、きちんとした組み合わせに戻してもRSSボタンが表示されなくなるようです。これを解決するには、データーベースの"p_config"というテーブルを削除してまっさらなものと置き換えてやれば良いです。

 また あれこれポップアップ については、ArekorePopup.jsが悪さをして、FirefoxなどWebKit以外のブラウザでP_BLOGの管理画面にログイン出来なくなることが分かりました。P_BLOGの公式フォーラム によると、Lightbox JS でも同じようなトラブルが発生するそうです。P_BLOG利用者で「サイト管理」にログイン出来ないトラブルに悩まされていた人は、これらのツールの利用を取りやめてみると問題が解決するかも知れないですよ。

 さらにアマゾンISBN変換プラグインで、一部の商品にリンクするとSQL Syntax Errorが表示される原因が分かったような気がします。素人の推測なのですが、商品のタイトルに半角の「'」が含まれていると、SQL syntax errorが出るっぽいです。この件についてISBN変換プラグイン製造元の 福耳 Cafeの掲示板 に書き込んでみたのですが、解決方法はあるのでしょうか? タイトルに「'」を含むDVDやCDにリンクを張れないのはちょっと不便です。

<追記>

 ISBN変換プラグインのエラーについてですが、先日買ったPHP辞典を眺めていたら、addslashes関数というものに遭遇しました。これを用いることで、「'」によってエラーが生じることを防げるらしいです。で、自分でこの処置を施そうとplg_isbn.inc.phpを開き、224行目辺りのところを以下のように改変してみました。

    if (isset($r['ProductName'])) {
        $title = htmlspecialchars($r['ProductName']);
        $title = addslashes($r['ProductName']); /*書き加えた部分*/
    }

 で、どうなったか? 変わりません(笑) 相変わらずSQL syntax errorが出ます。そもそも元から記述してあるhtmlspecialcharsという関数自体が「'」や「<」といった特殊文字をHTMLエンティティに変換(「'」→「&#039;」、「<」→「&lt;」など)するものらしく、デフォルトで「'」の問題に対応してあるっぽいので、addslashesを書き加える必要があるのかどうかも分かりません。もっとPHPのことが分かるようになりたい! :-(

<さらに追記 06/6/9 16:22>

 福耳 Cafe さんにてバグが修正された最新版のISBN変換プラグインが公開されています。