1 名前:nobodyさん mailto:sage [2007/04/27(金) 23:17:16 ID:???] 公式:www.codeigniter.com/ チュートリアル:codeigniter.com/tutorials/ ユーザガイド日本語訳:ci-user-guide-ja.nought-point-999.net/ 小回りの利くフレームワークの話題をひとつ!
720 名前:nobodyさん [2009/10/24(土) 22:57:13 ID:TTN2cu8l] >>709 補足です。 できたんですが、データベースドライバが余計なことして バイナリをエスケープ文字列にエンコードしてたので、 デコードして渡してやる必要がありました。
721 名前:nobodyさん mailto:sage [2009/10/25(日) 12:12:30 ID:???] CakePHPと比べた場合CodeIgniterが勝る所と劣る所を調査中です。 ご協力を。。。
722 名前:nobodyさん mailto:sage [2009/10/25(日) 13:42:05 ID:???] 使うお前が人に聞かないと違いがわからないのなら どっち使ってもいいんじゃないの
723 名前:nobodyさん [2009/10/25(日) 13:43:14 ID:XqTgHkg+] >>721 > CakePHPと比べた場合CodeIgniterが 勝る所 速度 柔軟性 最小限の知識で開発を開始できる 劣る所 無理やり規則に従わせることができない。
724 名前:nobodyさん mailto:sage [2009/10/25(日) 13:51:58 ID:???] >722 道が分からない時は人に聞くのが一番良いだろう
725 名前:nobodyさん mailto:sage [2009/10/25(日) 14:06:37 ID:???] 開発者なら自分で調べる力がないと駄目なんじゃないの? 道順は目的地にたどり着くこと自体が目的だろうけど、 違いを調べるってのは仕組みを理解すること自体が目的なんだし。
726 名前:nobodyさん mailto:sage [2009/10/25(日) 14:45:13 ID:???] >>712 言語パック入れないと、CIのDBクラスのエラーメッセージ、Form_Validationのエラーメッセージ等が英語のままに なる。CIのDBクラスを使わない(PearとかPDOとかO/Rマッパーを使う等)・Form_Validationを使わないなら言語パック は全く関係ないはず。 というか、O/Rマッパー使い+Validationは自前クラス使用の私は言語パック入れずに使ってます。特に困ったことなし。 >>715 メールはそもそも言語パック入れても解決しなくない? コントローラ内でmb_send_mail関数を使うか、mail関数をラップする自作ヘルパでも入れれば大丈夫。 application/librariesにphpmailerとか自作のメールクラスとか入れて使ってもいいし。 ちなみにPHPではCIの前にsymfonyとcakeを使ったことがあるけど、どちらも日本語メールはデフォルトの メールの送り方では文字化けした。国産フレームワークじゃない限り期待しない方が良い。
727 名前:nobodyさん mailto:sage [2009/10/25(日) 15:29:15 ID:???] >>726 多分その言語パック(パッチ)内でmailがmb_send_mailに変更になってたり dateがstrfdateになってたりしてるんじゃ? まあ自分で対処しても同じのはそのとおりだが
728 名前:nobodyさん mailto:sage [2009/10/25(日) 15:30:41 ID:???] つかソースみろよって話だw
729 名前:nobodyさん [2009/10/25(日) 20:00:58 ID:XqTgHkg+] ciを使ったdbアクセスについて質問です。 ランダムなレコードを得ようとして下記を実行すると 得られるレコードが毎回一定になってしまいます。 $this->db->query("select * from mytable order by random limit 1"); psqlのコマンドラインから直接sqlを打つとランダムな結果になります。 一回ごとにpsqlを抜けてもきちんと各回ごとにランダムになります。 ci経由でランダムにならないのがどういう理由かわからずに困っています。 ご教授ください。
730 名前:nobodyさん mailto:sage [2009/10/25(日) 21:00:58 ID:???] >>729 DBの設定ファイルでcache_onがtrueからかも。まぁ試してないけど。
731 名前:nobodyさん mailto:sage [2009/10/26(月) 01:08:16 ID:???] CodeIgniterで、テンプレートの一部分だけをキャッシュすることはできますか。 またもしできたとして、その一部分を表示するときにだけ必要なデータはどのように渡しますか。 つまり <!-- ここからキャッシュ する-->?x2028;<?php foreach ($list as $x) { ?> <p><?php echo $x; ?></p> <?php } ?>?x2028;<!-- ここまで --> というテンプレートの場合、表示するときには$listが必要ですが、キャッシュが効いているときは $listは必要ないので、こういうときは$listを用意したくないんですけど、そんなややこしいことはできるでしょうか。 ?x2028;
732 名前:nobodyさん [2009/10/26(月) 22:20:23 ID:8gDLhYd4] >>730 ビンゴ!でした。 デフォルト設定のままにしてたので全く考えもしませんでした。 たすかりました。ありがとうございます。
733 名前:nobodyさん mailto:sage [2009/10/26(月) 23:34:34 ID:???] >>731 出来ない、と思う なので、おれは自作でコントローラ内で キャッシュチェックして、必要があればHTML生成、なければキャッシュからって感じでやってる。
734 名前:nobodyさん [2009/10/27(火) 15:19:56 ID:NhIspLrL] ARでPostgreSQLの配列に対する演算はできないのでしょうか. 具体的には↓こんな操作をしたいのですが, SELECT * FROM mytable WHERE '{abc}' && hairetsu; 次の文ではうまくゆかないようです. $this->db->get_where('mytable', array("'{abc}' &&", "hairetsu" )); また,これに相当するようなARメソッドはマニュアルには書かれていないようです.
735 名前:nobodyさん mailto:sage [2009/10/27(火) 20:43:28 ID:???] kohanaって言うのはどんなもんなんでしょうか? 日本語サイトを作るのに何か問題があるでしょうか? codeigniterを使うか、kohanaを使うか迷っています。
736 名前:nobodyさん [2009/10/28(水) 09:57:15 ID:yVI01h7O] >>734 自己解決しました。 get_whereでなく、単独のwhereを使えばよいようです。
737 名前:nobodyさん mailto:sage [2009/10/28(水) 10:31:55 ID:???] >>735 kohanaいいよ。新しいだけあってかなり洗練されてる。 ただ3.0に関してはDocsが揃ってない。日本語に関しては全く問題なし。
738 名前:nobodyさん [2009/10/28(水) 13:37:17 ID:???] kohanaはCIよりいいですか?
739 名前:nobodyさん [2009/10/29(木) 22:30:02 ID:9YMY5qNb] 皆さんは、テンプレートエンジンを使いますか? 使うとすればどんなのがいいのでしょう? Ajaxはどうですか?
740 名前:nobodyさん mailto:sage [2009/10/29(木) 22:36:11 ID:???] 釣りだよね? 釣りだと言ってくれ
741 名前:nobodyさん [2009/10/29(木) 22:42:17 ID:9YMY5qNb] 書き方が悪かったようです。すみません。 テンプレートエンジンとAjaxライブラリはどんなのを使ってますか? と書くべきでした。 SmartyとかPHPTALと組み合わせるというのは見つけたのですが どんなもんなのかと思いまして。 Ajaxについてはあまりわかりませんでした。
742 名前:nobodyさん mailto:sage [2009/10/29(木) 22:55:25 ID:???] テンプレートエンジンなんて今時あしかせにしかならんよ
743 名前:nobodyさん [2009/10/30(金) 00:30:08 ID:p/L2o0l6] そーなんですか? 存在意義なし?
744 名前:nobodyさん mailto:sage [2009/10/30(金) 00:59:55 ID:???] DreamWeaverとか今時はPHPとかJSPとかASPに対応してるし どの言語にしたってテンプレートエンジンは流行ってないな
745 名前:nobodyさん [2009/10/30(金) 09:23:35 ID:p/L2o0l6] CIと相性のいいAjax用のライブラリはないのですか?
746 名前:nobodyさん mailto:sage [2009/10/30(金) 10:23:31 ID:???] 客からの指示で、smarty必須ってなってる場合も多いんだよ。
747 名前:nobodyさん mailto:sage [2009/10/30(金) 10:25:30 ID:???] 自分で全部やれるなら楽だよな。 フレームワークが何だろうが、そんなの関係ないし。
748 名前:nobodyさん [2009/10/30(金) 11:44:13 ID:+JS8PV0u] >>745 相性がいいかどうかわからんけど、Ajaxフレームワーク比較 ttp://journal.mycom.co.jp/news/2008/10/08/034/index.html
749 名前:nobodyさん mailto:sage [2009/10/30(金) 11:52:50 ID:???] 何がいいかの質問で、俺は客にテンプレート指定されてるとか答える意味が解らん
750 名前:746 mailto:sage [2009/10/30(金) 12:14:52 ID:???] >>749 お前アホか? >>742-744 の流れに対するレスだよ。
751 名前:nobodyさん mailto:sage [2009/10/30(金) 12:27:07 ID:???] smartyをAjaxライブラリに対する回答だと思うのはさすがに・・・
752 名前:nobodyさん mailto:sage [2009/10/30(金) 14:50:51 ID:???] >>750 テンプレートエンジンを使うとすればどんなのがいいのでしょう? ↓ 使わないのがいいでしょう ↓ 客からの指示で、smarty必須ってなってる ←意味不明 自分で全部やれるなら楽だよな ←意味不明 (これから採用する人の話であってお前の客の話なんて知ったこっちゃない)
753 名前:nobodyさん mailto:sage [2009/10/30(金) 15:25:15 ID:???] 頭が悪いのがいるな。
754 名前:nobodyさん mailto:sage [2009/10/30(金) 15:27:02 ID:???] わざわざ蒸し返すなや 誰が正当かなんてどうでもええねん
755 名前:nobodyさん [2009/10/30(金) 22:06:59 ID:p/L2o0l6] 要するにテンプレートエンジンは不要なのですね。 AjaxのほうはjQueryが軽量コンパクトを売りにしてて伸び盛りのようです。 同じく軽量コンパクトを売りにしてるCIとはベストマッチじゃないでしょうか。
756 名前:nobodyさん mailto:sage [2009/10/30(金) 22:11:18 ID:???] 必要かどうかは人それぞれだろ。
757 名前:nobodyさん mailto:sage [2009/10/30(金) 23:37:06 ID:???] 軽量コンパクトがいいのか高機能がいいのかも提示せずに 相性云々言われても困るんだけど ぶっちゃけAjaxライブラリにとってはサーバサイドのアプリケションが 何で書かれてようが知ったこっちゃ無いんだし相性もクソも何もない
758 名前:nobodyさん mailto:sage [2009/10/31(土) 00:32:11 ID:???] jQueryは軽量でもコンパクトでもない。 ありがちな操作を、最小のコード量で書く事に特化していて、かつ習得しやすいので普及率が高いだけ。 (そういう意味では、設計思想がPHPに近いのかもな、今思いついたが) だから、jQueryに「できないこと」に手を出そうとすると非常に面倒になる。 それと、JavaScriptライブラリが軽量でコンパクトである事と、PHPフレームワークが軽量でコンパクトである事の関連性が良く分からない。 軽量フレームワークと軽量JSライブラリで、なんで「相性が良い」という結論になるんだ? 相性が悪いと言ってるわけじゃなく、単に論理展開、関係性が良く分からない。 つうか、ざっと簡単なアプリなり小物ライブラリでも作ってみりゃいいだろ。 机上の空論で初心者がライブラリの良し悪しを判別できるわけがない。
759 名前:nobodyさん mailto:1 [2009/10/31(土) 00:51:18 ID:???] なんだか、ケチつけたいだけの輩が巣食ってるらしい。
760 名前:nobodyさん mailto:sage [2009/10/31(土) 01:07:41 ID:???] そうだねjQueryがいいねとか嘘ついても仕方ないだろ 駄目なものは駄目と言うしかない
761 名前:nobodyさん mailto:sage [2009/10/31(土) 08:09:34 ID:???] 駄目なんて誰も書いてないだろ。 わけのわからん基準で良い悪いを決める話じゃないってことだろ? あれだ、本質を理解した上で用途に合わせて判断しろっていう、 当たり前のことを行ってるだけだ。
762 名前:nobodyさん [2009/10/31(土) 09:42:56 ID:RCXnHmtW] なるほど、jQueryはダメなのか。 どこがどうダメなんですか? 本質を理解した上で用途に合わせて判断ですか。 ご自身は本質を理解して判断されているのですね。すばらしい。 私には何が本質で何を基準に判断したらいいか皆目見当がつかないのですが どんなところに注目すれば、本質を理解できるのでしょうか? 判断の基準は、例えばどんなところにおかれているのでしょうか?
763 名前:nobodyさん mailto:sage [2009/10/31(土) 09:55:01 ID:???] >>762 >>758
764 名前:nobodyさん mailto:sage [2009/10/31(土) 10:41:20 ID:???] jQueryでいいと思うよ。 というか、prototype.jsとの2択しか無い気がするが。 勉強するんだったら、このどっちかにしとくべき。 結局は、オープン系は何を使うにも主流どこに乗っとかないと 後々面倒だよ。スクラッチで作れるだけの力が無いのであれば。
765 名前:nobodyさん mailto:sage [2009/10/31(土) 13:52:37 ID:???] で、GET使えるようになったの?
766 名前:nobodyさん [2009/10/31(土) 15:11:23 ID:RCXnHmtW] >>764 参考になりました。 ありがとうございます。 >>765 jQueryはGET使えないの? だとしてもCIはデフォルトでGETを使わないようになってるから 問題ないと思います。
767 名前:758 mailto:sage [2009/10/31(土) 17:33:58 ID:???] >762 > どんなところに注目すれば、本質を理解できるのでしょうか? 何かができるものは、絶対に何かを犠牲にしている、という点。 俺の書き込みが「jQueryはダメ」に見えたのなら、それはお前の経験不足。俺はjQuery信者だからな。 あと、理解したいならガタガタ抜かさずコード書け。 protojsとjQueryは併用できるしどっちかを選ぶようなものじゃないが、単独で込み入ったものを作るならprotojsが圧倒的に強い。 ただし>758でも書いたように、8割方のケースではjQueryのほうが圧倒的に早く作れる。 つまりどっちが向いているかは、どこまでをJSで処理し、どこからをサーバーサイドで処理するかによる。
768 名前:nobodyさん mailto:sage [2009/10/31(土) 20:31:41 ID:???] >>766 >>765 はCIの話だろう
769 名前:nobodyさん [2009/10/31(土) 20:41:12 ID:RCXnHmtW] >>767 よくわかりました。ありがとうございます。 八割方のケースでjQueryが早くできること、 込み入ったことはprotojsが向いていることがわかって助かりました。 まあ、GoogleがjQueryを採用しているらしいので、 できないことというのも相当特殊なものかもしれません。 あと、その、サーバサイドでやることが、CIで補完しやすいとは限らないということですね。
770 名前:nobodyさん mailto:sage [2009/10/31(土) 23:32:42 ID:???] >>767 この手のが一番疲れる。ある程度はできるから。
771 名前:nobodyさん [2009/10/31(土) 23:50:09 ID:???] >>768 CIではGETを使えるので、そこを問題にしていたとは気づきませんでした。 デフォルトではセキュリティ上の理由から使えないようにしてあると 初期設定のチュートリアルにかかれてます。
772 名前:nobodyさん mailto:sage [2009/11/01(日) 21:33:49 ID:???] mootoolsも忘れないで っていうかスレ違いなんだぜ
773 名前:nobodyさん mailto:sage [2009/11/02(月) 14:12:06 ID:???] CIのGETの話題が出たので便乗させていただきます。 CodeIgniterの検索ページで、ページ送りするとき、検索条件をどうやって次のページに持っていってますか? =PCサイトと携帯サイトの違いをうまく処理したいです。 (携帯サイトは作ったことがないので、これからチャレンジすることになります。) ・日本のガラパゴス携帯のサイトは、基本的にクッキー無しという前提で作る。 ・ページ間の遷移で、何らかの方法でセッションIDを持たせる。 ・セッションIDに基づいて、サーバー側でセッション情報を保持しておき、セッション情報の中に検索条件を持たせておく。 こんな感じでOKでしょうか? それで問題は、CIでセッションIDをどこに持たせるのか? (1) POSTの場合 ・デフォルトのCI設定で問題なし (2) GETの場合 (2-1)・GETをOKの設定に変更する。 →これだとCIのURLヘルパーが使えなくて嬉しくない? (2-2)・base64方式で、検索条件をエンコードして、URLのセグメントに無理やり埋め込む →URLに使える文字列長は上限があるので限度がある。 ttp://sourceforge.jp/projects/codeigniter/lists/archive/users/2009-March/001786.html ttp://support.microsoft.com/default.aspx?scid=kb;ja;208427 GET メソッドを使用する場合、最大文字数は 2,083 文字に制限されます (実際のパスも含めた文字数)。 (2-3)・hookを使って、GETをPOSTに入れてしまう。→何かセキュリティーを考慮しなきゃいけない?=独自のバリデーターを用意するとか? ttp://www.ryuzee.com/contents/blog/734 今のところ(2-2)で対応できていますが、検索条件が多くなったらどうしよう…><
774 名前:707 mailto:sage [2009/11/02(月) 14:19:16 ID:???] 自己解決しました。 =CI1.7.2のマニュアルに説明がありました。 ttp://codeigniter.jp/user_guide_ja/database/active_record.html#chaining メソッドの連結を使えば、複数のメソッドをつなぐのがシンプルになります。 Note: メソッドの連結はPHP5 でのみ動作します。 CIは、PHP5とPHP4の違いを吸収するような便利な機能が提供されてますね。 ttp://codeigniter.jp/user_guide_ja/helpers/compatibility_helper.html 互換性ヘルパファイルには、PHP 5でしか実装されていないネイティブな関数と定数を、PHP 4でも実行できるものが含まれています。 これを使うことでPHP 4にしか対応していないサーバー上のアプリケーションでも、PHP 5のネイティブ関数を使うことができるようになります。 WebサーバがPHP4だから助かるな〜
775 名前:nobodyさん mailto:sage [2009/11/02(月) 14:19:28 ID:???] GETを有効にするに3票
776 名前:nobodyさん mailto:sage [2009/11/02(月) 14:24:46 ID:???] >>741 CIには簡易のテンプレート機能が用意されてるから、それ使ってみれば? ttp://codeigniter.jp/user_guide_ja/libraries/parser.html テンプレートパーサクラスを使うと、ビューファイルに含まれる擬似変数を解析できます。 ビューページで純粋なPHPを使う方が少し早いので、CodeIgniterでは、このクラスを必ずしも 必要としません。しかし、PHPのコードで混乱してしまうデザイナーと一緒に仕事をしている場合、開発者の中には、テンプレートエンジンを使用したい人もいると思います。 ドリームウィーバーでHTMLが崩れなければ、Smartyは要らないよ(^^)v
777 名前:nobodyさん mailto:sage [2009/11/02(月) 22:26:52 ID:???] GET使えないとか不便なんだよな。 別に禁止にしなくても・・・。
778 名前:nobodyさん [2009/11/02(月) 22:48:46 ID:WSpfQV0j] >>777 デフォルトでオフなだけで禁止はされてないよ? オフのままでもセグメントで指定できるから不便もないと思うけど。
779 名前:nobodyさん mailto:sage [2009/11/03(火) 03:12:02 ID:???] ?guid=onさえなければ、良い設計だと思うよ… PC版のみのサイトなら安心して使える。 今、携帯対応するのにindex.phpの冒頭で$_GET['guid']がセットされていたらunsetする処理を 足して使ってる。我ながら情けないけど、他にうまい手段が見つからない。
780 名前:nobodyさん mailto:sage [2009/11/03(火) 12:01:34 ID:???] スレ先を悩んだのですが、 Kohana をさくらで動かしている方がいそうなここで伺います。 さくらインターネットのマルチドメインでサブドメインの ディレクトリを /home/myaccount/www/sub で指定しています。 ( sub/ のように後ろに / は付けていません ) /home/myaccount/www/sub/index.html は ttp://sub.example.com/ でちゃんと見えています。 ここに Kohana を入れて下記 mod_rewrite を設定しました。 $ cat /home/myaccount/www/sub/.htaccess RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f #RewriteRule .* index.php/$0 [PT,L] RewriteRule ^(.*)$ index.php/$1 [PT,L] ttp://sub.example.com/index.php/test/ は正しく出るのですが、 ttp://sub.example.com/test/ では「No input file specified. 」と出てしまいます。 CI を真似て php.ini に cgi.fix_pathinfo=1 を設定しています。 CI では $config['uri_protocol'] = "PATH_INFO"; なんてあるらしいのですが、Kohana では見当たらず。 Kohana をさくらで動かしている方、アドバイスお願いします!
781 名前:nobodyさん mailto:sage [2009/11/03(火) 12:20:06 ID:???] RewriteRule ^(.*)$ ./index.php/$1 [PT,L] これでどうだろ
782 名前:780 mailto:sage [2009/11/03(火) 12:44:55 ID:???] >>781 ありがとうございます。 やはり「No input file specified. 」です…。
783 名前:780 mailto:sage [2009/11/03(火) 12:57:34 ID:???] いろいろと試行錯誤中です。 RewriteBase をコメントアウトさせると The requested URL /sub/index.php/ranking/ was not found on this server. Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request. となりました。何かこれで分かる方とかいらっしゃいますか。 RewriteEngine On #RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f #RewriteRule .* index.php/$0 [PT,L] #RewriteRule ^(.*)$ index.php/$1 [PT,L] RewriteRule ^(.*)$ ./index.php/$1 [PT,L]
784 名前:nobodyさん mailto:sage [2009/11/03(火) 13:04:21 ID:???] ttp://hero-kick.com/linux/entry-738.html
785 名前:780 mailto:sage [2009/11/03(火) 13:13:37 ID:???] >>784 ありがとうございます。 blog を参考に RewriteEngine On RewriteBase / RewriteCond $1 !^(index\.php|images|robots\.txt) #RewriteRule ^(.*)$ ./index.php?/$1 [L] RewriteRule ^(.*)$ /index.php?/$1 [L] としたのですが、 /index.php?/ の ? があるためか 「Disallowed key characters in global data.」が出ます。 ? を外すと、やはり「No input file specified. 」に…。
786 名前:nobodyさん mailto:sage [2009/11/03(火) 13:25:22 ID:???] 「Disallowed key characters in global data.」でいろいろググって ttp://forum.kohanaphp.com/comments.php?DiscussionID=1723 を見つけました。 RewriteEngine On RewriteBase / RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteRule ^(.+)$ /index.php?kohana_uri=$1 [L] で一部表示! 「一部表示」というのは CSS や JavaScript のパスが解釈できていないため デザインなどがガタガタなのです。とはいえ一歩前進です。 RewriteCond などを見直してみたいと思います。 いろいろとアドバイスをくれた皆様、本当にありがとうございます。 mod_rewrite は苦手なので試行錯誤をしていますので、 もし、こうだよ、とあれば引き続きよろしくお願いいたします。
787 名前:780 mailto:sage [2009/11/03(火) 13:45:23 ID:???] さくらインターネットのマルチドメインのサブドメイン環境で、 / で動かす mod_rewrite は下記でうまくいきました。 RewriteCond %{HTTP_HOST} sub\.example\.com RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+)$ /index.php?kohana_uri=$1 [PT,L] アドバイスを頂いた皆様には重ねてお礼申し上げます。 ありがとうございました。
788 名前:nobodyさん [2009/11/04(水) 09:25:44 ID:qw3iX5XK] >>758 > jQueryは軽量でもコンパクトでもない。 ホームページ冒頭にかいてあるけど? jQuery is a fast and concise Javascript library... 自己宣伝だから全面的に信じるべきとはいわないが この宣伝は無根拠なわけでもない。 ケチつける前に勉強した方がいい。
789 名前:773 mailto:sage [2009/11/04(水) 14:30:18 ID:???] >(2-2)・base64方式で、検索条件をエンコードして、URLのセグメントに無理やり埋め込む 追記です。 base64でエンコードした文字列のままだと、デフォルトのCIのURLで使えない文字が含まれてしまいます。 ja.wikipedia.org/wiki/Base64 Base64は、データを64種類の印字可能な英数字のみ A?Z, a?z, 0? までの62文字と、記号2つ (+ , /) 、さらにパディング(余った部分を詰める)のための記号として = が用いられる。 CI → $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-'; なので、base64の「+」「/」「=」をそれぞれ「-」「_」「:」等に置換すれば、CIのURLのセグメントとして使えます。=URLのセグメントをGETとして利用可能 (例)CI用にカスタマイズしたBASE64(ヘルパー関数に配置) if ( ! function_exists('my_base64_encode')) { function my_base64_encode($str) { $str = base64_encode($str); $str = str_replace('+', '-', $str); $str = str_replace('/', '_', $str); $str = str_replace('=', ':', $str); return $str; } } これと同様にデコードする関数を用意すればOK
790 名前:nobodyさん mailto:sage [2009/11/04(水) 18:22:08 ID:???] >>789 普通にURLエンコードじゃなんでダメなの? 検索条件の保持は、検索条件内容をDBにぶちこんで、そのIDを連れ回す方がしっくり来ると思う。 CIのフォーラムでもそんな感じだったと思った。
791 名前:789 mailto:sage [2009/11/04(水) 20:23:11 ID:???] >>790 アドバイスありがとうございます。 ↓BASE64でエンコードする方法を参考にしてみたのですが、URLエンコードも試してみようと思います。 sourceforge.jp/projects/codeigniter/lists/archive/users/2009-March/001786.html ja.wikipedia.org/wiki/URL%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89 URIにASCIIの非予約文字以外の文字データを用いる場合には、「%xx」(xxは16進数)という形でコードを表記する スペースを含む記号(=,&,%,+)は使用できないので「%20」などのASCIIコードの16進表記に置き換えられる。 スペースは JavaScript の場合には %20 に変換されるが、CGIでは + に変換される。 ↓ URLエンコード後の文字列に「+」が現れる場合は、$config['permitted_uri_chars']に「+」を追加すればOKですね。その方が手軽でしたorz
792 名前:789 mailto:sage [2009/11/05(木) 13:06:07 ID:???] >>790 urlencode方式でうまくいきました。ありがとうございました。 ・FireFoxで見ると、エンコード後の文字列データは、日本語の場合、日本語のままでURLに表示されました。 ↓ ttp://pricewave.blog110.fc2.com/blog-entry-26.html を参考にして、 $config['permitted_uri_chars'] = '一-龠ぁ-んァ-ヴーa-zA-Z0-9a-z 0-9~%.:_-'; ・エンコードする文字列に半角スペースがある場合 urlencodeで半角スペースが「+」に置換されて、CI1.7.2でエラーになりました。 ↓ $config['permitted_uri_chars']に「+」を追加してOK = ★追加する位置★に注意 (1) $config['permitted_uri_chars'] = '一-龠ぁ-んァ-ヴーa-zA-Z0-9a-z 0-9~%.:_-+'; // 末尾に「+」を追加 ↓エラーになる Message: Compilation failed: range out of order in character class at offset 63 Filename: libraries/URI.php Line Number: 191 Message: Cannot modify header information - headers already sent by (output started at /home/mobilebest/usedbest.net/script/CodeIgniter/system/libraries/Exceptions.php:166) Filename: codeigniter/Common.php Line Number: 356 An Error Was Encountered The URI you submitted has disallowed characters. (2) $config['permitted_uri_chars'] = '一-龠ぁ-んァ-ヴーa-zA-Z0-9a-z 0-9~%.:_+-'; // 末尾じゃない場所に「+」を追加 =これだと、文字列に半角スペースが入っていてもOKでした。
793 名前:nobodyさん [2009/11/06(金) 17:05:09 ID:u54flEvH] CIのEmailライブラリを使ってメールを送信しているのですが、本文が文字化けしていまいます。 なので、 MY_Email クラスを作り mail()関数を mb_send_mail() にして、 mb_language("ja"), mb_internal_encoding('UTF-8') を記述して送信すると、今度は題名が文字化けしていまいます。 ソースはUTF-8で、Emailの"charset"設定は ISO-2022-JP にしています。 エスパーさせて申し訳ありませんが、どなたかスマートな解決法をご教授くださいm(__)m
794 名前:nobodyさん mailto:sage [2009/11/06(金) 17:40:13 ID:???] >>793 qdmail使えば幸せになれるよ
795 名前:nobodyさん [2009/11/06(金) 18:09:30 ID:u54flEvH] >>794 レスありがとうございます。 現在Postfixが使われています。 しかし、メールサーバーの変更は事情によりできないので、別の対処法をご存知でしたら教えて頂けると幸いです。
796 名前:nobodyさん [2009/11/06(金) 18:14:39 ID:u54flEvH] スミマセン、qdmail を qmail と見間違っていました CIのライブラリに qdmail をぶち込んで使ってみることにします。 情報ありがとうございました!
797 名前:nobodyさん mailto:sage [2009/11/09(月) 13:46:17 ID:???] >>793 $config['charset'] = 'iso-2022-jp'; $subject = mb_convert_encoding($subject, 'iso-2022-jp', 'utf-8'); $this->email->subject($subject); $message = mb_convert_encoding($message, 'iso-2022-jp', 'utf-8'); $this->email->message($message); $this->email->send(); で大丈夫だよ。
798 名前:nobodyさん mailto:sage [2009/11/10(火) 21:00:29 ID:???] >>797 おいおい。Subjectそのままで送るのか? MIMEエンコードしろよ
799 名前:nobodyさん mailto:sage [2009/11/11(水) 10:32:59 ID:???] >>798 と思う前にやってみろ。
800 名前:nobodyさん mailto:sage [2009/11/12(木) 10:48:35 ID:???] >>799 ハア? 既にやってんだが 無知は黙ってろks
801 名前:nobodyさん mailto:sage [2009/11/12(木) 10:59:46 ID:???] >>800 797のコードだとCIのEmailクラス通すからMIMEエンコードはやってくれるんじゃないの?
802 名前:nobodyさん mailto:sage [2009/11/12(木) 11:48:00 ID:???] 質問です. 現在ヘルパ関数を自作していて,ヘルパ関数内でセッションクラスを使いたいと考えています. しかし,$this->session->userdata('hoge')のように書くとエラーになります. どのようにすればヘルパ関数内でセッションクラスを使えるのでしょうか?
803 名前:nobodyさん mailto:sage [2009/11/12(木) 12:00:12 ID:???] >>800 2重にエンコーディングされなかったか?Email.php使うと。
804 名前:nobodyさん mailto:sage [2009/11/12(木) 12:25:12 ID:???] >>802 $CI =& get_instance(); $CI->session->userdata('hoge'); でどうでしょ
805 名前:802 mailto:sage [2009/11/12(木) 12:58:15 ID:???] >>804 ありがとうございます. 使えるようになりました.
806 名前:nobodyさん [2009/11/13(金) 01:38:44 ID:RfEeqTfm] テスト
807 名前:793 mailto:sage [2009/11/16(月) 12:24:50 ID:???] 規制に巻き込まれてしまい返信できずスミマセン。 >>797 レスありがとうございます。 そのやり方は質問をする前に確かめたのですが、本文の一部に文字化けがみられました。 で、あれからずっと調べていたのですが blog.livedoor.jp/lax34volvic/archives/1062690.html ここにある問題(特定の文字「目」や「本」などが文字化けする)と同じようです。 メール本文に「本メール」という単語があり、その行が見事に文字化けしていたのです。 現在はEmailクラスを拡張して使っていますが、他にやりようがあるなら教えてください。
808 名前:nobodyさん mailto:sage [2009/11/16(月) 13:06:14 ID:???] Qdmail使ったら。ソースコード汚くて萎えるけど。
809 名前:793 mailto:sage [2009/11/16(月) 17:22:18 ID:???] >>808 qdmailは上記で教えてもらった時に使ってみました。 が、せっかくCIにEmailの処理があるのにそれが使えないのはおかしいので調べていた次第であります。 現在、MY_Emailクラスを作り function subject() の $subject = $this->_prep_q_encoding($subject); の記述を除去。 mail()が使われているところをmb_send_mail()に変更しています。 (CIのversionは1.7.2です) これで大丈夫なのか今はそれだけが不安です。(特にsubject()の>_prep_q_encoding()を使わなくてもいいのか辺り)
810 名前:nobodyさん mailto:sage [2009/11/16(月) 18:03:26 ID:???] >>809 俺も大方そんなところだよ。 _prep_q_encodingなんて気持ち悪い物も、ムリに使う必要は無いと思う。 mb_send_mailは信用してないから、mailを使ってるけど。 というか、これ以上はスレチな気もするので。 っpc11.2ch.net/test/read.cgi/php/1249778720
811 名前:nobodyさん [2009/12/01(火) 16:52:40 ID:n2Un74VI] しかしスレが落ちそうな勢いだな。 みんなまだこれ使ってる?
812 名前:nobodyさん mailto:sage [2009/12/01(火) 16:57:48 ID:???] 使ってるよー djangoも使ってるし、どっちもスレは過疎化 FW使うような人はある程度知識がすでにあるから聞くことないんだろね
813 名前:nobodyさん mailto:sage [2009/12/01(火) 17:01:55 ID:???] 同じく使ってるよ。でも最近はKohana。 PHP5使っているならCIじゃなくてKohanaお勧め。
814 名前:nobodyさん mailto:sage [2009/12/04(金) 22:00:44 ID:???] pre_controller コントローラが呼ばれる直前に呼ばれます。すべて基本クラスのロード、ルーティング、そしてセキュリティチェックが終わっています。 ってあるんですが、具体的にCIがやってるセキュリティチェックって何?
815 名前:nobodyさん [2009/12/18(金) 10:44:51 ID:REAaVtDl] 保守
816 名前:保守 mailto:hage [2009/12/23(水) 21:11:17 ID:???] 俺は初めて彼女とMMXした。 「もうそろそろiiyama? 君のI/ODATAを確かめたいんだ。XT」 MITSUMIあうと、彼女のMECはALBATRONとしていた。 緊張した俺は焦り彼女のソケット478をAOpenしようとした。 「ちょ、ちょっとRADEON!何をSis」もう俺は既にエレコム。 Sound Blasterのホックを外すとはちきれそうなPioneerがBarracuda でもBIOSTARは意外と玄人志向だった。 「恥ずかしいわ。あまりミネベア・・・」 SCSIをTORICAるとKEIANをSOLTEKした痕がアルファデータ。 あそこはSUPERMICROだった。OMEGAドライバも少し鼻についた。 しかし、彼女のCREATIVEを刺激しつつ俺のセレロンを 彼女のSerial-ATAからASUSに這わせると、「FireWire〜ン」 「もう、ATI」「COREGA欲しいんだろ?」「早くリテール」 俺は激しくTSUKUMO。「インテルはいってるっ!IEEE!1394!」 「あぁ・・・もうDell!」
817 名前:nobodyさん mailto:sage [2010/01/08(金) 22:13:29 ID:???] 回転寿司でお稲荷さんが回ってなかったから注文したら、 渡されるところで隣に座ってた人に横からお稲荷さん取られた それは私のお稲荷さんだ!って言ったら反対側に座ってた人がイクラを噴出した 私も一瞬後で気づいて、たぶん顔真っ赤になってたろうけど全部食べた
818 名前:nobodyさん mailto:sage [2010/01/10(日) 17:48:15 ID:???] 「私みたいで残せないから全部食べた」 というフレーズを思い出した
819 名前:nobodyさん [2010/01/30(土) 22:57:36 ID:/kADIv2E] そして会話がなくなった
820 名前:nobodyさん mailto:sage [2010/01/30(土) 23:11:41 ID:???] すいません。このスレ建てた人間なんですが、PHPのNameSpaceのSeparatorに 嫌気がさしてRubyのSinatraに乗り換えました。