トップページ⇒php
1001コメント368KB

Zend Framework Part4

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/02/09(火) 22:21:24ID:???
公式
http://framework.zend.com/

マニュアル
http://framework.zend.com/manual/ja/

翻訳状況
http://mikaelkael.dyndns.org/checker/language/details/lang/ja
http://framework.zend.com/wiki/display/ZFDEV/Japanese+(Nihongo)

バグ報告
http://framework.zend.com/issues/secure/Dashboard.jspa

API
http://framework.zend.com/apidoc/core/

前のスレッド Zend Framework Part3
http://pc11.2ch.net/test/read.cgi/php/1239320100/
0248nobodyさん2010/04/09(金) 10:31:31ID:???
orWhereとかあるけど、それでも無理?
0249nobodyさん2010/04/09(金) 10:43:22ID:???
あぁ、すまん、orWhereって書いてたね

> column = 1 and (column2 = 2 or column3 = 3)
これ、評価順を考えてみれば、フラットにできるから。
column2 = 2 or column3 = 3 and column = 1
でどうよ。
0250nobodyさん2010/04/09(金) 11:37:31ID:???
SQLでは優先順位が AND > OR と定められているはずでは?
0251nobodyさん2010/04/09(金) 11:43:38ID:???
最適化エンジン次第じゃない?
0252nobodyさん2010/04/09(金) 12:09:21ID:???
その最適化エンジンやばくないか
0253nobodyさん2010/04/09(金) 12:17:33ID:???
このスレではよくあること
0254nobodyさん2010/04/09(金) 13:20:02ID:???
>>243

実行時は名前付きパラメータで処理されるから、:paramnameとbindを使ってみて
0255nobodyさん2010/04/12(月) 01:13:05ID:b5cG05fs
Zend_Db_Tableを使用してinsertやupdateをする際に、
$dataで追加するデータを連想配列で指定すると思いますが、
できれば、のちのちの変更も考えて、addParam()などでデータを追加したいのですが、
それようのクラスってあるのでしょうか?
探したのですが見つからずでした。
DbTable_UsersなどとZend_Db_Tableの間に一つ自作のクラスを追加してやるしかないのでしょうか?
liveCommerceは連想配列のままでした。
うまいやりかたありましたら教えて欲しいです。
0256nobodyさん2010/04/12(月) 04:06:48ID:???
> できれば、のちのちの変更も考えて、addParam()などでデータを追加したいのですが、

そこをもう少し詳しく・・・
それだけじゃ何がしたいのかわからない。
0257nobodyさん2010/04/12(月) 13:30:57ID:HRyruJMr
ZendFW1.9 + smarty で開発してます。モジュール化について教えてください。
これまでモジュール化を考えずにサイトを作って来たんですが、管理画面以下のみをモジュール化
しようとして失敗しています。以下のエラーが出ます(ブラウザ画面は真っ白)
PHP Fatal error : Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message
'Invalid controller specified (error)' in /usr/lib/php/Zend/Controller/Dispatcher/Standard.php:241

●モジュール化の為に、フロントコントローラ(index.php)には以下を追記し、
$front->setControllerDirectory(APP.'/controllers');//この行は元からありました
$front->addControllerDirectory(APP.'/kanri/controllers', //この行を追記した

●applicationディレクトリは以下の通り。
application
 -controllers(ここに管理画面以外のコントローラ全てが入ってます)
 -models
 -smarty(この中にview用のファイルが入ってます。標準であるviewディレクトリは使ってません)
 -kanri(このディレクトリを新規にモジュール用に追加しました)
  -controllers
   -IndexController.php
  -models
  -views(現在はカラ)


続きます
02582572010/04/12(月) 13:36:32ID:HRyruJMr
つづきです
●/application/kanri/controllers/IndexController.phpは以下の通り。
require_once 'Zend/Controller/Action.php';
class Kanri_IndexController extends Zend_Controller_Action {
 public function indexAction() {
  echo "hoge";
 }
}
●ルーティング設定は
routes.kanri.route= "/kanri/*"
routes.kanri.defaults.module= "kanri"
routes.kanri.defaults.controller= "Index"
routes.kanri.defaults.action= "index"
routes.kanri.type= "Zend_Controller_Router_Route"

長くてすみません。どこが設定でおかしいんでしょうか?
ディスパッチのエラーが発生してるということは、ルーティングだったり
名前設定だったりの間違いか、ディレクトリ構造がおかしいかかと思いましたがわかりません。


また、kanri用のviewファイルも/application/smartyの中に入れて良いのでしょうか
その場合、どういう形で入れたら良いんでしょうか?
現在のindex.phpでのsmarty設定が
$render ->setViewBasePathSpec(APP.'/smarty')
->setViewScriptPathSpec(':module/:controller/:action.:suffix')
->setViewScriptPathNoControllerSpec(':action.:suffix')
->setViewSuffix('tpl');
なので、
/application/smarty/kanri/index/index.tpl、/application/smarty/kanri/kanrigamen1/index.tpl
という形で良いんでしょうか?
よろしくお願いします。
02592572010/04/12(月) 21:26:30ID:???
どうにか自己解決できました
スレ汚しすみませんでした
0260nobodyさん2010/04/14(水) 08:59:09ID:???
すみませんZend_Http_Cookieのマニュアル(http://framework.zend.com/manual/ja/zend.http.cookies.html)の「例4 クッキーがマッチするかどうかの確認」の部分の質問なのですが、

$cookie->match('https://sub.domain.example.com/somedir/otherdir/foo.php');
// これは true を返します。

この部分の意味が分かりません。
https://www.example.com/somedir/foo.phpがマッチするのは単純に分かるのですが、sub.domain.や/otherdir/の2つが何故マッチするのかと・・・。

「mixed $uri: Zend_Uri_Http オブジェクトで、 ドメインやパスのチェックに使用します。
オプションとして、 正しい形式の URL を文字列で渡すこともできます。
指定した URL のスキーム (HTTP あるいは HTTPS)、 ドメインおよびパスがすべて一致した場合にのみ、クッキーがマッチします。 」

という記述の「指定した URL のスキーム (HTTP あるいは HTTPS)、 ドメインおよびパスがすべて一致した場合にのみ」と反するような気がします。
単に基本的な事が分かっていないだけなのかもしれませんが、自分には考えても分かりませんでしたので教えて頂けたらと思います。
よろしく御願いいたします。

0261nobodyさん2010/04/16(金) 18:02:22ID:???
secureだからhttps://
.example.comだから*.example.com
/somedirだから/somedir*
0262nobodyさん2010/04/17(土) 20:24:51ID:T3UCpDKa
>>261 Thanksです
0263nobodyさん2010/04/21(水) 18:21:04ID:mfVJoQpI
quickstartとほぼ同じ構成なんですけど、
アクセスURLが /mだったらレイアウトをmobile.phtmlにするって
application.iniでは記述できませんよね?ディスパッチャを拡張するとか?

しょうがないので今はコントローラの中で
$this->view->layout()->setLayout('mobile');
とやってるんですが、そんなもんでしょうか?
02642632010/04/22(木) 13:23:51ID:???
細かいけど訂正。こうだった
$this->_helper->layout->setLayout('mobile');

注入したい場合はどうやらこんな感じ。ブートストラップにて
protected function _initLayout()
{
$this->bootstrap('FrontController');
$f = $this->getResource('FrontController');

$l = Zend_Layout::startMvc();
$l->setLayoutPath(APPLICATION_PATH."/layouts/scripts");
 :
$l->setLayout("mobile");
 :
return $l;
}
0265nobodyさん2010/04/22(木) 17:52:05ID:doAUeW+3
Service_Amazonを使いたいんですが問題が発生します。

if(!empty($params['key'])){
$associate_key = $this->_config->afferiate->_ASSOCIATE_KEY;
$query = new Zend_Service_Amazon($access_key, 'JP', $secret_key);
$results = $query->itemSearch(
array(
'SearchIndex' =>'Books',
'Keywords' =>'PHP',
'ResponseGroup' =>'Large'
)
);
}

上記のようにして、検索を実行した時に限ってdispachエラーが出るようなんです。
[Thu Apr 22 01:40:01 2010] [error] [client 192.168.0.8] PHP Fatal error:
Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message
'Invalid controller specified (error)' in /usr/lib/php/Zend/Controller/Dispatcher/Standard.php:241

$params['key']がカラで検索しないときは、同じ画面でもエラーしません。
どんな原因が考えられるでしょうか? バージョンは1.8.1です。
また、上のZend_Service_Amazon()の使い方は間違ってますか?
0266nobodyさん2010/04/22(木) 23:09:32ID:???
新しいバージョン使いなさい
1.10とか
0267nobodyさん2010/04/22(木) 23:55:56ID:doAUeW+3
>>266
どうもありがとうございます
バージョンが古いのが問題かと思って新しくしたんですが、まだエラーが出ます。
PHP Fatal error: Class 'DOMDocument' not found in /usr/lib/php/Zend/Service/Amazon.php on line 128
何が問題なんでしょうか。
調べたらzendfwよりphp自体の問題に思えて来たのでphpスレに移動します。
ありがとうございました
0268nobodyさん2010/04/23(金) 00:33:42ID:???
ggrks
http://www.google.co.jp/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=Class%20%27DOMDocument%27%20not%20found&num=50
0269nobodyさん2010/04/23(金) 00:37:54ID:???
>>268
どうもです。
しかし、そこに書いてあることやったんですけどエラー解消しないんですよね
php質問スレに詳細書いたので、気が向いたらお願いします。ありがとうございました
0270nobodyさん2010/04/23(金) 04:13:25ID:QeXW5bBg
すみません、zendFW1.10.3を利用してるんですが、Zend_Service_Amazonの使い方、以下で間違ってますか?

$query = new Zend_Service_Amazon($access_key, 'JP', $secret_key);
//$results = $query->itemLookup('B001DNF6V6');
$results = $query->itemSearch(
array(
'SearchIndex' =>'Music',
'Keywords' =>$params['key']
)
);

値が取得できず、以下の結果になります。(エラーは出力されません)
object(Zend_Service_Amazon_ResultSet)#295 (4) { ["_results:protected"]=> object(DOMNodeList)#307 (0) { }
["_dom:protected"]=> object(DOMDocument)#293 (0) { } ["_xpath:protected"]=> object(DOMXPath)#296 (0) { }
["_currentIndex:protected"]=> int(0) }

コメントアウトしている $results = $query->itemLookup('B001DNF6V6'); でなら目当ての商品情報を取得できるので
コンポーネントの設定や動作条件は満たしてるのではと思うんですが…
0271nobodyさん2010/04/23(金) 10:07:38ID:yrV1Z6KO
Zend_Cache_Frontend_File(http://framework.zend.com/manual/ja/zend.cache.frontends.html)について分からないことがあります

このフロントエンドはバックエンドのオプションとしてmaster_fileを設定するのだと思います
実際上記のマニュアルにも「唯一しなければいけないのは・・・」と書かれています
しかし、上記のマニュアルにはmaster_fileは非推奨と書かれています。
これはどういうことなのでしょうか?

master_fileではなく、master_filesを使えということなのでしょうか?

それともそもそもマスタファイルへのフルパスを指定することがいけないということで非推奨なのでしょうか?
となるとファイルが更新されたタイミングでキャッシュがリフレッシュされるという事が無くなり、そもそもこのフロントエンドの意味が無くなり、このフロントエンド自体が非推奨になってしまうと思うのですが・・・
0272nobodyさん2010/04/23(金) 12:26:10ID:???
>>271
質問なげえよ。master_files使えって意味だよ。
同じ役割だから、小さい方は廃止予定なんだよ。よくあること
0273nobodyさん2010/04/24(土) 04:32:30ID:6V3fZIph
すみません、誰か>>270の質問に意見お願いします。
いまだに原因わからずで… 勝手言ってすみません、気が向いたらお願いします
0274nobodyさん2010/04/24(土) 05:40:42ID:???
>>273
$results を foreach してみたら?イテレーターみたいだから。

参考
http://d.hatena.ne.jp/boto/20070923/1190482142
02752732010/04/24(土) 16:15:43ID:???
>>274
ありがとうございます!
そのページも見てたんですけど、var_dumpで確認すれば万能って思ってました
イテレータって物自体知らなかった… 本当にありがとう!
0276nobodyさん2010/05/01(土) 10:59:43ID:???
フレームワーク初挑戦とおもってクイックスタート読もうとしたら英語か・・・目次だけ日本語とかパケ詐欺からよ;;
低学歴は本買えってことか・・・
0277nobodyさん2010/05/01(土) 11:03:13ID:???
低学歴はPGやるな
0278sage2010/05/02(日) 10:44:31ID:KVSpskbJ
>>276
「誰かが翻訳しておいてくれる」のが当たり前のことだと思っているのですね。
去年の「Zend_Application まだ翻訳されていない、どうなっているんだ」や
「公式運営者はもっと頑張るべきだ」発言者のように
0279nobodyさん2010/05/02(日) 10:54:01ID:???
そういう考えの人もいるし、考え方は人それぞれ。
翻訳してやってますよ感を出す意味が分からない。
0280nobodyさん2010/05/02(日) 11:45:58ID:???
てか去年の話を蒸し返すとかどんだけ
0281sage2010/05/02(日) 12:19:45ID:Y8fRDT50
>>279
2行目が分かりません
0282nobodyさん2010/05/02(日) 23:04:41ID:???
同意を得ようと意見を放つも、否定されると「人それぞれだろ」と逆ギレするのはゆとり低学歴の特徴。
自分に理解出来ないことは、理解しようという姿勢すら示さないのも低学歴の特徴。
0283nobodyさん2010/05/02(日) 23:49:44ID:???
なんというブーメラン
0284nobodyさん2010/05/03(月) 00:58:35ID:???
>>279
お前、海賊版のソフトを平気な顔して使って
「ボッタクリ価格なのが悪い!」
「もともと買う気は無いからメーカーに損は無い!」
「むしろ俺が使う事で知名度が上がるだろ!」
とか言うタイプだろw

翻訳してやってますよとは思わないが、対価も支払う気が無い輩の言うことでは無いわなw
人それぞれで結論づけるならチラシの裏にでも書いてろよw
0285nobodyさん2010/05/03(月) 02:13:23ID:???
草の生えた文章は読む気にならん
0286nobodyさん2010/05/03(月) 02:35:26ID:???
>>285
お前、海賊版のソフトを平気な顔して使って
「ボッタクリ価格なのが悪い!」
「もともと買う気は無いからメーカーに損は無い!」
「むしろ俺が使う事で知名度が上がるだろ!」
とか言うタイプだろ

翻訳してやってますよとは思わないが、対価も支払う気が無い輩の言うことでは無いわな
人それぞれで結論づけるならチラシの裏にでも書いてろよ
0287nobodyさん2010/05/03(月) 03:11:31ID:???
痛い>>276 >>279がいると聞いてやってきました。
API Docの英語くらい理解できる程度に勉強しておけば良かったな
0288nobodyさん2010/05/03(月) 08:26:50ID:???
目次以外にも訳されてるところけっこうあるよね。
別に英語だけでも困らないけど、やっぱり日本語の方がありがたい。
0289nobodyさん2010/05/03(月) 18:41:49ID:7alvR5zV
質問なんだけど、みんなサーバのメールソフト,MTAは何使ってる?
sendmail?postfix?qmail?
zendFWのサービスていうかzend_mailを使うにあたって、3つのうちで特に相性がいいものってあるのかな?
zend_mailの利用に関して注意点とかトラブルとかあった?
あったら教えてください。お願いします。
0290nobodyさん2010/05/03(月) 20:36:44ID:???
互換性気にするなら、sendmailしかないでしょ。
0291sage2010/05/05(水) 00:26:42ID:/pDwsnJ7
>>289 , 290
290を補足すると、 Zend_Mail_Transport_Smtp 及び Zend_Mail_Transport_Sendmail が
sendmail を前提にしており、他のMTAをカバーするためのクラスは、まだ用意できていなかったはずです
0292nobodyさん2010/05/06(木) 00:26:10ID:j7c7uMQS
>>290,291
ありがとうございます

っていうか、マジで?sendmailしか対応できないの?
Sendmailってセキュリティ設定が難しくて敬遠されがちらしいし、
扱いやすいpostfixにMTAを切り替えてたんだけど、無駄なことしたのかな…orz
やっとインスコ成功したのに…
調べてみます、ありがとう
02932922010/05/06(木) 00:45:43ID:j7c7uMQS
一人で何度も聞いて申し訳ないのですが、zend_mailについてもう一つ質問です。

zend以前の問題かもしれないですが、ttp://blog.enjoitech.jp/article/201 を見ると、
自前のサーバ上のMTAを使わず、gmailを使ってメール送信できるそうですが、
・自前でMTAを利用する
・gmailで送信する
この二つのメリット/デメリットは何でしょうか?

思いつくのはgmailのダウン時の巻き添えくらいしかないのですがほかに何かありますか?
0294nobodyさん2010/05/06(木) 00:58:07ID:???
>>292
>>っていうか、マジで?sendmailしか対応できないの?
SMTP経由すればMTA関係無いんじゃないか?

>>293
・自前でMTAを利用する
 自由に弄れる反面、コストもかかるし維持も面倒。

・gmailで送信する
 制限はあるが、コストはかからない。

作るサービス次第だと思うよ。
0295nobodyさん2010/05/06(木) 01:10:04ID:???
>>290-292
sendmailつっても、この場合sendmailコマンドじゃなかったけ。
うちはpostfix使っているけど特に問題なく使えているよ。
0296nobodyさん2010/05/06(木) 16:26:28ID:???
qmail も sendmail ラッパーあるみたいだし大丈夫だろ
0297nobodyさん2010/05/08(土) 04:09:56ID:???
php自体勉強をはじめてまもない為他に何を伝えればいいのか良くわかっていないのですが

ZF 1.10.3を使っていて
public function sitemapAction(){
$this->_helper->layout->disableLayout();
echo $this->view->navigation()->sitemap();
}
としたところ
Fatal error: Zend_View_Exception: Encountered an invalid URL for Sitemap XML: "http://xn--********.jp/" in C:\xampplite\htdocs\xn--********.jp\library\Zend\View\Helper\Navigation\HelperAbstract.php on line 522
というエラーが発生してしまいます。

ドメインは日本語ドメインを利用しています。
上記エラーはwindows上ですがcoreserverや自宅のlinux環境でも同様のエラーが発生します。

$container = new Zend_Navigation(array($navi));
$navigation = $this->view->navigation();
$navigation->setContainer($container);
$this->view->assign( 'crumbs',$navigation->breadcrumbs()->setLinkLast(true)->setMinDepth(0));
$this->view->assign( 'menu' ,$navigation->menu());
は動作してるのでZend_Navigationの使い方は間違ってないと思うのですが
解決のヒントや、そもそもsitemapは日本語では動かない等あきらめたほうが良い等
アドバイスをいただけないでしょうか?
0298nobodyさん2010/05/09(日) 17:05:23ID:???
Zend_Controller_Router_Route_Interfaceを実装して
オリジナルのRoute作ってるんだけど
assemble()ってどういうときに呼ばれるんだろうか?
今のところ何も実装しなくても希望の動作になってるから良いのだが。。

ちょっと調べた感じ、Redirectのときに使われるっぽい?
RouterでRedirect?よくわからん。。。
0299nobodyさん2010/05/10(月) 11:25:43ID:???
Apache1.3で%7Fが使えなくて困ったときに使ったことあるな。
 配列→パス が assemble() で
 パス→配列 が match()
心臓部分なので実装しなければ(空実装?)使いもにならんはずだが。
0300nobodyさん2010/05/10(月) 13:39:42ID:???
grep -r '>assemble' Zend/Controller/
個人的によく使うのはurlヘルパーかな
0301nobodyさん2010/05/10(月) 20:26:01ID:???
>>299
>>300

なるほどthx

Router_Route_Hostnameの正規表現版みたいなのを
作ってルーティングしてるんだけど、今のところ
assemble(){ exit('hoge');}
って書いてても全然呼ばれないのだが。。。
urlヘルパーを使ってないから?

もともとJava-Spring使ってて最近PHP-Zendに移ってきたんだけど
Route_AbstractのgetVersion()をオーバーライドすると
match()のパラメータ型が変わったりするし、なんだかややこしいな。
ていうかRoute_Interfaceの全メソッドにコメントがないし…
インタフェースにコメントないAPIとか初めて見たよ。。
でも逆に勉強になるな。
0302nobodyさん2010/05/15(土) 16:46:48ID:???
結局のところ、Zend_mailの文字化け対策はQdmailと併用するのがベストなの?
あと、Zend_mailで送信サーバをGoogleにして使うとき、送信者アドレスが
Gmailのアドレスになるのはどうしようもない?
0303nobodyさん2010/05/15(土) 16:47:51ID:9enG3To7
あ、さげちゃった。 age
0304nobodyさん2010/05/15(土) 16:51:16ID:9enG3To7
× Zend_mailで送信サーバをGoogleにして使うとき
○ Zend_mailで送信サーバをGmailサーバ指定して使うとき

の間違いでした、ごめん
0305nobodyさん2010/05/15(土) 16:56:30ID:???
みんなの意見が聞きたいです。
私がPHPのシステムを構築するときは、管理画面とフロント画面があるシステムを作ることが多く、
モジュールの仕組みを自分なりに使って以下の様に実現しています。

■管理画面
http://localhost/webmaster/hoge/huga
=> webmasterモジュールのhogeコントローラのhugaアクション呼び出し

■フロント画面
http://localhost/hoge/huga
=> defaultモジュールのhogeコントローラのhugaアクション呼び出し

ディレクトリ構造は以下(抜粋)
application
|-modules
 |--default
 | |-controllers
 | |-models
 | |-views
 | --webmaster
   |-controllers
   |-models
   |-views

これだと、モデルがそれぞれのモジュール内に配置されることになり、よい面もあると思うのですが、
ほとんどのシステムで管理画面とフロント画面で同一のモデルを使うことが多いので、
webmasterモジュールの方にはmodelを実装しないで、defaultモジュールの方のmodelsにinclude_pathを通し、どのモジュールからもdefaultモジュールのmodelを呼び出すようにしています。

ただ、このやり方がどうしてもしっくりこないので、もう少しスマートなやり方を模索しているのですが、なかなかいい案が浮かびません。

みなさんは管理画面とフロント画面があるようなシステムを構築するときは、どんなやり方でやっていますか?
0306nobodyさん2010/05/16(日) 00:33:05ID:9d3ZuTyk
>>305
ズバリそのやり方してる、俺もなんだかなぁって感じ。
違和感拭えないよね
0307nobodyさん2010/05/16(日) 00:41:06ID:/nPzlLMd
>>305
application の直下(modules と同階層)に models を置いている。
共通のはそこに置く感じ。
Zend_Application 使ってれば application/models は autoload 対象になるしね。
03083052010/05/16(日) 12:51:20ID:???
>>306
>>307
ありがとうございました。
参考になりました。

Zend_Applicationは確かモジュール毎のiniファイルの記述方法がよくわからなくて、挫折した記憶があります。
もっとよく見てみようと思います。
0309nobodyさん2010/05/18(火) 10:33:48ID:f5A4YuVy
>>308
307じゃないけど、Zend_Applicationに関係なく、
アプリケーション全体で共有する可能性のあるものは、
applicationの下に置くよ。
静的なリソースは別ね。
0310nobodyさん2010/05/26(水) 16:04:27ID:???
ZendFrameworkってセキュリティはどうですか?
例えばgrep()でeval()やpreg_replace(eを使用)してユーザリクエストが混ざっているとか、$_FILESを組み込んだアップロード時に脆弱性が無いかとか、ヌルバイト&Dir遡り攻撃に対処しているかとかです
基本的なXSS、ScriptInsersion、SQLインジェクション、セッションハイジャック対策が全体的なコード中に施行されているのか知りたいです

ZFで構築後、また一から各セキュリティホールの確認とか大変だなぁ、と思いまして
FWの作者がZendなので最新バージョンはそういうのにほぼ対策をしているとは思うのですが、こういう攻撃には弱いというのがあったら教えていただきたいです
0311nobodyさん2010/05/26(水) 16:30:03ID:???
FWレイヤーで対処すべきコードは基本的に対処されてる。
でも、個々のアプリケーションでもケアは必要。
ユーザリクエストにコマンドが混ざるとかはアプリケーションの仕様であってFWは感知すべきじゃない、
セッションハイジャックを防ぐための支援機能はあってもそれを使うかどうかはプロジェクト次第

セキュリティホールってのは開発者が責任を持って対処するべきなんじゃないの?
「大変だなぁ」って思うんなら、FWじゃなくて既存のプロダクトをカスタマイズして使う方がいいよ
FWに任せて自分は対処しないって風になると、いくらでも穴は開くからね
0312nobodyさん2010/05/27(木) 00:28:31ID:???
セキュリティ対策をframeworkに頼ってる奴とか最悪すぎる
0313nobodyさん2010/05/27(木) 00:52:04ID:???
ASP使いには多いけどなw
0314nobodyさん2010/05/28(金) 09:04:18ID:???
>>312
セキュリティ対策をFWに頼っているわけではないんだが、例えば(まぁないとは思うが)どこかのコンポーネント内でhtmlspecialcharsとかが入っていない為セキュリティホールになったりしないかということ
そういう場合わざわざソース見て自分で書き直しとかめんどくさいんで
最低限のクォート処理とかそういう事です
0315nobodyさん2010/05/28(金) 13:53:13ID:???
>>314
DB系であれば必要な箇所では適切にエスケープされるし、エスケープ方式も設定出来る。

htmlspecialcharsのように場合によっては不要なエスケープは強制されないので、
自分で適切に処理する必要がある。
0316nobodyさん2010/05/28(金) 20:32:15ID:???
>>314
まぁ、言いたいことはわからないでもない。
残念ながら、"現段階では"ソースのチェックが必要な気がする。

HTML関連のViewヘルパーでのエスケープはされてるけど、
たとえば、文字コードの指定はロケールを見てるかどうかとか

Viewでエスケーパを指定できるようだけどオプションは?とか。

タグを自動育成するタイプのコンポーネントで穴がないかとか
その辺はやっぱり使うときにソースを確認した方がいいと思う。
0317nobodyさん2010/05/29(土) 03:27:50ID:???
perlなんかだと、プログラマーが気を使っても
プレースフォルダ使っててもDBI/DBDに問題があったら…
今のとこであったことないけどHTML::FillInFormに問題があったら…

DBI,DBDの仕組みも大儀でいえばFWなのでそういった面では
FWにセキュリティホール対策は任せたい/任せてる部分てあるよね?

とここのところの流れを見てておもいました。
0318nobodyさん2010/05/30(日) 19:32:08ID:???
へたれプログラマだと
ソースを確認しても信頼性の評価なんてできないから
自分が作るよりはましと考えて信じて使うしかない
0319nobodyさん2010/05/31(月) 13:36:10ID:iVMHao47
>>299

>Apache1.3で%7Fが使えなくて困った

ZFと無関係な話ですが、どういう意味ですか?
昔作ったシステムが今もApache1.3で動いてるんで非常に心配です。
とりあえずurlencodeは使ってますが、それでも問題が起きることがあるんでしょうか?
知ってる人、教えてもらえないでしょうか?
0320nobodyさん2010/05/31(月) 15:28:20ID:???
試せばいいのでは
0321nobodyさん2010/06/01(火) 10:23:47ID:???
AllowEncodedSlashesでググレ
03223192010/06/02(水) 13:22:49ID:NqHn07VJ
>>321
ありがとうございました。
調べたところ問題なさそうでした。
0323nobodyさん2010/06/04(金) 15:51:23ID:???

/index = IntexController->indexAction();
/hoge = IndexController->hogeAction();

とルートしたい場合、独自Routerを書かないと駄目でしょうか?
設定で対応出来るものでしょうか?
0324nobodyさん2010/06/04(金) 16:27:09ID:???
staticでもregexでもrouteでもいける
0325sage2010/06/06(日) 10:36:36ID:???
奈良県人と高野豆腐が大嫌い
0326nobodyさん2010/06/09(水) 16:15:06ID:zdg5Ro52
お世話になります。

Zend_Session::rememberMe()
をログイン画面でログイン成功時に使用しています。

引数には1800秒を指定しているのですが、
この場合、ログイン成功してから1800秒間
セッションが有効になるのでしょうか?

ログイン後の次の画面で
Zend_Session::start();
を呼んで、ログインに成功しているかどうかを判断しているのですが、
Zend_Session::start();をコールしただけでは
セッションの生存期間はリセットされないのでしょうか?

0327nobodyさん2010/06/11(金) 12:51:52ID:1eqyNkqt
過疎ってる?
0328nobodyさん2010/06/13(日) 04:57:57ID:???
zfコマンドて皆使ってる?
0329nobodyさん2010/06/13(日) 05:25:30ID:???
一番最初にディレクトリ構造作るときしか使ったことない。
0330nobodyさん2010/06/13(日) 07:21:39ID:???
delete がないから使いづらい
0331nobodyさん2010/06/13(日) 07:57:06ID:???
自分も最初にディレクトリ構造作っったものをコピペで済ましてるわ。

ローカル環境にPHPいれてZF最新版いれて・・・ってやる程恩恵あるのかなと疑問に思ったんだけど、
覚えなくてもいい感じかね。
0332nobodyさん2010/06/14(月) 20:34:32ID:sDoDPQ6e
Zend_Service_Amazon_Itemってどう使ったら良いの?
恥ずかしいんだけど簡単に教えて欲しい、

$query = new Zend_Service_Amazon($access_key, 'JP', $secret_key);
$results = $query->itemSearch(
array(
'SearchIndex' =>'Music',
'Keywords' =>$params['key']
)
);

この$queryと$resultsに対してどうしたら良いのか。。
Amazon/Item.phpの
public function __construct(DOMElement $dom)
をどう解釈したら良いのかわからない…

誰かアドバイス頼みます
0333nobodyさん2010/06/14(月) 22:17:48ID:+e+bNGnA
>>332
$results を foreach で回す。

foreach ($result as $k => $v) {
var_dump($v);
}
0334nobodyさん2010/06/15(火) 10:40:13ID:???
>>333
どうもありがとう、自己解決したよ
searchのオプションで'ResponseGroup' => 'Medium',指定しないと必要な情報が
そもそも取れないのを気づかなかった
アドバイスもサンキュー
0335nobodyさん2010/06/16(水) 16:18:46ID:N9yq5s20
Zend_Dbのqueryメソッドでupdateしたときの返り値Zend_Db_Statementオブジェクトについて知りたい。
この返り値$objは $num = $obj -> rowCount(); でアップデートの対象件数を
調べられるってことだけど、これについて教えて欲しい。

具体的に言うと、 アップデートする既存データ(カラム情報)と上書きするデータが
全く変化がないとき、$num=0を返すんだけど、これってこれで正しいの?

まるで変更前のカラム情報と変更後のカラム情報を比較して、実際のupdateするしないを決めてるみたいな挙動だけど
純粋にWhere以下の条件をクリアしてるアップデート対象の件数を返すと思って
更新のエラー判別や件数判定しようと思ってたので困ってます。

ZendFWは1.10、DBはMysqlです。
03363262010/06/16(水) 16:42:17ID:XZSSnjmG
前回の質問で回答をいただけなかったのですが、
どなたかご存知の方はいらっしゃらないでしょうか。
0337nobodyさん2010/06/16(水) 16:44:39ID:???
まさかこの一週間ずっと待ってたのか
03383262010/06/17(木) 11:07:21ID:???
>>337

色々と試行錯誤しながらも
皆様からのご意見をお待ちしておりました。

現状まだ解決しておりませんので
ご意見いただけると幸いです。
0339nobodyさん2010/06/17(木) 12:45:38ID:???
ワロタww
0340nobodyさん2010/06/17(木) 14:18:36ID:???
>>338
セッションの生存期間を延長したければ、もういちどrememberMeをコールしたほうがいいよ。
03413262010/06/18(金) 00:18:45ID:???
>>340

ご回答ありがとうございます。

できれば、一度ログインして
タイムアウトもしくはログアウトをするまでは
同じセッションIDを使用したいと考えています。

rememberMeを呼ぶとセッションIDが書き換わるようなので
ちょっと困っています。

同じセッション間でユーザがどのように
ページを遷移していったかログをとりたいのですが、
その時に識別するキーにセッションIDを使用しています。

セッションIDを使うのではなく、別の一意のIDを用意するべきでしょうか?
0342nobodyさん2010/06/18(金) 01:06:33ID:???
なんで小出しにしたの
0343nobodyさん2010/06/18(金) 05:58:12ID:???
>>341

> セッションIDを使うのではなく、別の一意のIDを用意するべきでしょうか?

はい
0344nobodyさん2010/06/18(金) 06:24:53ID:???
セッションハイジャックも考えて内部で別の値で保持せよ
という神の啓示セヨ
03453262010/06/19(土) 12:24:02ID:???
>>343 344

ありがとうございます。

それではセッションID以外の一意のキーを用意するようにします。

rememberMeもあまり多用すると、パフォーマンスに影響するという
情報もありましたので、要所要所で使用していきたいと思います。
0346nobodyさん2010/06/19(土) 12:46:56ID:???
rememberMe()ってクッキーの有効期限を操作するものだと思ってた。
0347nobodyさん2010/06/19(土) 16:33:15ID:MplSKe7W
Zend_dbのトランザクション処理について質問。
DBがMysqlのとき、トランザクションでcommit()メソッドを使って処理が成功した場合
$db->query($q1);
$db->query($q2);
$rs = $db->commit();
の返り値$rsをvar_dump($rs)したら、object(Zend_Db_Adapter_Pdo_Mysql)なんだけど、
このオブジェクトからエラーコードや処理した行数を取得するメソッドってないのかな?
エラーだけならtry~catchの分岐で捕まえられるけど、行数を取得するにはどうしたらいいの?

非トランザクション処理で返ってくるZend_Db_Statement_Mysqliオブジェクトの場合、
rowCount()とかerrorCode()とかのメソッドを利用してクエリ結果を簡単に確認出来るけど
トランザクション時の方はわからない。
どなたかアドバイスお願いします。
■ このスレッドは過去ログ倉庫に格納されています