Posts Tagged ‘CodeIgniter’

CodeIgniterのUploadクラスは画像とその他ファイルを同時に許可できない

全然PHPのネタが無かったので、ちょっとやってみようかと思います。
とある開発でCodeIgniterのUploadクラスを使っていたのですが、
アップロードされたファイルに対して、許可する拡張子を画像+その他拡張子(例えばzipとかtxtとか)に設定すると、
「許可されていない拡張子です」
というエラーがでてアップロードされません。こんなコードで発覚。
CIのバージョンは1.7.1です。
$config['allowed_types'] = ‘gif|jpg|png|zip|txt’;
// その他config設定は省略
$this->load->library(‘upload’, $config);
$this->upload->do_upload();
こう書くと、画像以外のzipファイルをアップロードしたときにはうまくアップロードされません。
でも、$config['allowed_types']の項目は必須設定です。
「う~ん、なんでかなぁ」と思いながらソースを読んでいたら、

system/libraries/Upload.php line:566くらい
// Images get some additional checks
if (in_array($val, $image_types))
{
  if (getimagesize($this->file_temp) === FALSE)
  {
    return FALSE;
  }
}

と、こんな記述を発見。ちなみに$image_typesには画像拡張子の配列が、$valにはallowed_typesで設定した拡張子(|で分割されています)
が入っています。
これだと、allowed_typesの中に画像系の拡張子が入っていると全てgetimagesize()が実行されます。
で、画像ファイル以外なら当然FALSEが返ります。その結果、アップロードは失敗。
これだと困るので、以下にように追記したらうまく動きました。

// Images get some additional checks
// 画像系の拡張子で、かつアップロードされたファイルの拡張子の末尾が画像系拡張子であればチェック
if (in_array($val, $image_types) && strpos(substr($this->file_ext, 0), $val) !== FALSE)
{
  if (getimagesize($this->file_temp) === FALSE)
  {
    return FALSE;
  }
}

 
「strpos(substr($this->file_ext, 0), $val) !== FALSE」
とすることで、アップロードされたファイルの拡張子もチェックし、TRUEならgetimagesize()やってくれ、ってことです。
$this->file_extにはドットを含む拡張子の情報が入っているので、substrで1文字目をカットしてます。
セキュリティ的にどうなのかと言われるとアレですが、そもそも画像以外をアップロードさせるアプリケーションはそれだけリスクが高まるので、仕方無いですかね。
私は恒久的に使うのでコアに追記しましたが、疑り深い方はMY_Upload.phpなどでオーバーライドしたほうがいいかもです。

Read the rest of this entry »

CodeIgniter読書会のキックオフセミナー開催

今週の土曜日になりますが、PHPフレームワーク「CodeIgniter」の読書会を始めるためのキックオフセミナーを開催するに至りました。
実際は時間が1時間も無いため、具体的に突っ込んで読書を進めていくことはできないため、読書会の展望や進め方、各都市での開催予定について、お話します。
CakePHPなSymfonyなどの他フレームワーク使いの方々も振るってご参加ください。他のフレームワークを勉強することで、色々な考え方やアイディアも浮かんでくるんではないでしょうか?
セミナー時間割表
http://www.ospn.jp/osc2009-nagoya/modules/eventrsv/?id=1&noform=1
セミナー会場
http://maps.google.co.jp/maps/ms?ie=UTF8&hl=ja&msa=0&msid=108784144899608752188.0004497afc6c98eded884&ll=35.141739,136.928444&spn=0.012283,0.017166&z=15&iwloc=0004497b2056b8feb2e1f&source=embed
参加費:無料
CodeIgniter読書会ML
http://groups.google.co.jp/group/codeigniter-reading
アマゾンのCodeIgniter徹底入門(¥3990)
http://www.amazon.co.jp/dp/4798116769/

Read the rest of this entry »

OSC名古屋のセミナー情報

弊社は、CodeIgniterユーザ会で参加します。
今回は「読書会」です。どうぞふるってご参加ください。
—-以下告知文—-
====================================================================
「OSC2009 Nagoya」 セミナー参加登録 受付開始のお知らせ
====================================================================
セミナー参加登録の受付を開始いたしました。
http://www.ospn.jp/osc2009-nagoya/
各開催、多くの方にご参加いただいております。
セミナー参加登録もすぐに満員となってしまいますので、お早めのご登録を
おすすめいたします。
1日中、セミナーが目白押し、全て無料で聴講いただけます。
OSS初心者から上級者まで、よりわかりやすく、楽しめる企画が満載です。
──────────────────────────────────
□■□ –【オープンソースカンファレンス2009 Nagoya】– □■□
★セミナー参加登録受付中!⇒⇒⇒ http://www.ospn.jp/osc2009-nagoya/
◆日時:8月22日(土)10:00-18:15
◆入場:無料
◆会場:名古屋市立大学 山の畑キャンパス教養教育棟(地下鉄桜通線 桜山駅 徒歩15分)
◆主催:オープンソースカンファレンス実行委員会
◆内容:オープンソース関連の最新情報提供 (展示・セミナー)
──────────────────────────────────
2004年から始まり、今回で38回目を迎える日本最大級のオープンソース総合
イベント「オープンソースカンファレンス」。
オープンソース・IT 技術に関するイベントとして、多彩なセミナーと、
オープンソースに触れられる展示で旬の最新情報をお届けします。
セミナー・ブースでの展示は、全て無料でご参加いただけます。
オープンソース最前線で活躍する人たちと気軽に出会えるのもOSCならではの
魅力!
ここでしか得られない貴重な情報や人脈、ビジネスチャンスを探しに、ぜひ
ご来場ください。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆事前登録についてのご注意
セミナープログラムについては、聴講できる人数に限りがございます。
お早めに参加登録をお済ませ下さい。
左側の「セミナー事前受付登録はこちら!」より、登録を行ってください。
★登録はこちらから → http://www.ospn.jp/osc2009-nagoya/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
セミナータイムテーブルはこちら↓
http://www.ospn.jp/osc2009-nagoya/modules/eventrsv/index.php?id=1
展示一覧はこちら↓
http://www.ospn.jp/osc2009-nagoya/modules/xfsection/article.php?articleid=1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆オープンソースカンファレンス2009 Nagoya の注目企画セミナー!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼10:15-12:00
『Webアプリケーション・フレームワーク大集合【2コマ連続】』
→ http://www.ospn.jp/osc2009-nagoya/modules/eguide/event.php?eid=34
▼13:00-14:45
『地域系勉強会パネルディスカッション【2コマ連続】』
→ http://www.ospn.jp/osc2009-nagoya/modules/eguide/event.php?eid=35
▼17:10-18:55
『フリーソフトウェアとOSS』
→ http://www.ospn.jp/osc2009-nagoya/modules/eguide/event.php?eid=36
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼懇親会のご案内
時間:18:30-20:00
会費:一般3000円、学生2000円
→ http://www.ospn.jp/osc2009-nagoya/modules/eguide/event.php?eid=37
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▼来場者プレゼント
ご来場いただき、オープンソースに関する意識調査アンケートにご協力いた
だいた方には『くじ引き』にてすてきな景品が当たるチャンス!
→ http://www.ospn.jp/osc2009-nagoya/  ※最下部に景品画像掲載中!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆協賛
・NEC
・日本AMD株式会社
・日本ヒューレット・パッカード株式会社
・サン・マイクロシステムズ株式会社
・ノベル株式会社
・株式会社日立製作所
・株式会社NTTPCコミュニケーションズ
・マイクロソフト株式会社
・NTTコムテクノロジー株式会社
・SRA OSS, Inc. 日本支社
・株式会社野村総合研究所
・日本仮想化技術株式会社
・株式会社ザクロ
・株式会社ミライコミュニケーションネットワーク
・株式会社IDGジャパン
・株式会社アスキー・メディアワークス
・株式会社インプレスIT(ThinkIT)
・株式会社インプレスジャパン
・株式会社オライリー・ジャパン
・株式会社技術評論社(Software Design)
・株式会社翔泳社
・ソフトバンク クリエイティブ株式会社
・株式会社日経BP – 日経Linux
・株式会社毎日コミュニケーションズ
◆後援
・一般社団法人 Mozilla Japan
・特定非営利活動法人エルピーアイジャパン (LPI-Japan)
・オープンソースビジネス推進協議会
・World Wide Web Consortium (W3C)
・日本Linux協会
・日本UNIXユーザ会
◆参加グループ
・CAMTA-JP, GT.M研究会(Google Groups)
・CSNagoya
・DeLLa.JS
・Developer Study Tokai(DSTokai)
・Drupal – http://groups.drupal.org/japan – Japan Group
・EOS Project
・FLOSS桜山
・Geeklog Japanese
・Ja STACK コミュニティ
・Joomla! 日本語化プロジェクト
・KOZOSプロジェクト
・Magento-JP User Group
・Nucleus ジャパン チーム
・ocaml-nagoya
・OpenOffice.org日本ユーザー会
・Python東海
・Ruby東海
・TEF東海
・TYPO3 [...]

Read the rest of this entry »

ブログ作りました。

久しぶりにWordPressをインストールしましたが、随分良くなりましたね。デザインや機能が格段に良くなっている気がします。さて、どんなペースになるかわかりませんが、今後ともよろしくお願いします。

Read the rest of this entry »