のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:126,331,971人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ[PHP][フレームワーク]CodeIgniterスレ

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - Rapyd + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    751 : nobodyさん - 2009/10/30(金) 12:27:07 ID:??? (+6,-21,-32)
    smartyをAjaxライブラリに対する回答だと思うのはさすがに・・・
    752 : nobodyさん - 2009/10/30(金) 14:50:51 ID:??? (+77,+29,-58)
    >>750
    テンプレートエンジンを使うとすればどんなのがいいのでしょう?

    使わないのがいいでしょう

    客からの指示で、smarty必須ってなってる    ←意味不明
    自分で全部やれるなら楽だよな         ←意味不明
    (これから採用する人の話であってお前の客の話なんて知ったこっちゃない)
    753 : nobodyさん - 2009/10/30(金) 15:25:15 ID:??? (+52,+29,-2)
    頭が悪いのがいるな。
    754 : nobodyさん - 2009/10/30(金) 15:27:02 ID:??? (+57,+29,-22)
    わざわざ蒸し返すなや
    誰が正当かなんてどうでもええねん
    755 : nobodyさん - 2009/10/30(金) 22:06:59 ID:p/L2o0l6 (+4,+29,-88)
    要するにテンプレートエンジンは不要なのですね。

    AjaxのほうはjQueryが軽量コンパクトを売りにしてて伸び盛りのようです。
    同じく軽量コンパクトを売りにしてるCIとはベストマッチじゃないでしょうか。
    756 : nobodyさん - 2009/10/30(金) 22:11:18 ID:??? (+32,+9,-2)
    必要かどうかは人それぞれだろ。
    757 : nobodyさん - 2009/10/30(金) 23:37:06 ID:??? (+62,+29,-55)
    軽量コンパクトがいいのか高機能がいいのかも提示せずに
    相性云々言われても困るんだけど
    ぶっちゃけAjaxライブラリにとってはサーバサイドのアプリケションが
    何で書かれてようが知ったこっちゃ無いんだし相性もクソも何もない
    758 : nobodyさん - 2009/10/31(土) 00:32:11 ID:??? (+112,+30,-296)
    jQueryは軽量でもコンパクトでもない。
    ありがちな操作を、最小のコード量で書く事に特化していて、かつ習得しやすいので普及率が高いだけ。
    (そういう意味では、設計思想がPHPに近いのかもな、今思いついたが)
    だから、jQueryに「できないこと」に手を出そうとすると非常に面倒になる。

    それと、JavaScriptライブラリが軽量でコンパクトである事と、PHPフレームワークが軽量でコンパクトである事の関連性が良く分からない。
    軽量フレームワークと軽量JSライブラリで、なんで「相性が良い」という結論になるんだ?
    相性が悪いと言ってるわけじゃなく、単に論理展開、関係性が良く分からない。

    つうか、ざっと簡単なアプリなり小物ライブラリでも作ってみりゃいいだろ。
    机上の空論で初心者がライブラリの良し悪しを判別できるわけがない。
    759 : nobodyさん - 2009/10/31(土) 00:51:18 ID:??? (+57,+29,-8)
    なんだか、ケチつけたいだけの輩が巣食ってるらしい。
    760 : nobodyさん - 2009/10/31(土) 01:07:41 ID:??? (+57,+29,-23)
    そうだねjQueryがいいねとか嘘ついても仕方ないだろ
    駄目なものは駄目と言うしかない
    761 : nobodyさん - 2009/10/31(土) 08:09:34 ID:??? (+58,+30,-41)
    駄目なんて誰も書いてないだろ。
    わけのわからん基準で良い悪いを決める話じゃないってことだろ?

    あれだ、本質を理解した上で用途に合わせて判断しろっていう、
    当たり前のことを行ってるだけだ。
    762 : nobodyさん - 2009/10/31(土) 09:42:56 ID:RCXnHmtW (+73,+30,-93)
    なるほど、jQueryはダメなのか。
    どこがどうダメなんですか?


    本質を理解した上で用途に合わせて判断ですか。
    ご自身は本質を理解して判断されているのですね。すばらしい。
    私には何が本質で何を基準に判断したらいいか皆目見当がつかないのですが
    どんなところに注目すれば、本質を理解できるのでしょうか?
    判断の基準は、例えばどんなところにおかれているのでしょうか?

    763 : nobodyさん - 2009/10/31(土) 09:55:01 ID:??? (+63,+30,+0)
    764 : nobodyさん - 2009/10/31(土) 10:41:20 ID:??? (+38,+29,-56)
    jQueryでいいと思うよ。
    というか、prototype.jsとの2択しか無い気がするが。
    勉強するんだったら、このどっちかにしとくべき。
    結局は、オープン系は何を使うにも主流どこに乗っとかないと
    後々面倒だよ。スクラッチで作れるだけの力が無いのであれば。
    767 : 758 - 2009/10/31(土) 17:33:58 ID:??? (+121,+30,-174)
    >762
    > どんなところに注目すれば、本質を理解できるのでしょうか?
    何かができるものは、絶対に何かを犠牲にしている、という点。
    俺の書き込みが「jQueryはダメ」に見えたのなら、それはお前の経験不足。俺はjQuery信者だからな。
    あと、理解したいならガタガタ抜かさずコード書け。

    protojsとjQueryは併用できるしどっちかを選ぶようなものじゃないが、単独で込み入ったものを作るならprotojsが圧倒的に強い。
    ただし>758でも書いたように、8割方のケースではjQueryのほうが圧倒的に早く作れる。
    つまりどっちが向いているかは、どこまでをJSで処理し、どこからをサーバーサイドで処理するかによる。
    768 : nobodyさん - 2009/10/31(土) 20:31:41 ID:??? (+24,-29,-13)
    >>766

    >>765はCIの話だろう
    769 : nobodyさん - 2009/10/31(土) 20:41:12 ID:RCXnHmtW (+16,+29,-94)
    >>767
    よくわかりました。ありがとうございます。
    八割方のケースでjQueryが早くできること、
    込み入ったことはprotojsが向いていることがわかって助かりました。
    まあ、GoogleがjQueryを採用しているらしいので、
    できないことというのも相当特殊なものかもしれません。


    あと、その、サーバサイドでやることが、CIで補完しやすいとは限らないということですね。
    770 : nobodyさん - 2009/10/31(土) 23:32:42 ID:??? (+74,+29,+0)
    >>767
    この手のが一番疲れる。ある程度はできるから。
    771 : nobodyさん - 2009/10/31(土) 23:50:09 ID:??? (+61,+29,-27)
    >>768
    CIではGETを使えるので、そこを問題にしていたとは気づきませんでした。
    デフォルトではセキュリティ上の理由から使えないようにしてあると
    初期設定のチュートリアルにかかれてます。
    772 : nobodyさん - 2009/11/01(日) 21:33:49 ID:??? (-1,-29,-15)
    mootoolsも忘れないで

    っていうかスレ違いなんだぜ
    773 : nobodyさん - 2009/11/02(月) 14:12:06 ID:??? (+13,-30,+0)
    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に使える文字列長は上限があるので限度がある。
    http://sourceforge.jp/projects/codeigniter/lists/archive/users/2009-March/001786.html
    http://support.microsoft.com/default.aspx?scid=kb;ja;208427
    GET メソッドを使用する場合、最大文字数は 2,083 文字に制限されます (実際のパスも含めた文字数)。

    (2-3)・hookを使って、GETをPOSTに入れてしまう。→何かセキュリティーを考慮しなきゃいけない?=独自のバリデーターを用意するとか?
    http://www.ryuzee.com/contents/blog/734

    今のところ(2-2)で対応できていますが、検索条件が多くなったらどうしよう…><
    774 : 707 - 2009/11/02(月) 14:19:16 ID:??? (+3,-30,-247)
    自己解決しました。
    =CI1.7.2のマニュアルに説明がありました。

    http://codeigniter.jp/user_guide_ja/database/active_record.html#chaining
    メソッドの連結を使えば、複数のメソッドをつなぐのがシンプルになります。
    Note: メソッドの連結はPHP5 でのみ動作します。

    CIは、PHP5とPHP4の違いを吸収するような便利な機能が提供されてますね。
    http://codeigniter.jp/user_guide_ja/helpers/compatibility_helper.html
    互換性ヘルパファイルには、PHP 5でしか実装されていないネイティブな関数と定数を、PHP 4でも実行できるものが含まれています。
    これを使うことでPHP 4にしか対応していないサーバー上のアプリケーションでも、PHP 5のネイティブ関数を使うことができるようになります。

    WebサーバがPHP4だから助かるな~
    775 : nobodyさん - 2009/11/02(月) 14:19:28 ID:??? (-6,-29,-16)
    GETを有効にするに3票
    776 : nobodyさん - 2009/11/02(月) 14:24:46 ID:??? (+68,+29,-182)
    >>741
    CIには簡易のテンプレート機能が用意されてるから、それ使ってみれば?

    http://codeigniter.jp/user_guide_ja/libraries/parser.html
    テンプレートパーサクラスを使うと、ビューファイルに含まれる擬似変数を解析できます。
    ビューページで純粋なPHPを使う方が少し早いので、CodeIgniterでは、このクラスを必ずしも 必要としません。しかし、PHPのコードで混乱してしまうデザイナーと一緒に仕事をしている場合、開発者の中には、テンプレートエンジンを使用したい人もいると思います。

    ドリームウィーバーでHTMLが崩れなければ、Smartyは要らないよ(^^)v
    777 : nobodyさん - 2009/11/02(月) 22:26:52 ID:??? (+73,+27,-6)
    GET使えないとか不便なんだよな。
    別に禁止にしなくても・・・。
    778 : nobodyさん - 2009/11/02(月) 22:48:46 ID:WSpfQV0j (+34,+29,-19)
    >>777
    デフォルトでオフなだけで禁止はされてないよ?
    オフのままでもセグメントで指定できるから不便もないと思うけど。
    779 : nobodyさん - 2009/11/03(火) 03:12:02 ID:??? (+3,-30,-87)
    ?guid=onさえなければ、良い設計だと思うよ…
    PC版のみのサイトなら安心して使える。

    今、携帯対応するのにindex.phpの冒頭で$_GET['guid']がセットされていたらunsetする処理を
    足して使ってる。我ながら情けないけど、他にうまい手段が見つからない。
    780 : nobodyさん - 2009/11/03(火) 12:01:34 ID:??? (+43,-30,-227)
    スレ先を悩んだのですが、
    Kohana をさくらで動かしている方がいそうなここで伺います。

    さくらインターネットのマルチドメインでサブドメインの
    ディレクトリを /home/myaccount/www/sub で指定しています。
    ( sub/ のように後ろに / は付けていません )

    /home/myaccount/www/sub/index.html は
    http://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]

    http://sub.example.com/index.php/test/ は正しく出るのですが、
    http://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さん - 2009/11/03(火) 12:20:06 ID:??? (+2,-29,-8)
    RewriteRule ^(.*)$ ./index.php/$1 [PT,L]
    これでどうだろ
    782 : 780 - 2009/11/03(火) 12:44:55 ID:??? (-1,-29,-5)
    >>781
    ありがとうございます。
    やはり「No input file specified. 」です…。
    783 : 780 - 2009/11/03(火) 12:57:34 ID:??? (+3,-30,-158)
    いろいろと試行錯誤中です。
    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さん - 2009/11/03(火) 13:04:21 ID:??? (+54,+30,+0)
    785 : 780 - 2009/11/03(火) 13:13:37 ID:??? (+10,-30,-123)
    >>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さん - 2009/11/03(火) 13:25:22 ID:??? (+3,-30,-159)
    「Disallowed key characters in global data.」でいろいろググって
    http://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 - 2009/11/03(火) 13:45:23 ID:??? (+3,-30,-93)
    さくらインターネットのマルチドメインのサブドメイン環境で、
    / で動かす mod_rewrite は下記でうまくいきました。

    RewriteCond %{HTTP_HOST} sub\.example\.com
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.+)$ /index.php?kohana_uri=$1 [PT,L]

    アドバイスを頂いた皆様には重ねてお礼申し上げます。
    ありがとうございました。
    789 : 773 - 2009/11/04(水) 14:30:18 ID:??? (+56,-30,-287)
    >(2-2)・base64方式で、検索条件をエンコードして、URLのセグメントに無理やり埋め込む

    追記です。
    base64でエンコードした文字列のままだと、デフォルトのCIのURLで使えない文字が含まれてしまいます。

    http://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さん - 2009/11/04(水) 18:22:08 ID:??? (+19,+29,-60)
    >>789
    普通にURLエンコードじゃなんでダメなの?

    検索条件の保持は、検索条件内容をDBにぶちこんで、そのIDを連れ回す方がしっくり来ると思う。
    CIのフォーラムでもそんな感じだったと思った。
    791 : 789 - 2009/11/04(水) 20:23:11 ID:??? (+12,-30,-190)
    >>790 アドバイスありがとうございます。

    ↓BASE64でエンコードする方法を参考にしてみたのですが、URLエンコードも試してみようと思います。
    http://sourceforge.jp/projects/codeigniter/lists/archive/users/2009-March/001786.html

    http://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 - 2009/11/05(木) 13:06:07 ID:??? (+3,-30,+0)
    >>790
    urlencode方式でうまくいきました。ありがとうございました。

    ・FireFoxで見ると、エンコード後の文字列データは、日本語の場合、日本語のままでURLに表示されました。

    http://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でした。
    794 : nobodyさん - 2009/11/06(金) 17:40:13 ID:??? (-15,-29,+0)
    >>793
    qdmail使えば幸せになれるよ
    795 : nobodyさん - 2009/11/06(金) 18:09:30 ID:u54flEvH (-22,+29,-57)
    >>794
    レスありがとうございます。
    現在Postfixが使われています。
    しかし、メールサーバーの変更は事情によりできないので、別の対処法をご存知でしたら教えて頂けると幸いです。
    797 : nobodyさん - 2009/11/09(月) 13:46:17 ID:??? (+35,-30,-250)
    >>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さん - 2009/11/10(火) 21:00:29 ID:??? (+28,-29,-31)
    >>797
    おいおい。Subjectそのままで送るのか?
    MIMEエンコードしろよ
    799 : nobodyさん - 2009/11/11(水) 10:32:59 ID:??? (+89,+28,-1)
    >>798
    と思う前にやってみろ。
    800 : nobodyさん - 2009/11/12(木) 10:48:35 ID:??? (+77,+29,-18)
    >>799
    ハア?
    既にやってんだが
    無知は黙ってろks
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - Rapyd + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について