PHP は、「PHP: Hypertext Preprocessor」の略です。(^^;; PHPの中の「PHP」は、「Personal Home Page Tools」の略だそうです。([[参照:http://ja.wikipedia.org/wiki/PHP_programming_language]])

#contents
#ls2

#br

** PHPによるHTTP認証のフックについて [#ffce75d9]
-PHPをIIS上で動作させたときには、PHP_AUTH_*関数が正常に動作しないので、BASIC認証ができない(認証されない)ことが判明した。 - 2003.11.20
-cf. http://nxweb.dyndns.org:8080/php/manual/features.http-auth.html

** PHPにおける文字コード [#z29e99c7]
-PHPにおいては、SJISは使用すべきではないらしい。ISO-8859-*、EUC-JP、UTF-8がよいのだそうだ。
-cf. http://www.php.net/manual/ja/ref.mbstring.php
-当サイトの MySQL DBの文字コードはsjisであり、WindowsもWindows-31Jであり、よってPHPの内部コードもSJISとしている。#特に問題ないよね?

** Windows版Apache2とPHP4.3利用時の問題 [#hbf57b1a]
-Apache2のWindows版としてバイナリ配布されているものはWinNT MPM動作ですが、winsock2の問題で、[[Win32DisableAcceptExを設定:http://jomora.bne.jp/wp/?p=912]]する必要がある。#これはApache2の不具合
-その結果、なんらかのメモリリークが発生しているらしく、[[Fatalエラーが発生し、Apache2の子プロセスが自動再起動:http://jomora.bne.jp/wp/?p=951&c=1]]してしまう。
-不具合発生条件は、(1)Windows版Apache2でMPM=winnt or win32、(2)PHP4とsapi連携、更に、(3)Win32DisableAcceptExの設定 ではないかと思っています。
-マルチスレッド環境でPHPを使うときには、MPM=preforkにしろ、って[[PHPマニュアル:http://php.s3.to/man/install.apache2.html]]にも記述がありますね。
-PHPコード内にThread Safeでない部分が含まれているからなのでしょうか?ZTSを使うとどうなるのか知りたいけど…。

** PHP4.3とMySQL4利用時の問題 [#ee421d2f]
-PHP4.3から、「default-character-set=sjis」と設定されたMySQL4.0または4.1にアクセスすると、c:\mysql\share\charsets\Index と c:\mysql\share\charsets\sjis.conf を必要としてしまう。しかも、MySQLのインストール場所に寄らず、必ずこのロケーションのようです。(++)
-PHP5では不要になるらしい。(参考:[[いとさん:http://homepage1.nifty.com/yito/anhttpd/faq/mysql.html]])

** addslashes()関数を使った場合の不具合 [#m03de786]
-[[SQLインジェクション対策:http://www.pat.hi-ho.ne.jp/dimension/tips/tips_sqlinjection.shtml]]として、[[addslashes()関数:http://jp2.php.net/manual/ja/function.addslashes.php]]を使っているPHPアプリケーションでは、DBインサート時に、0x005cを含む全角文字に'\'が付加してしまうことがある。(参考:[['\'(0x005c)による文字化け:http://www.kent-web.com/pubc/jcode/]]) 例:「表」-> 「表\」
-ほとんどの場合は、magic_quotes_gpc=on 設定のために、エスケープ処理を2重にしてるからだそうな…。うちもそうでした。(^^;;

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS