[PHP][フレームワーク]CodeIgniterスレ
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/04/27(金) 23:17:16ID:???チュートリアル:http://codeigniter.com/tutorials/
ユーザガイド日本語訳:http://ci-user-guide-ja.nought-point-999.net/
小回りの利くフレームワークの話題をひとつ!
0783780
2009/11/03(火) 12:57:34ID:???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]
0784nobodyさん
2009/11/03(火) 13:04:21ID:???0785780
2009/11/03(火) 13:13:37ID:???ありがとうございます。
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. 」に…。
0786nobodyさん
2009/11/03(火) 13:25:22ID:???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 は苦手なので試行錯誤をしていますので、
もし、こうだよ、とあれば引き続きよろしくお願いいたします。
0787780
2009/11/03(火) 13:45:23ID:???/ で動かす mod_rewrite は下記でうまくいきました。
RewriteCond %{HTTP_HOST} sub\.example\.com
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ /index.php?kohana_uri=$1 [PT,L]
アドバイスを頂いた皆様には重ねてお礼申し上げます。
ありがとうございました。
0788nobodyさん
2009/11/04(水) 09:25:44ID:qw3iX5XK> jQueryは軽量でもコンパクトでもない。
ホームページ冒頭にかいてあるけど?
jQuery is a fast and concise Javascript library...
自己宣伝だから全面的に信じるべきとはいわないが
この宣伝は無根拠なわけでもない。
ケチつける前に勉強した方がいい。
0789773
2009/11/04(水) 14:30:18ID:???追記です。
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
0790nobodyさん
2009/11/04(水) 18:22:08ID:???普通にURLエンコードじゃなんでダメなの?
検索条件の保持は、検索条件内容をDBにぶちこんで、そのIDを連れ回す方がしっくり来ると思う。
CIのフォーラムでもそんな感じだったと思った。
0791789
2009/11/04(水) 20:23:11ID:???↓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
0792789
2009/11/05(木) 13:06:07ID:???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でした。
0793nobodyさん
2009/11/06(金) 17:05:09ID:u54flEvHなので、 MY_Email クラスを作り mail()関数を mb_send_mail() にして、
mb_language("ja"), mb_internal_encoding('UTF-8') を記述して送信すると、今度は題名が文字化けしていまいます。
ソースはUTF-8で、Emailの"charset"設定は ISO-2022-JP にしています。
エスパーさせて申し訳ありませんが、どなたかスマートな解決法をご教授くださいm(__)m
0795nobodyさん
2009/11/06(金) 18:09:30ID:u54flEvHレスありがとうございます。
現在Postfixが使われています。
しかし、メールサーバーの変更は事情によりできないので、別の対処法をご存知でしたら教えて頂けると幸いです。
0796nobodyさん
2009/11/06(金) 18:14:39ID:u54flEvHCIのライブラリに qdmail をぶち込んで使ってみることにします。
情報ありがとうございました!
0797nobodyさん
2009/11/09(月) 13:46:17ID:???$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();
で大丈夫だよ。
0802nobodyさん
2009/11/12(木) 11:48:00ID:???現在ヘルパ関数を自作していて,ヘルパ関数内でセッションクラスを使いたいと考えています.
しかし,$this->session->userdata('hoge')のように書くとエラーになります.
どのようにすればヘルパ関数内でセッションクラスを使えるのでしょうか?
0804nobodyさん
2009/11/12(木) 12:25:12ID:???$CI =& get_instance();
$CI->session->userdata('hoge');
でどうでしょ
0806nobodyさん
2009/11/13(金) 01:38:44ID:RfEeqTfm0807793
2009/11/16(月) 12:24:50ID:???>>797
レスありがとうございます。
そのやり方は質問をする前に確かめたのですが、本文の一部に文字化けがみられました。
で、あれからずっと調べていたのですが
http://blog.livedoor.jp/lax34volvic/archives/1062690.html
ここにある問題(特定の文字「目」や「本」などが文字化けする)と同じようです。
メール本文に「本メール」という単語があり、その行が見事に文字化けしていたのです。
現在はEmailクラスを拡張して使っていますが、他にやりようがあるなら教えてください。
0808nobodyさん
2009/11/16(月) 13:06:14ID:???0809793
2009/11/16(月) 17:22:18ID:???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()を使わなくてもいいのか辺り)
0810nobodyさん
2009/11/16(月) 18:03:26ID:???俺も大方そんなところだよ。
_prep_q_encodingなんて気持ち悪い物も、ムリに使う必要は無いと思う。
mb_send_mailは信用してないから、mailを使ってるけど。
というか、これ以上はスレチな気もするので。
っhttp://pc11.2ch.net/test/read.cgi/php/1249778720
0811nobodyさん
2009/12/01(火) 16:52:40ID:n2Un74VIみんなまだこれ使ってる?
0812nobodyさん
2009/12/01(火) 16:57:48ID:???djangoも使ってるし、どっちもスレは過疎化
FW使うような人はある程度知識がすでにあるから聞くことないんだろね
0813nobodyさん
2009/12/01(火) 17:01:55ID:???PHP5使っているならCIじゃなくてKohanaお勧め。
0814nobodyさん
2009/12/04(金) 22:00:44ID:???コントローラが呼ばれる直前に呼ばれます。すべて基本クラスのロード、ルーティング、そしてセキュリティチェックが終わっています。
ってあるんですが、具体的にCIがやってるセキュリティチェックって何?
0815nobodyさん
2009/12/18(金) 10:44:51ID:REAaVtDl0816保守
2009/12/23(水) 21:11:17ID:???「もうそろそろ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!」
0817nobodyさん
2010/01/08(金) 22:13:29ID:???渡されるところで隣に座ってた人に横からお稲荷さん取られた
それは私のお稲荷さんだ!って言ったら反対側に座ってた人がイクラを噴出した
私も一瞬後で気づいて、たぶん顔真っ赤になってたろうけど全部食べた
0818nobodyさん
2010/01/10(日) 17:48:15ID:???というフレーズを思い出した
0819nobodyさん
2010/01/30(土) 22:57:36ID:/kADIv2E0820nobodyさん
2010/01/30(土) 23:11:41ID:???嫌気がさしてRubyのSinatraに乗り換えました。
0821nobodyさん
2010/01/31(日) 01:23:17ID:???0822nobodyさん
2010/01/31(日) 13:14:25ID:???0825nobodyさん
2010/02/17(水) 01:37:21ID:???デフォルトのままだった$config['sess_expiration']の値を0にしたら解決した。
なんでだろ…PHPを5.2.xから5.3.1にしたのが悪かったのかな。
0826nobodyさん
2010/03/21(日) 11:30:44ID:???インストールまではなんとかできました
0827nobodyさん
2010/03/21(日) 11:54:51ID:???本当はMVCで会社とかでよく使われるcakephpを覚えたいけど
CodeIgniterもMVCですしガイドがわかりやすくて面白いのでお世話になります
0828nobodyさん
2010/03/21(日) 14:00:50ID:???0829nobodyさん
2010/03/21(日) 14:12:02ID:???くらいだと思う個人的には
ただSymfonyは新版で変わったらしいからジャンプアップするかもしれん
0830nobodyさん
2010/03/21(日) 16:58:25ID:???0831nobodyさん
2010/03/21(日) 17:28:31ID:???このページを編集したい場合は以下のファイルを編集したらいいみたいな説明がありました
system/application/views/welcome_message.php
system/application/controllers/welcome.php
CodeIgniterではデフォルトでこれら2つのファイルを読み込んで出力するのでしょうか?
また、この2つのファイルは消しても問題ないでしょうか?
0832nobodyさん
2010/03/21(日) 17:57:57ID:???0833nobodyさん
2010/03/21(日) 17:59:30ID:???(;;)
0834nobodyさん
2010/03/21(日) 19:35:06ID:kAKa3jAa1.6系と1.7系では、ファイルサイズが4倍くらい違いますよね?1.7で何がそんなに追加されたのでしょうか??
0835834
2010/03/21(日) 19:39:22ID:???コアパッケージも、倍以上違いますよね。
0837nobodyさん
2010/03/21(日) 19:58:25ID:???<?php
class Test extends Controller {
function otameshi($id1, $id2){
echo $id1;
echo $id2;
}
}
http://localhost/index.php/test/otameshi/100/200/でアクセスすると正常に表示されます。
それで、http://localhost/index.php/test/otameshiにアクセスするとA PHP Error was encounteredが出るのですが
このエラーを表示させない方法ってございませんか?
0838nobodyさん
2010/03/21(日) 20:05:05ID:???0840nobodyさん
2010/03/21(日) 21:01:09ID:???>838じゃないけど、PHP自体初心者なの?
もしそうなら、いきなりCIやらないで、1回でいいから普通のPHP独習本でも
見ながら普通のスクリプトを書いてみることを勧める。
function otameshi($id1=100,$id2=200)
{
}
0841nobodyさん
2010/03/21(日) 21:10:37ID:???http://localhost/index.php/test/otameshi/100/200/
でアクセスしたときに、この100と200の値を出力したいのですが値が固定ではないです
300のときもあれば400もありのでそのように変数に格納することはできません
もしhttp://localhost/index.php/test/otameshi/でアクセスした場合でも、引数が空でもそのまま出力処理させる・・・空の値を出力させるってことはできませんか?
以下のように書き換えてみたのですがダメでした
<?php
class Test extends Controller {
function otameshi($id1, $id2){
if ($id1 != "") echo $id1;
if ($id2 != "") echo $id2;
}
}
0842nobodyさん
2010/03/21(日) 21:16:08ID:???だから、
function otameshi($id1=100,$id2=200)
と置くことで、$id1,$id2が空の場合のデフォルト値を指定しているんだけど。
そんな状態でCIやってホントに大丈夫?
ttp://www.php.net/manual/ja/functions.arguments.php#functions.arguments.default
別解として
function otameshi()
{
$id1 = $this->uri->segment(3);
$id2 = $this->uri->segment(4);
echo $id1;
echo $id2;
}
というのもできるけど。
0843nobodyさん
2010/03/21(日) 21:25:05ID:???ご教示頂いた方法で解決できました
お手間かけてしまい失礼いたしました
コードありがとうございます
0844nobodyさん
2010/03/21(日) 22:07:48ID:???話にならん。
どの本がいいかって?
ググれ。
0845nobodyさん
2010/03/21(日) 23:04:54ID:???0846nobodyさん
2010/03/24(水) 14:11:46ID:???PHPというか、プログラミングは初めてですか?
プログラミング未経験なら、
http://www.amazon.co.jp/dp/4774141046
文法解説 → 「ゼロからわかる PHP超入門」
http://www.amazon.co.jp/dp/4798119865
サンプルコード集 → 「PHP 逆引きレシピ」
あたりを読むといいと思います。
あとCodeIgniterを使うなら、
http://www.amazon.co.jp/dp/4798116769
「CodeIgniter徹底入門」
も役に立ちます。
学生さんでお金がないなら、図書館で借りればOK
仕事でプログラミングやるなら、本代なんてすぐに回収できるからバンバン買えばOK
0847nobodyさん
2010/03/24(水) 14:20:35ID:???プログラミングをまったくやったことがないなら、最初に練習してみる言語としては、
今ならPHPじゃなくて、Python(パイソン)を勉強した方がいいかも
・Google App Engine(グーグルのレンタルサーバ)でPythonが使える。
・安いレンタルサーバ(XREAなど)でもPythonが使えるものもある。
・Djangoやweb.pyなど、Pythonのフレームワークもいろいろある。
Pythonは、PHPよりも簡単ですよ。
=もともと教育用途で開発された言語だから、PHPよりも覚えることが少なくて、文法も簡単です。
Pythonを1ヶ月くらい使ってみたあとに、PHPをやってみたらいいんじゃないかな?
http://www.amazon.co.jp/dp/4797353953
「みんなのPython 改訂版」→この本なら1〜2週間くらいでPythonをマスターできます。
0849nobodyさん
2010/03/24(水) 14:32:47ID:???CI1.6から1.7の変更点は、変更履歴を見ればわかりますよ。
http://codeigniter.jp/user_guide_ja/changelog.html
今なら1.7で良いと思います。
=バリデーターの使い方がシンプルになった。
=1.7用の日本語パックも提供されている。
CIの使い勝手に不満を感じたら、CIから派生した類似のFWも比較対象にしてみればいいと思いますよ
・Kohana
http://clinic.mond.jp/kohana/
・CIEX
http://ciex.levallois.biz/
0851nobodyさん
2010/03/25(木) 20:36:56ID:???0852nobodyさん
2010/03/26(金) 01:30:02ID:???マイナーな言語を薦めて最後まで責任取れるのか
仕事探すとなったらPythonの仕事なんてまずないし
0853nobodyさん
2010/03/26(金) 01:44:18ID:???0854nobodyさん
2010/03/26(金) 01:45:47ID:???0855nobodyさん
2010/03/27(土) 16:10:53ID:???=PythonはCGの世界ではデファクトスタンダード
PHPも便利だけど、一度PHP以外の言語も使ってみたらいいよ
0856nobodyさん
2010/03/27(土) 16:45:03ID:???というかPHPフレームワークのスレでPythonの宣伝するなよ
0857nobodyさん
2010/03/27(土) 16:54:20ID:???0858nobodyさん
2010/03/27(土) 17:38:56ID:???PHPだって作れる
0859nobodyさん
2010/03/27(土) 17:50:20ID:???と言いたいところだが、初心者を出汁に釣りをするのは感心できないな。
0860nobodyさん
2010/03/27(土) 17:51:03ID:???0861nobodyさん
2010/03/27(土) 17:52:18ID:???0862nobodyさん
2010/03/27(土) 18:02:32ID:???0863nobodyさん
2010/03/27(土) 18:33:50ID:???0864nobodyさん
2010/03/27(土) 19:40:08ID:???中規模 → CakePHP
小規模 → 俺俺FWもしくは生PHP
俺俺FWのたたき台 → ZendFramework
CodeIgniterだけは使いどころがねーわw
ちいたんは問題外な。
0865nobodyさん
2010/03/27(土) 19:58:36ID:???0866nobodyさん
2010/03/27(土) 20:51:11ID:???0867nobodyさん
2010/03/27(土) 21:47:31ID:???ttp://blog.candycane.jp/archives/121
0868nobodyさん
2010/03/27(土) 21:59:33ID:???ドキュメントが整ってないからまだ早いよ
0869nobodyさん
2010/03/27(土) 22:08:59ID:???0870nobodyさん
2010/03/27(土) 22:09:50ID:???kohanaが一番いいよ
0872nobodyさん
2010/03/29(月) 14:08:51ID:???0873nobodyさん
2010/03/29(月) 20:40:53ID:???いや、仕事なら英語ドキュメント読むけど、PHPは趣味なんで・・・。
0874nobodyさん
2010/04/01(木) 11:04:56ID:mWVUr3VnCI1.7.2、PHP5.3.1を使っていてsessionで困りました。
CIのconfig.phpで$config['sess_use_database'] = TRUE;
としているのにクッキーにip,UA,lat_activityまで保存されます。
しかもSet-Cookieが3,4回も送信される時もあって参ってます。
WINな環境(?)のためなのか、コーディングがまずいのか、またはCIの仕様なのでしょうか?
librariesのSession.phpに目を通してますが見当もつきません。
解決策や何かヒントもらえませんか?
0875874
2010/04/01(木) 12:04:07ID:???↑に書いたlat_activity(訂正last_activity)までは仕様上送られるようでしたが
user_dataまでクッキーに含まれることがあって問題になってます。
またEclipseでログをとってみたところSet-Cookieが5回も送られていました。
きっと基本的な所でつまづいているのだと思いますが...
0876nobodyさん
2010/05/03(月) 19:37:29ID:???0877nobodyさん
2010/05/31(月) 20:56:27ID:???なぜか?
0878nobodyさん
2010/05/31(月) 21:07:32ID:???使うならKohanaにしろ
0879nobodyさん
2010/06/02(水) 22:41:45ID:???一方で、最近になってVS2008を使いだしたんだが、なんかもうこれで良いんじゃないか?
と思うようになった30代の俺がいる。
0880nobodyさん
2010/06/02(水) 22:45:36ID:???対応バージョン古いかもしれないけど
0881nobodyさん
2010/06/02(水) 23:11:16ID:???■ このスレッドは過去ログ倉庫に格納されています