yumのインストール
yumで何かをインストールではなく、yum自体をインストールする必要があったので調べた。
はじめての自宅サーバ構築 - Fedora/CentOS - yum(The Yellow dog Updater, Modified)のインストール
http://bucato.jp/weblog/?m=201003
ファイルアップロード時に日本語ファイル名の取得
phpプログラムでブラウザからファイルを受信(アップロード)して保存する処理を実装してた。
ファイル名をpathinfo関数で取ったらちゃんと取れないケースがあった。
日本語 ファイル名なんだよ.txt
って感じで半角スペースの入ったファイル名だと半角後の「ファイル名なんだよ.txt」までしか取れなかった。
PHPのバージョンは5.2.2、OSはcent。
しょうがないので以下のように取得。
$filename = $_FILES['field_name']['name']; // 'field_name'は<input type="file" name="field_name" />のもの
そのまんまなんだけど、種々ブラウザ(win-ie8/firefox, mac-safari/firefox/chrome)で試したところではうまく行った。
文字化けも無し。
じゃあpathinfo関数はなんのためにあるんだよ、という気がするけど拡張子とか取ると思って納得しよう。
そういうもんなのかな。
softbankでseparate delivery使って無料コンテンツのダウンロード
separate deliveryで無料コンテンツをダウンロードするにはSIDにサイトのIDを入れればいい。
無料コンテンツ用のコースを作成しないといけないのか?従量課金で0円のコンテンツをダウンロードさせたりするのか?と色々思ったけど、そんなことはなかった。
http://TMS/DD?sid=[SID]&lid=[LID]&ol=[DCF_FILE]
SID ... コースID or サイトID。「ABCD」とかコースIDと似たような半角英数4文字(だと思う)。
LID ... ライセンスID。
DCF_FILE ... http://sample.com/hoge.dcf みたいなの。
すみません、あまり携帯コンテンツのことは分かってないので各部名称が合ってるか分かりません。
separate delivery使うには公式サイトじゃないとダメだよ。
javascriptで生成したフォームの値がキャッシュされてる
safariでブラウザのバックボタンを押したときに、javascriptで生成してたフォームの中身がキャッシュされてて困った。
フォームは無いのに値がキャッシュされてるという見えにくい問題。
原因自体はサーバのプログラムで色々出したりしてなんとなく分かってたけど調べたらあった。こういう問題。
Safari/Webkitのおせっかいキャッシュとその対策。
見えてるフォームはいいけど、見えてないフォームに関しては値をクリアしてほしいなー。
tracが壊れて修復した
まあ修復したってほどの大げさなものじゃないけど、なんでかファイルオーナーがrootになっててapacheからじゃアクセス権が無いというエラーだった。
なんか赤いボックスに変なメッセージが表示されるから完全に萎縮してしまったけど、エラー内容を読んでみればなんのことはなかった。
いやー、なんかびびった。
メッセージの下に似たようなケースが無いか探してみて(英語)、というリンクがあったのでそこをクリックしたらこれ出て来た。
http://trac.edgewall.org/ticket/1000
ありがとうございます、先人の方。
ずばりそれでした。
apacheからアクセスできる権限に変更して完了。
続・モジュールごとにErrorControllerを分ける方法が分からん
http://d.hatena.ne.jp/mikan-s/20090623/1245759788
まだ試してないけどプラグイン使えばできそうな気がする。
http://framework.zend.com/manual/ja/zend.controller.plugins.html
index.php(フロントコントローラ)のプラグイン設定部分でこんな感じかな。
$plugin = new Zend_Controller_Plugin_ErrorHandler(); // ところでフロントコントローラで$request取れる? if ( $request->getModuleName() == 'hoge' ) { $plugin->setErrorHandlerModule('hoge') ->setErrorHandlerController('Error') ->setErrorHandlerAction('index'); } else { $plugin->setErrorHandlerModule('default') ->setErrorHandlerController('Error') ->setErrorHandlerAction('index'); }
そのうち試す。