【PHP】フレームワーク CakePHP 2ホール目
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/11/14(水) 02:50:28ID:???http://www.cakephp.org/
10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/
マニュアル日本語化
http://www.cakephp.jp/doc/
日本語フォーラム
http://cakephp.jp/modules/newbb/
あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/
0341nobodyさん
2008/02/07(木) 12:42:55ID:???0342nobodyさん
2008/02/08(金) 15:28:07ID:???0343nobodyさん
2008/02/08(金) 17:25:37ID:???こっちがあるよ。
0344nobodyさん
2008/02/08(金) 19:11:40ID:???商品をカートに入れるとカートの画面に飛ぶ。
そこからログインをクリックしてログインページへ。
ユーザー・パス入れてログイン。
そしたらカートの画面に戻っている。
そして状態でもカートに商品は残ったまま。
ログアウトボタンをクリック。
そしたらカートから商品は削除されている。
(当然この一連の処理にクッキー・セッションが使われている。)
という一連のテストを自動化できちゃったよ。
(一度書いたら何か修正しえてもそれを実行するだけ)
0345nobodyさん
2008/02/09(土) 00:52:29ID:???0346nobodyさん
2008/02/09(土) 14:25:58ID:???dreamweaver cs3 使ってますよ。
やっぱりこれが最強じゃないですかね。
プログラム、デザインの両方に特化していますので。
0347nobodyさん
2008/02/09(土) 17:09:18ID:???0348nobodyさん
2008/02/09(土) 23:16:53ID:???0349nobodyさん
2008/02/10(日) 01:04:56ID:???って事は人気のあるスポーツはどんどんレベルが落ちてるんだな
0350nobodyさん
2008/02/10(日) 01:17:48ID:???レベルが下がってるよ。スポーツは
0351nobodyさん
2008/02/10(日) 01:37:18ID:???部外者からみてもピラミッドが見えるようにすればいい。
0352nobodyさん
2008/02/10(日) 14:24:03ID:???こんなリレーションなんですが、A->findAll()すると、Bしか付いてきません。
B->findAll()とすると、Cが付いてきます。
A->findAll()でB,C一緒に持って来たいのですが、どのようにしたらよいのか分かりません。
どなたかヒントをください。
0353nobodyさん
2008/02/10(日) 14:24:47ID:???0354nobodyさん
2008/02/10(日) 14:31:15ID:???A->findAll("","","","","",'3')
これでいけました。
0355nobodyさん
2008/02/10(日) 14:37:22ID:???なるほど。なんか納得。
web上ではプロは目立たず素人ばっか目立つから変な感じに見えるのか。
0356nobodyさん
2008/02/10(日) 15:35:17ID:???ごくわずかでそういうものに手を出す人は
詳しい人が多い。
実際は、使う人の問題なのに、
言語の問題といいはるRuby凶なんてのがいたな。
0357nobodyさん
2008/02/11(月) 00:25:02ID:???自分が何か情報を出すとライバルに盗まれるかも、とか足を引っ張られるかも、とか思ってるんでしょ。
もうちょっと余裕のある人はちゃんと次を育てていける。
いきなり素人が…とか言い出したりしないだろ普通。
0358nobodyさん
2008/02/11(月) 00:28:41ID:???新人には仕事教える立場だし。
0359nobodyさん
2008/02/11(月) 02:35:25ID:???ネットに限って言えば、プロな人がいろいろ露出するのって、ほぼ趣味なんじゃないか。
PHP界隈が、趣味でやるほどの魅力がない、仕事用の言語って感じだからじゃないの?
0360nobodyさん
2008/02/11(月) 02:54:33ID:???言語そのものが目的だからなw
0361nobodyさん
2008/02/11(月) 03:20:56ID:???0362nobodyさん
2008/02/12(火) 08:45:57ID:???一括で更新とかするSql文とか作ってるわけじゃないの?
0364nobodyさん
2008/02/13(水) 00:39:35ID:jaUT9mg5単体で使える共用のビューを作りたい時はどうすればいいの?
app/views/common/common.ctpみたいな感じ
0366nobodyさん
2008/02/13(水) 02:07:27ID:???0367nobodyさん
2008/02/13(水) 20:01:16ID:jaUT9mg5どうもありがとうございます
0368nobodyさん
2008/02/14(木) 11:30:58ID:???→最後にOKで処理実行のようなページを作るにはどうしたらいいの?
ページごとにエラーチェックしたり、前の入力項目の値を元に
次のページを決めたり、想定外のページ変移に対応したりもしたい。
0370nobodyさん
2008/02/14(木) 16:32:15ID:???まあ今はaction一つでやってるんだけど。
なんか一つにごちゃごちゃあって見にくいなぁと
それにページ間での値の参照・共有したいし
なんか良いやり方無いのかなぁ?
0371nobodyさん
2008/02/14(木) 16:35:18ID:???0373369
2008/02/14(木) 16:55:00ID:???actionも1個でやる。controller側ではページ分割されていることを意識しない。
1ページ目のpostは、2ページ目以降の項目が未入力と見做してエラー扱い。
表示の調整をviewでやる。
まあ思い付いただけなんで上手く行くかは分かりません。
0374nobodyさん
2008/02/14(木) 18:23:10ID:???一ページ目入力、ニページ目入力、三ページ目入力・・・してる途中で
一ページに戻る、一ページ目訂正、
二ページ目はさっき入れたのが表示されているからそのまま次へ。
三ページ目入力
みたいな。
0375nobodyさん
2008/02/14(木) 18:27:55ID:???> セッションでデータ保持して、ページ移動はredirectとかすればいいんじゃね
汎用的過ぎて参考にならないよw
ほぼすべてのウェブアプリはセッションかデータベースにデータ保持して
ページ移動はredirectとか使っている。
0376nobodyさん
2008/02/14(木) 18:33:04ID:???0377369
2008/02/14(木) 19:39:04ID:???マイナス1ページはプラス1ページと同じだから問題ないと思うけど、
ページを飛ばすのは処理増やさんといかんなあ。
入力値でページ分岐もややこしそうだ。
あと、未入力エラーを出すか出さないかの判断も必要か。
0378nobodyさん
2008/02/14(木) 21:58:46ID:???いかに管理しやすくするかということかな。
PHP5だと普通にインスタンスをセッション保存できるから、
複数ページで1インスタンスを共有というのもありでしょう。
0379nobodyさん
2008/02/15(金) 04:03:48ID:???もっと普通のウェブアプリ作れ。
0381nobodyさん
2008/02/15(金) 06:47:51ID:???セッションでデータ保持するのはバカだろ
0383nobodyさん
2008/02/15(金) 09:08:38ID:???0384nobodyさん
2008/02/15(金) 10:10:41ID:???いや、Cakeならそのケースでどうするかということで
フレームワークによってセッションの扱いは少しずつ異なるし。
0386nobodyさん
2008/02/15(金) 15:43:58ID:???俺ほぼ全部を受け渡してるけどな。
だってIDのみだったら他の情報がを表示するときとかっていちいちDBから拾ってくるの?
まぁ、変更するときはDBを更新する必要があるんで接続はするだろうけど。
0387nobodyさん
2008/02/15(金) 15:56:24ID:???そのくらいいいじゃん。
0388nobodyさん
2008/02/15(金) 16:55:19ID:???基本的に大量データを引っ張てくるキーだけ保存するもの
0389nobodyさん
2008/02/15(金) 16:59:50ID:???いちいちDBから拾うのが基本
セッションは会員IDなど必要最小限のデータだけ入れるべき
データ大量に保存して持ちまわすものじゃない
0390nobodyさん
2008/02/15(金) 17:01:59ID:???セッションについて何もわかってないみたいだ
0391nobodyさん
2008/02/15(金) 17:04:23ID:???0392nobodyさん
2008/02/15(金) 17:05:37ID:???0393nobodyさん
2008/02/15(金) 17:12:24ID:???セキュリティ的にもやばいし
ページの前に戻ると不具合がおこりやすい
常に大量データ持ちまわすことはメモリ、CPUに負荷がかかる
0394nobodyさん
2008/02/15(金) 17:14:11ID:???0395nobodyさん
2008/02/15(金) 17:18:54ID:???ページまたぎ処理はパラメータで引き継げよ
0396nobodyさん
2008/02/15(金) 17:27:06ID:???>セキュリティ的にもやばいし
どういうとこが?セッション固定化とかは別の話だし
>ページの前に戻ると不具合がおこりやすい
具体的にどんな不具合?
セッションでフロー管理してるからhiddenよりも厳密にできたりするんだけど
>常に大量データ持ちまわすことはメモリ、CPUに負荷がかかる
大量っていっても、多くても数kとかだし。
何かしらのキーで毎回ストレージから取得するのも処理コストあるよね
0397nobodyさん
2008/02/15(金) 17:32:39ID:???俺はセッションに入れる派。
0398nobodyさん
2008/02/15(金) 17:47:48ID:???yahooなどの超有名サイトほど、ログイン処理など
きわめて便利でないとこ以外はセッションを使ってない
0399nobodyさん
2008/02/15(金) 17:48:37ID:???0400nobodyさん
2008/02/15(金) 18:01:38ID:???データの引継ぎが途中で止まる
hidddenにデータがはいってないので
最初からページ移動のやりなおし
0401nobodyさん
2008/02/15(金) 18:13:03ID:???hiddenは値をいくらでも改竄できるからどうも・・・。
それすると挙動がおかしくなるサイトもあるし。
まぁ、それはそこの実装者が悪いだけなんだけど。
今のところセッションの方が生産性高いから、セッションで実装しちゃうな〜
0402nobodyさん
2008/02/15(金) 18:16:11ID:???セッション多様は開発者が楽するためのもので
サイト運営者、利用者にとってセキュリティリスクでしかない
0403nobodyさん
2008/02/15(金) 18:24:00ID:???0404nobodyさん
2008/02/15(金) 18:49:34ID:I3wnpJfD0405nobodyさん
2008/02/15(金) 19:08:46ID:???リクエストされたパラメータが改竄されていないかどうかをチェックするということか?
そんなことをするならばセッションにデータを格納したほうが効率が良いだろう。
悪意あるリクエストによってサーバセッションの中身を改竄するのは、
パラメータを書き換えるよりは困難だ。
他人のセッションを乗っ取ったり、MITM攻撃などでの手法はまた違う議論。
セッションを使おうが、パラメタを使おうが、適切な処理を行わなければ
どちらもセキュリティリスクになる。
どちらの方法も処理次第では脆弱になりうる。
逆に言えば、どちらの方法でも適切な処理を行えば十分安全になる。
ここでいう*十分安全*という定義はサービスの内容によって異なる。
0406nobodyさん
2008/02/15(金) 19:10:27ID:???具体的に指摘してやるからコード晒してくれ
0407nobodyさん
2008/02/15(金) 19:39:23ID:???他はログインID引き回すぐらいかな
ちなみにCAKEのデフォルト通りにIPでも(自動で)チェックしてるからドコモの人はさよならな俺のサイト
0408nobodyさん
2008/02/15(金) 20:04:49ID:???具体的に?
いや、だから、あるアクションでセッションにデータ入れて関連する他のアクションで参照するっていう、ほんとそのまんま。
コード書くまでもない。
0409nobodyさん
2008/02/15(金) 21:21:34ID:Q8bQtypzhiddenだと改ざんされてしまうし・・・。
けど、何でもかんでもセッションにってのは確かに気持ち悪いわな。
0410nobodyさん
2008/02/15(金) 21:43:28ID:???確認画面の時にバリデートして、DB登録直前にまたバリデートって面倒じゃない?(hidden値改竄の可能性があるから)
セッションだったら確認画面でセットしたデータがDB登録の時になって変わることがないからいいんだけど
0411nobodyさん
2008/02/15(金) 22:23:55ID:???個人的には、セッション変数を使うのが良いと思うが、
セッション変数は手軽に増やせるので、コードの質を低下させるのを気をつけたい。
例えば、index.phpですべてのリクエストを受けて、
$_SESSION['action']で場合分けみたいなコードを編集したことがあるけど、
$_SESSION['action']はsession_start()さえしておけば、コードのどこでも変更できるので、
きちんと規約を決めておかないと副作用で死ぬ。
フレームワークに期待するのは、そういう規約の部分なんだけど。
0412nobodyさん
2008/02/15(金) 22:28:43ID:???Javascriptからしか参照されないJSONで、
ユーザ固有のデータを出すときに、いちいちPOSTしなくて良い点。
遷移の上で孤立したアクションでユーザ固有のデータを使える。
0413nobodyさん
2008/02/15(金) 22:30:54ID:???たとえばセッションのサイズが1MBになったら、
データ読み込みに時間がかかるだろ?
↑
反論
ページ移動するたびに、
1MBものデータをhiddenでクライアントに転送し
それをまたサーバーに送信するようなことをしたら
もっとパフォーマンス悪いだろ?
0415nobodyさん
2008/02/15(金) 23:02:40ID:???0416nobodyさん
2008/02/15(金) 23:05:36ID:???セッション=ファイルなわけで、ファイルに保存するか、
データベースに保存するかの違いしかないんだが・・・
0417nobodyさん
2008/02/16(土) 00:07:09ID:???セッションIDのみでデータベースから読み出して処理するのがベストなのですか。
勉強になりました。ありがとうございます!
0418nobodyさん
2008/02/16(土) 00:20:43ID:???それで終わりだなw
0419nobodyさん
2008/02/16(土) 02:31:23ID:???0420nobodyさん
2008/02/16(土) 02:42:17ID:???なんかDBのデータ(ユーザデータとか)を全部セッションにぶちこむかどうかの議論と勘違いしてるのがいるな
途中経過のデータをセッションに入れるのはセキュリティ的によくないとか、セッションにはログインIDしか入れちゃいかんとか、その理由を述べろよ
0421nobodyさん
2008/02/16(土) 03:28:41ID:???0422nobodyさん
2008/02/16(土) 03:33:13ID:???無駄という意味か?w
0423nobodyさん
2008/02/16(土) 08:57:57ID:???大手を含め全員一致の答え、
ページ移動でもhidden内容を何でもかんでもセッションに詰め込むのは問題
・セッション変数の重複関係でバグ
・ページ移動中に他のサイト見に行ったりしたとき
・セッション変数が開放されないことによるバグ
・セッション切断による、変数の維持ができないバグ
0424nobodyさん
2008/02/16(土) 09:28:46ID:???バグが問題なだけ
>・ページ移動中に他のサイト見に行ったりしたとき
ページ移動中に他のサイト見に行ったりしたとき、
hiddenだと入力途中のデータ消えるバグ
> ・セッション変数が開放されないことによるバグ
バグが問題なだけ
> ・セッション切断による、変数の維持ができないバグ
セッション切断したのに、変数が維持されるバグ
0425nobodyさん
2008/02/16(土) 14:40:12ID:???しかも致命的バグを生む可能性が高いのはセッション
0426nobodyさん
2008/02/16(土) 14:50:25ID:???>セッションは必要最小限で使えというのは大手を含め全員一致の答え
なんで大手代表できるの?全員って?
ここの書き込み見るだけでもセッションでやってる人いるよね。
まぁせまい範囲だけど、知り合いとか知ってる会社とか、セッションで実装してるとこも多々ありますよ。
>セッション変数の重複・セッション変数が開放されない
これはバグじゃなくて、これに対処するコードを書かなきゃいけないっていうセッションのデメリット。
逆にhiddenのデメリットはhtmlに埋め込まなきゃいけない、改竄に対処するコードを書かなきゃいけないってことかな。
>・セッション切断による、変数の維持ができないバグ
セッション切断されたら変数の維持がどうのこうのじゃなく処理自体継続できない。ログアウトされるから。
ログインがないシステムだったらhiddenのほうがこの問題にはちゃんと対応できるね。
0427nobodyさん
2008/02/16(土) 14:53:57ID:???0429nobodyさん
2008/02/16(土) 15:05:46ID:???afterFindが呼び出されないバグがあるな。
behaviorで文字コード変更してたら文字化けした。
だれか報告してきてくれ。
find('count')はafterFindを呼び出す例を思いつかないが
呼び出したほうがいいのだろう? たぶん。
0430nobodyさん
2008/02/16(土) 15:07:33ID:w7he1Bjbいかに楽できるのかを考えるのが(効率の)いいプログラマなんだと思うんだが
どっちのメリット・デメリットも理解した上でデメリットに対応し、自分の楽なほうを選んでるんだからいい
何の説得力も説得材料もないそんなことしか言えないお前のほうがよっぽど低脳だ
0431nobodyさん
2008/02/16(土) 15:28:00ID:???じゃあなんでyahooはページ移動にセッション使ってないんだよ
効率悪いプログラマの集団かw
yahooにはPHP創始者もエンジニアとしているんだけどなw
0432nobodyさん
2008/02/16(土) 15:35:42ID:???やっぱり能力の低さがコンプレックスになってる奴は違う
0433nobodyさん
2008/02/16(土) 15:37:13ID:???0434nobodyさん
2008/02/16(土) 15:38:25ID:???yahooにとってはhiddenのメリットのほうが大きかったってことだろ
ちなみにデメリットの対処を考えると実はセッションの方が楽ではない
>yahooはページ移動にセッション使ってない・PHP創始者もエンジニアとしている
これは何の技術的理由にもならないことが分からんのか?
っていうか継続データのやり取りにセッション使ってないって保証はどこにあんの?
0435nobodyさん
2008/02/16(土) 15:40:00ID:???納品さえすれば、後のことは関係ないみたいなのばっか
セキュリティ0
0436nobodyさん
2008/02/16(土) 15:41:09ID:???楽天の会員登録ではセッション使っているようだが?
https://www.rakuten.co.jp/myrakuten/login.html
0437nobodyさん
2008/02/16(土) 15:43:44ID:???セキュリティもどちらが上というわけじゃないのに、
たまたまYAHOOがやっていたということを根拠にするのやめてくれない?w
ちゃんと自分の意見を言おうね。
0438nobodyさん
2008/02/16(土) 15:45:31ID:???やり方としてはどちらもありだし、
セキュリティもどちらが上というわけじゃないのに
---------------------------------------
同意
0439nobodyさん
2008/02/16(土) 15:53:34ID:???セッションよりもhiddenの方が安全に決まってるだろうがw
セキュリティで危険なのってセッション絡みが多い
hiddenで危険なのって聞かないというか
セッションだろうが最初の画面はhiddenで飛ばすし
0440nobodyさん
2008/02/16(土) 15:56:02ID:???最終画面でも総チェックした方が
セキュリティは上
セッションは書き換えられたらおしまい
■ このスレッドは過去ログ倉庫に格納されています