まだ、PEARのHTML_QuickFormを使っているサイトがいくつか残っていてそのサーバを変えるということでPHP5.5対応しなければならなくなった。
phpとかDBがutf8で動いていたら問題ないんだけど、10年以上前のサイトで文字コードはEUC-JP。
全部作り変えるのは予算・時間的に無理なので少しだけ修正して対応。
問題点:フォームに日本語が表示されない
htmlspecialcharsがPHP5.4からパラメータが変わった模様。
htmlspecialcharsで変換した結果、空文字列になってしまっている。
というわけで、今回問題があったテキスト入力のフォームのファイル2つにちょこっと手を入れる。
pear/HTML/QuickForm/element.php
pera/HTML/QuickForm/textarea.php
この2ファイルの、「htmlspecialchars($value)」のように引数1つだけを渡している部分を、
$charset = HTML_Common::charset();
htmlspecialchars($value, ENT_COMPAT, $charset)
のような感じに修正。
ずいぶん前からQuickForm2を使えといわれておりますが対応できておりません。
そのうちFuelで書き直す。
2014年6月6日金曜日
Vagrant upできない
virtual boxをアップデートした後、再起動したときのこと。
vagrant up仕様とすると以下のエラーが出て動かない。
Vagrant could not detect VirtualBox! Make sure VirtualBox is properly installed.
Vagrant uses the VBoxManage binary that ships with VirtualBox, and requires
this to be available on the PATH. If VirtualBox is installed, please find the
VBoxManage binary and add it to the PATH environmental variable.
OSは、Windows7。
環境変数のPathに、VBoxManage.exeのディレクトリ「C:\Program Files\Oracle\VirtualBox」を追加してもだめ、環境変数にVBOX_MSI_INSTALL_PATHというのもあってそれも「C:\Program Files\Oracle\VirtualBox\」。
なんか調べるとwindowsではVBOX_INSTALL_PATHを読み取るとか。
環境変数に以下を追加してvagrantできるようになりました。
変数名:VBOX_MSI_INSTALL_PATH
変数値:C:\Program Files\Oracle\VirtualBox\
vagrant up仕様とすると以下のエラーが出て動かない。
Vagrant could not detect VirtualBox! Make sure VirtualBox is properly installed.
Vagrant uses the VBoxManage binary that ships with VirtualBox, and requires
this to be available on the PATH. If VirtualBox is installed, please find the
VBoxManage binary and add it to the PATH environmental variable.
OSは、Windows7。
環境変数のPathに、VBoxManage.exeのディレクトリ「C:\Program Files\Oracle\VirtualBox」を追加してもだめ、環境変数にVBOX_MSI_INSTALL_PATHというのもあってそれも「C:\Program Files\Oracle\VirtualBox\」。
なんか調べるとwindowsではVBOX_INSTALL_PATHを読み取るとか。
環境変数に以下を追加してvagrantできるようになりました。
変数名:VBOX_MSI_INSTALL_PATH
変数値:C:\Program Files\Oracle\VirtualBox\
2014年6月2日月曜日
ldapまとめ
ldapに取り組んだとき、取っ掛かりが悪いのでメモを作ってたのを晒します。
(あくまで個人的なものです。信用しないように!)
属性名
ObjectClass属性
log level
(あくまで個人的なものです。信用しないように!)
属性名
属性名 | 値の種類 | もともと の名前 |
c | 国名 | Country |
cn | 一般名、人名 | Common Name |
dc | ドメイン名 | Domain Component |
o | 団体名 | The Organization |
ObjectClass | スキーマ | - |
ou | 部署名 | Organization Unit |
sn | 姓 | Sumame |
st | 都道府県 | State |
uid | ユーザID | User ID |
ObjectClass属性
名前 | 必須属性 |
dcObject | dc |
organization | o |
organizationalRole | cn |
organizationalUnit | ou |
account | uid |
simpleSecurityObject | userPassword |
inetOrgPerson | cn, sn |
posixAccount | uid ( accountなど構造型オブジェクトクラスと一緒に使用する必要あり ) |
posixGroup | cn |
log level
レベル | 名称 | 記録内容 |
0 | - | メッセージを出力しない |
1 | trace | slapd内部の関数のトレース |
2 | packets | パケット処理のデバック情報 |
4 | args | slapd内部の関数のトレースで引数も表示 |
8 | conns | コネクション管理 |
16 | BER | 送受信したパケット |
32 | filter | 検索フィルタ処理 |
64 | config | 設定ファイルに関する処理 |
128 | ACL | アクセス制御に関する処理 |
256 | stats | コネクション、LDAP命令、結果 |
512 | stats2 | 送られたエントリのステータス |
1024 | shell | シェルバックエンドとの通信 |
2048 | parse | エントリの解析処理 |
16384 | sync | LDAP同期レプリケーション |
32768 | none | どのログレベルにも属さないもの |
65535 | any | 全てのレベルを表示 |
ldapadd
オプション | 説明 |
-H | LDAPサーバを参照するURIを指定する。プロトコル、ホスト、ポートのみ指定できる。 指定しない場合、ldap://localhost:389となる。 |
-h | LDAPサーバを指定する。指定しない場合、ローカルホストになる ( 非奨励オプション。-Hの使用を奨励 ) |
-p | LDAPサーバのポート番号を指定する。指定しない場合、389となる ( 非奨励オプション。-Hの使用を奨励 ) |
-x | 簡易認証設定 |
-D | LDAPサーバの認証に使うDN ( バインドDN ) を指定する。指定しない場合は匿名接続となる。 |
-w | LDAPサーバの認証に使うDNのパスワードを指定する。 |
-W | LDAPサーバの認証に使うDNのパスワードをプロンプトから入力することを指定する。 |
-f | LDIFテキストフォーマットファイルを標準入力ではなく、指定したファイルから読み込む。 |
ldapsearch
オプション | 説明 |
-H | LDAPサーバを参照するURIを指定する。プロトコル、ホスト、ポートのみ指定できる。指定しない場合、ldap://localhost:389となる。 |
-h | LDAPサーバを指定する。指定しない場合、ローカルホストになる ( 非奨励オプション。-Hの使用を奨励 ) |
-p | LDAPサーバのポート番号を指定する。指定しない場合、389となる ( 非奨励オプション。-Hの使用を奨励 ) |
-x | 簡易認証設定 |
-D | LDAPサーバの認証に使うDN ( バインドDN ) を指定する。指定しない場合は匿名接続となる。 |
-w | LDAPサーバの認証に使うDNのパスワードを指定する。 |
-W | LDAPサーバの認証に使うDNのパスワードをプロンプトから入力することを指定する。 |
-b | 検索の起点を指定。例えばBaseDNに「ou=dept,dc=unix-power,dc=net」に指定した場合は上位のエントリは検索対象外となります。 |
-s [Scope] | 検索範囲を指定します。[Scope]の値は「base」「one」「sub」の3種類です。「base」はBaseDNエントリのみです。「one」はBaseDNエントリ自身と直下のエントリ、「sub」はBaseDN以下全てのエントリを指します。-sに何も指定しなければ「sub」が適用されます。 |
[Filter] | 検索フィ ルタを指定します。例えば全てのエントリを抽出するには「(objectclass=*)」を指定します。また、cn属性が「tanaka」で終わるエントリを抽出するには「(cn=*tanaka)」とワイルドカードを指定できます。その他、複数のフィルタを組み合わせたAND検索やOR検索も実行できます。例えばcn属性が「tanaka」で終わり、かつcn属性が「taro」で始 まるエントリを抽出するには「(&(cn=*tanaka)(cn=taro*))」とAND検索を表す&を使って複数指定できます。OR検索には「|」、否定記号には「!」記号を使います。 |
[Attr] | 表示対象 とする属性を指定します。例えばあるエントリのtelephonenumber属性値を表示対象にする場合はAttrにtelnephoneNumberを指定します。何も指定しなければ全ての属性値が表示されます。 |
-L | 検索結果をLDIFv1フォーマットで表示する |
-LL | 検索結果をコメントのないフォーマットで表示する |
-LLL | 検索結果をコメント無し、LDIFバージョン表示なしで表示する。 |
moodleリンク書き換え
moodleのサイトを移転してurlが変わった時のHTMLエディター内のurl等の書き換え方。
公式(http://docs.moodle.org/2x/ja/Moodle%E3%81%AE%E7%A7%BB%E8%A1%8C)の情報が古くて、 http://yourserver.com/admin/replace.phpが見つからなかった。
正しくは、
http://yourserver.com/admin/tool/replace/
とか
http://yourserver.com/yourdirectory/admin/tool/replace/
公式(http://docs.moodle.org/2x/ja/Moodle%E3%81%AE%E7%A7%BB%E8%A1%8C)の情報が古くて、 http://yourserver.com/admin/replace.phpが見つからなかった。
正しくは、
http://yourserver.com/admin/tool/replace/
とか
http://yourserver.com/yourdirectory/admin/tool/replace/
登録:
投稿 (Atom)