yumのインストール

yumで何かをインストールではなく、yum自体をインストールする必要があったので調べた。

はじめての自宅サーバ構築 - Fedora/CentOS - yum(The Yellow dog Updater, Modified)のインストール

http://kjirou.sakura.ne.jp/wiki_mirror/index.php?a%2Fyum%A4%AC%B2%F5%A4%EC%A4%BF%BE%EC%B9%E7%A4%CE%C2%D0%BD%E8%CB%A1

http://bucato.jp/weblog/?m=201003


serverqueenのVPSレンタルサーバ)にyumが入ってなかったので入れた次第。

ファイルアップロード時に日本語ファイル名の取得

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のおせっかいキャッシュとその対策。

見えてるフォームはいいけど、見えてないフォームに関しては値をクリアしてほしいなー。

grep -r '[A-Z]' hoge/

hogeディレクトリ以下のファイルに大文字があるか判断。
HTMLタグに大文字使うなよー、と言われたのでチェックのために。


たぶん使ってないけど、一応調べた。
タグも込みで検索するとなるとよく分からんけどその辺はもう人力で。

grep -r '[A-Z]' hoge/ | less

めんどくさかった。



と思ったけど、

grep -r '<[A-Z]' hoge/ | less

これで行けるわ。
アホだなー。


こんなケース(タグ内の途中から大文字)は無いよな。

<a HREF="yahoo.jp">yahoo</a>

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');
}


そのうち試す。