トップページ⇒php
983コメント417KB

Pear

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。 NGNG
ってどうよ。
0653nobodyさん04/08/30 15:19ID:s3JBvD0S
DB_DataObject で joinAdd するときの話なんだが、

links.ini には
[tb2]
tb2_id = tb1:id

んで、
$do1 = DB_DataObject::factory('tb1');
$do2 = DB_DataObject::factory('tb2');
$do2->no = 1;
$do1->joinAdd($do2,"LEFT");

なとき、

SELECT * FROM tb1 LEFT JOIN tb2 AS tb2 ON tb1.id=tb2.id

とかなるんだが、俺としては

SELECT * FROM tb1 LEFT JOIN tb2 AS tb2 ON tb1.id=tb2.id AND tb2.no=1

になってほしいんだが。
どうすればいいとおもう?
0654nobodyさん04/08/30 15:20ID:???
あ、まちがい
[tb2]
id = tb1:id
だ
0655nobodyさん04/08/30 18:45ID:???
風がすごいですなー。
>>653
$do2->whereAdd('no=1'); とか $do1->whereAdd('tb2.no=1'); とかではだめ?
自分はDB_DataObjectのJOIN嫌いなのでテーブル結合はビュー使って
ビューに対してDB_DataObjectのインスタンスを作ってます。
だから↑で書いたのは間違ってるかも。
0656nobodyさん04/08/30 18:56ID:???
INNER JOINですが、

[table1]
id = table2:table1_id

$table1 = new Example_DataObject_Table1();
$table2 = new Example_DataObject_Table2();
$table2->example_field = 5;
$table1->selectAs();
$table1->joinAdd($table2);
$table1->whereAdd('table1.id = ' . $hoge);
$table1->find();

SELECT 〜 FROM example INNER JOIN table1 AS table2 ON table1.id=table2.table1_id WHERE table2.example_field = 5 AND table1.id = xxx

な具合に動いています。
0657nobodyさん04/08/30 21:50ID:???
>>647
復活したね。
ついでにこれで中の人も分かったので、これだけのドキュメントが行方知らずって勿体ない事態もこの先回避出来るぽい。
0658nobodyさん04/08/31 00:19ID:???
最近の関西の盛り上がりをみてるとPHPって
性交童貞もとい、西高東低な気がする。
0659nobodyさん04/09/01 06:56ID:Mk6yOqMs
すいませんが教えてください
PEARを使いたくてインストール方法を調べてたんですが

c:\php\go-pear.bat

なんてものはないんですが・・・

環境
WindowsXP
PHP4.3.2
0660nobodyさん04/09/01 07:20ID:???
>>659
なんでそんなバージョン使ってるの?
0661nobodyさん04/09/01 08:13ID:???
>>660
卒研で使うサーバーと同じ環境を構築ってのが理由だったんですけど・・・

みなさんはどこら辺を使ってるんですかね?
0662nobodyさん04/09/01 09:08ID:???
>>661
go-pear.batはcli版のphpで、PEARフォルダのgo-pear.phpを実行
しているだけなんだけど、php内のPEARフォルダに go-pear.php
ファイルはある?
066366004/09/01 09:21ID:???
>>661
> みなさんはどこら辺を使ってるんですかね?

私は常に最新版を使っているけど、PHP日本ユーザ会のページに各バージョンの
Release Announcement と ChangeLog(それぞれ和訳あり)、Bug情報が載っている
から、読んで判断されたし。

ttp://www.php.gr.jp/
0664nobodyさん04/09/01 09:43ID:???
>>662
それがないんすよ
ぐぐってやり方調べてもそこから始まってて、どうにもならなくてここにきたわけなんですが
cli版のPHPってのも初めて聞きました

>>663
参考にします
066566004/09/01 10:06ID:???
>>664
php-4.3.2-Win32.zipの中にはgo-pear.batが入ってるよ(確認した)。
本家のページからWindows binary(not Windows installer版)を再入手してはいかが?
0666nobodyさん04/09/01 18:36ID:???
>661
そのサーバは攻撃されたらあぼーんですね。
0667nobodyさん04/09/01 19:10ID:???
http://pear.php.net/manual/ja/installation.getting.php
0668nobodyさん04/09/02 16:44ID:???
>>661は解決したのか?
066965304/09/02 17:40ID:???
遅くなったが、
>>655,656
の通りでうまくいった。ありがとう。

で、質問ばっかりで申し訳ないんだが
CROSS JOIN する場合はどうすりゃいいんだ?
$table1->joinAdd($table2,"CROSS");
ってのはないみたいだし、

INNER JOIN table2 ON TRUE
ってすればいいかなぁとおもったんだが

$table2->whereAdd('true');
$table1->joinAdd($table2,"INNER");
とかしてもJOINされてないんだよね。

links.iniにON条件を書いてないとjoinAddできないのかな・・・
067066104/09/03 07:06ID:???
>>668
すんません、まだです
PEAR自体は入ったっぽいんですけど
プログラム組んでみると動かない・・・
0671nobodyさん04/09/03 07:42ID:???
Quick_Formのradioエレメントについてなんですが、
未選択状態を調べるにはどうすればいいのでしょうか?
addRuleでrequiredを追加してみたんですが、エラーが発生しないようなんです。
未選択状態だと、以後のチェックも行われないみたいだし。

デフォルトでどれかを選択状態にしておけばいいのですが、
利用者が選択を忘れてデフォのままsubmitしてしまうのを
避ける為、デフォルトは設定せずにしておきたいのですが。。。

$form->addElement('radio','radio_select',NULL,NULL,'A');
$form->addElement('radio','radio_select',NULL,NULL,'B');
$form->addElement('radio','radio_select',NULL,NULL,'C');
$form->addRule('radio_select','選択してください','required');
$form->addRule('radio_select','選択値が異常です','regex','/[A-C]/');

としていますが、どこかおかしいですか?
0672nobodyさん04/09/03 09:04ID:???
>>671
うちの HQF 3.2.3 では期待通りに動くっす.
他の element もまじえて $form->validate() した後の $form を Var_Dump::display() したりすると,
何か掴めるかもしれないね.

ただ,'radio' は group の中に入れないと「選択してください」が複数出てきて見た目がちょっと変.
067367104/09/03 10:59ID:???
>>672
さんくす。
デバッグコンソール見て判った。配列を一つ掘っているのね。
どれかを選択すれば全てのエラーは消えるみたいだから、
一つ目のエラーを確認して1行だけ出力します。
あぁ、すっきりしますた。
0674nobodyさん04/09/03 13:29ID:???
亀レスですが、radioはこんな感じで動かしてます。ご参考まで。

$examples = array();
array_push($examples,
HTML_QuickForm::createElement('radio', null, null,
'ラベルA', '値A',
array('id' => 'example1'))
);
array_push($examples,
HTML_QuickForm::createElement('radio', null, null,
'ラベルB', '値B',
array('id' => 'example2'))
);

$form->addGroup($examples, 'example', 'Radio Example', " \n");
$form->addRule('example', 'Message for the Required Element',
'required', null, 'client'
);
0675nobodyさん04/09/03 17:31ID:lg7eGDsn
Spreadsheet_Excel_Readerで日本語を表示成功した方いますか
0676nobodyさん04/09/03 17:55ID:CNeebmaf
>675
ttp://ns1.php.gr.jp/pipermail/php-users/2004-August/023593.html
0677nobodyさん04/09/03 19:21ID:???
Mojaviを学ぼうと思って、まずはphp観測所さんのMojaviサンプルで遊んでます。
とりあえずレンダラとしてSmartyの代わりにFlexyを使うようにしたり
PgSQLSessionHandlerを改造してMDBSessionHandlerを作ってみたり。
肝心のアプリはまだまだできてませんが、面白いですね。
ムックを首を長くして待ってます。

あとAuth_Container_MDBやCache_Container_mdb, MDB_QueryTool_Queryとかで
MDB::connect($dsn)をMDB::singletonに書き換えるとちょっとだけ幸せになれる気がしますた。
0678nobodyさん04/09/06 08:31ID:h3KSdOjP
>676
ようするにお前もわかんないだな
0679nobodyさん04/09/07 10:53ID:???
>>677
なんでこのスレでそんなこと言ってんの?
0680nobodyさん04/09/08 07:34ID:???
まぁネタないんだし…

漏れは >>677 のコードには興味あるよ。
0681nobodyさん04/09/14 00:59:51ID:pZNPN1gg
Net_UserAgent_Mobile、最近更新無いなぁ・・・ショボン
確か、ここに作者さん居なかったかな?

お元気ですかー。
0682nobodyさん04/09/14 10:02:01ID:???
>>681
お待たせして申し訳ないです。いたって元気にしております。
近々HTTP-MobileAgent 0.22相当をリリース予定です。
最新のDoCoMoディスプレイマップをご希望の場合は、Perlモジュール
HTTP-MobileAgentに付属のmakexmldocomomapスクリプトを使ってXMLファイル
を定期的にアップデートする方法をお勧めします。
068368104/09/14 13:30:11ID:???
>>682さん
あ、呼び出しちゃって申し訳ないです。
お疲れ様です。有難く使わせてもらってます。

makexmldocomomapで、xml吐き出したんですけど、
これを元に、DoCoMoDisplayMap.phpを書き直す(足す)んですか?
それともphpで参照できるようになってるんでしょうか?

あと、まだ先なのですが、Vodafone新端末でAgentが、
J-PHONE → Vodafoneとかに変わるのがちょっと気になってます。
068468204/09/14 13:39:13ID:???
>>683
はい、PHPからそのまま(HTTP-MobileAgentと共通で)使えます。
具体的には、環境変数DOCOMO_MAPにXMLファイルのパスを記述するだけです。

PHPスクリプトで書くなら、

$_SERVER['DOCOMO_MAP'] = '/path/to/DoCoMoMap.xml';

Apacheの設定ファイルに書くなら(mod_envモジュール)、

SetEnv DOCOMO_MAP "/path/to/DoCoMoMap.xml"

とします。
068568104/09/14 14:57:50ID:???
>>682さん
ありがとうございますー。
SetEnvでイケました。

これからも、頑張ってください!
0686nobodyさん04/09/27 00:45:33ID:???
Net_UserAgent_Mobile
0.20.0up
いつも使わせてもらってます。
作者さん乙。
068768204/09/27 11:43:26ID:???
>>686
ありがとうございます。遅くなって申し訳ない。
安定しているので年内にはエンドユーザドキュメントを書いてstableリリース
(1.0.0)にしようと考えています。
要望等ありましたら遠慮なくここに書いて下さいね。検討させて頂きます。
というか開発手伝ってもらうのも歓迎ですが。
068868104/09/27 20:36:55ID:???
私もpear upgradeさせてもらいました。
ついにstableリリースご検討ですか。
お疲れさまです。

新端末検証ぐらいなら少しお役に立てるかも・・・
0689nobodyさん04/10/01 18:33:03ID:???
ムック キタ━━━━━(゚∀゚)━━━━━!!!!


という事で質問なのですが、XML の読み込みには XML_Parser がありますけど、
書き込みも考えた場合、何かいいパッケージか参考になる実装ありますか。
PHP にある libxml ベースの関数はバージョン依存があるので避けようかなと思い PEAR で探しています。
0690nobodyさん04/10/01 20:25:59ID:???
SmartyでHTML_QuickForm_Controller使う方法載ってました?
0691nobodyさん04/10/01 21:30:00ID:???
>>689
ガチャピンとはどういう関係でしょうか?
教えて下さい。お願いします。
0692nobodyさん04/10/01 22:38:46ID:???
>>690
ムックのこと言ってるなら立ち読みいってらっさい。
玉石混淆だから、欲しいネタがあるかどうかチェックするといいよ。つーか次の号のために買うといいよ!
あと QFC だけなら神 PDF 出てるよ。
http://hatotech.org/kumatch/datas/quickform.pdf

>>691
h たんはガチャピンxムックにはぁはぁするヒマがあったら隣近所との親睦度アップを考えた方がいいと思います!
それから猫飼おう。スカパー入れよう。
069368904/10/01 23:04:44ID:???
>>692
アドバイスありがとうございます。
先ほど猫を買ってきて、スカパーに加入しました。
069468904/10/02 01:50:08ID:???
PEAR::Config で暫くやってみます。どもでした。
0695 ◆AngelH/kMI 04/10/03 06:08:26ID:???
>>689
http://pear.php.net/package/XML_Serializer
かなぁ・・・。微妙だけど。
0696nobodyさん04/10/12 23:25:06ID:???
しかし、PEARの本家サイトなんであんなに重いの?
PEARで作られているからかw
0697nobodyさん04/10/14 02:21:43ID:???
pear.php.netそんなに重いか?
瞬時に返ってくるけどな。
0698 04/10/14 18:13:56ID:???
PEARって使いたいPackageを自分で導入しなきゃ駄目?
全部一括導入はない?
0699nobodyさん04/10/15 02:18:53ID:???
全部導入というのはそもそも無意味。
Packageによっては特定のextensionを前提にしているものもあるので
たとえインストールしても動かない場合もあり得る。
(pear インストーラを使えばその辺もチェックしてくれる)

パッケージリストを見て
使いたいPackageだけ pear install で入れるのがPEAR流だな。
0700nobodyさん04/10/16 20:38:51ID:???
>>687
使わせてもらってます。
ezでサブスクライバNOを取得するメソッドもできれば・・・
あとezのgetModel()はあの形でstableになっちゃうんでしょうか・・・
070170104/10/17 02:14:15ID:ldM4ELJf
Authを使っているのですが。

これって、usernameとpasword 以外にチェックをする項目を増やせないんですかね?

やりたいことは、下記のようなことです。

データベースで登録されているユーザーの一覧があって、そこには
username/passwordの他に、そのユーザーが有効かどうかのuservalidというフィールドが。
で、このuservalidフィールドがYesの時のみ認証をOKにするというようにしたいのです。

・・・・それとも、Authが作るDBオブジェクトを直接いじれって感じでしょうか。



ちなみに、私もMacOSX10.3.4/PHP4.3.8で>>485さんとおなじ症状がでて困っております。
手動しかないかなと、あきらめかけていますが。
0702nobodyさん04/10/17 03:51:26ID:???
継承するか処理系に含めたらいいじゃん ('A`

LiveUser には isActive があるが、Auth とは比較にならないくらい困ったちゃんなのでお勧めはしない。
0703nobodyさん04/10/17 04:34:16ID:4HQJ2MRV
HTML_QuickForm + Smarty + Mojaviのサンプルなんて無いですかね…?

突っ込み方からしてわからない…。
0704nobodyさん04/10/17 04:54:31ID:???
>>703
まるごとPHPにSmartyまでは載ってる。
QFはどうとでもなる。Mojaviの外に追い出すか、initialize,validate辺りに入れる。
070570304/10/17 05:22:41ID:4HQJ2MRV
>>702
Mojavi+Smartyは何とか理解済みです。
多分・・・。

で、
http://mojavi.try-angle.biz/wiki/
ここにあるサンプルで、smartyをfilterでインスタンス化して使おうとしてます。

initialize,validateあたりに入れる…というのはHTML_QuickForm_Renderer_ArraySmartyを・・・でしょうか。

すべてはじめたばかりなので、さっぱり理解できてない…かも。
070670304/10/17 05:27:10ID:4HQJ2MRV
まったく頓珍漢なことを書いていたようです。

QFのinitializeとかvalidate、ですね。
070770304/10/17 06:12:03ID:4HQJ2MRV
$renderer =& $request->getAttribute('SmartyRenderer');
$renderer->setAttribute('name', 'Smarty');
$qf = new HTML_QuickForm_Renderer_ArraySmarty($renderer);
$form->accept($qf);
$renderer->engine->assign('form',$qf->toArray());
$renderer->setTemplate('template.tpl');
return $renderer;

$formはQFでつくったものです。

$rendererに使われている、SmartyRenderを見てみると、
$this->engineにSmartyが読み込まれてたので引っ張ってみました。

こんな感じで、一応表示までは行きました。
が、本当にこれでいいのかどうか・・・。
先人の知恵を借りたいところです。
0708nobodyさん04/10/17 06:18:45ID:???
ちゃいます。
Action::initializeにQFの初期化や設定、
Action::validateにQF::validate、といったマッピングはどうですかー という話です。

QFの制御についてはまだまだ不満なので色んなやり方探して晒してください。
つー事で。
0709nobodyさん04/10/17 06:20:51ID:???
>>707
自分も大体そんな感じだったかと。

表示成功おめでとうです。
071070304/10/17 07:16:21ID:4HQJ2MRV
>>708
改良の余地がすごくあるってことだけわかります(苦笑)

なるほど・・・
0711nobodyさん04/10/17 20:02:38ID:???
>>701
Auth_Container_DB を継承した独自の storage ドライバを作って、
その fetchData メソッドで uservalid を見るようにすればいい。

または Auth そのものを継承するなら、login メソッドを override だな。
071270304/10/18 05:02:22ID:BqY5Q9Lz
mojaviのvalidateの動きがいまいちわからん…。

708の提案のように、initializeでQF設定して、

function validate (&$controller, &$request, &$user)
{
$form = & $request->getAttribute('form');

return $form->validate();
}

って感じで一応動くようになったのだが…
何か間違ってる気がする。
formからの入力は全部QF任せでいいのかな…?
0713nobodyさん04/10/18 08:42:42ID:Ujo7la6B
PEARの日本語マニュアルがなくなってね?
0714nobodyさん04/10/18 11:27:51ID:???
ttp://pear.php.net/manual/ja/build.log にエラー出てるね
0715nobodyさん04/10/18 16:59:14ID:???
>>700
PerlのHTTP::MobileAgent::Exモジュール相当の機能を取り込むかどうかです
ね。PearでHTTP::MobileAgent::Ex相当のパッケージをリリースするのはおそ
らく無理ですから、現行パッケージに取り込むしかないかな。
サブスクライバIDについては取り込みます。
getModel()メソッドについては、getRealModel()みたいな形での復活は有りか
なと思います。ただしDoCoMoのXMLファイルサポートのような形にできればで
すが。

現在のところHTTP::MobileAgentと完全に同じ機能群を提供するような話もあ
りませんし、要望はいつでも歓迎しますよ。
先に実装してからパッチを晒してもらう方が話が早いかも。
071670104/10/19 00:19:37ID:jZfyFMX1
>>703,711 thx.

loginをオーバーライドは面倒そうだったので、別処理にしました。
最初、コネクションを複数張りそうな気がしてたのですが、
>>217 を参考にして、リソースを使い回して処理できるようになりました。

で、今はHTML_QuickFormに取り組んでいるのですが、これって
入力(&チェック)→ 確認 → 処理
という場合は楽に利用できるのですが、
入力1 → 入力2 → 入力3 → 確認 → 処理
という多段階のフォームは難しいですね。

「まるごとPHP」買って、HTML_QuickForm_Controllerの記事を読んだのですが、
・セッションを使う
・header("Location〜を使う
というのに若干抵抗があるのですが。
(まるごとPHPのサンプルスクリプトがCookie機能OFFではうまく動作しなかったり)


できれば、<input type=hidden〜ででまわしたいなと思っています。
入力1で入力された項目が入力2にhiddenで引き継がれるように

$form_obj = new HTML_QuickForm(...);
.....
foreach($_POST as $key=>$value){
$form_obj->addElement("hidden" , $key , $value) ;
}

とやったのですが、フォームエレメントに加えられないようです。
addElementメソッドが変数を引数にすると、動作しないようなのですが。
それとも、なにかよいメソッドがあるのでしょうか?
マニュアル見回したところでは見つけられなかったです・・・・。
0717nobodyさん04/10/19 22:28:05ID:???
>>716
レンダラを生成する際にcollectHiddenをtrueにしてないとか
はずしてたらスマソ
でもaddElementで変数を引数にしてるから
動作しないってこたぁないと思う
0718nobodyさん04/10/20 17:13:22ID:???
マニュアル消えた?
0719nobodyさん04/10/21 01:53:43ID:???
>>715
なるほど
前のezのgetModel()のXMLファイルサポート実装に
チャレンジしてみるかなぁ・・・
0720nobodyさん04/10/24 04:07:54ID:???
マニュアルはいつになったら復活するんだろう。

ぐぐってミラーしてるところ見つけたから当面は困らないけど・・・。
0721nobodyさん04/10/24 10:49:40ID:???
>>720
アドレス教えて
0722nobodyさん04/10/24 10:57:28ID:???
>>721
どうぞ。
http://www.google.co.jp/
0723nobodyさん04/10/24 14:49:17ID:???
      _______                     __
    // ̄~`i ゝ                    `l |
    / /        ,______   ,_____    ________  | |  ____ TM
   | |     ___ // ̄ヽヽ // ̄ヽヽ (( ̄))   | | // ̄_>>
   \ヽ、   |l | |    | | | |    | |  ``( (.  .| | | | ~~
      `、二===-'  ` ===' '  ` ===' '  // ̄ヽヽ |__ゝ ヽ二=''
                         ヽヽ___//   日本

    ウェブ  イメージ  ニュース New!  グループ  ディレクトリ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ._________________
      |Pear マニュアル.             │・検索オプション
      └────────────────┘・表示設定
         | Google検索 | I'm Feeling Lucky |  ・言語ツール
          ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ○ウェブ全体から検索 ◎日本語のページを検索
0724nobodyさん04/10/25 13:10:14ID:???
日本語マニュアル直らないな…… orz
直すために何か自分で動きたいが何をどうしたら良いのか皆目わからん orz
0725nobodyさん04/10/25 13:28:50ID:???
>>724
PEAR Documentation List Mailing Listにポストされていました。
ドキュメントの問題はこのMLにポストするのが確実ですね。
http://marc.theaimsgroup.com/?t=109864526800003&r=1&w=2

とりあえずこちらで利用できるようです。
http://elf.no-ip.org/~elf/php/peardoc/ja/index.html
0726nobodyさん04/10/25 13:30:08ID:???
ttp://www.1x1.jp/php/manual_pear/
ここじゃダメなんですか?
0727nobodyさん04/10/25 17:14:21ID:???
>>726
もちろん、そこでもいいよ。
725のURLのは新しいということと、一次情報源に近いということがあるけど。
0728nobodyさん04/10/25 17:29:15ID:???
diff取って証明してくれ
0729nobodyさん04/10/25 19:46:22ID:???
>>725
情報サンクス
英語書けないヘタレなので英文 ML には加入してなかたよ orz
0730nobodyさん04/10/26 01:30:18ID:???
英語書けないヘタレに、何ができるのかと・・・
誤訳を読まされるぐらいなら、オリジナルを見た方がマシ。
0731nobodyさん04/10/26 11:36:21ID:???
>>730
724は別に自分が訳すとは言っていないのでは?
あとどうでも良いが、書けなくてもそれなりに訳せるやつは結構いると思う(かくいう自分も)。

まあしかし、オリジナル見れば良いってのには同意。
つーか日本語マニュアル無くなってることに気付かなかったし。
0732nobodyさん04/10/28 14:28:39ID:???
MDB_QueryToolと格闘中・・・
DB_QueryToolのサンプルを参考に(ttp://opensource.visionp.biz/index.php?id=78)
簡単なソースを書いてみたんだけど、

Notice: Undefined property: phptype in /usr/local/lib/php/MDB/QueryTool/Query.php on line 1475
Fatal error: Call to undefined function: tableinfo() in /usr/local/lib/php/MDB/QueryTool/Query.php on line 1509

だそうな。
tableinfo() は $this->db->tableinfo() てな感じで呼び出されていて、$db は MDBのオブジェクト。
確かにMDB.phpには定義されていない・・・。
stable バージョンのはずなのにどうなってるんでしょうかね?
普通に使えている方いらっしゃいますか?

PHP-4.3.9
Log 1.8.6
MDB 1.3.0
MDB_QueryTool 0.11.1
0733nobodyさん04/10/28 15:17:36ID:QKLA96NV
>>723
おまい、かなりヒマだな
073473204/10/28 16:18:34ID:???
事故レス・・・私が悪うございました。
テストと同時にサーバの設定変更も頻繁に行っており、PHPも何度もビルドしてました。
その過程で --with-mysql オプションのパス設定がおかしかったらしく、MySQLの
Client API version が ビルトインの 3.xx になっていたのが原因でした。
お騒がせしました。
0735nobodyさん04/10/28 16:21:01ID:???
>>732

phptype が未定義でNoticeがでているというのが重要。
DSNをちゃんと指定してない気がする。

ちゃんと接続できていれば $db は MDB オブジェクトじゃなくて、
各 DB に対応したドライバー(MDB_mysql等)のオブジェクトになるので
ちゃんとtableInfoメソッドは存在するはず。
0736nobodyさん04/10/28 16:23:35ID:???
どうした
073773204/10/28 16:38:31ID:???
>>735
はい。おっしゃるとおり、ちゃんと接続できていなかった模様です。
ありがとうございました。
0738nobodyさん04/10/28 21:25:08ID:???
事故かよ!

MDB_QueryTool は自動でエスケープ処理かからないのが難だと思う… 何かあっても良さそうだけど。
073973204/10/28 23:51:57ID:???
>>738
MDBで定義されているgetTextValueメソッドを使えっていうことなんですかねぇ?

いろいろ触って見ましたが、いまいち使い方が良くわからないですね。
DB_QueryToolのQuick demoにあるような単純なクエリーには威力を
発揮しますが、ちょっと込み入るとめんどくさい・・・。
構造上テーブル毎にクラスを作って、インスタンスを作成する度に
コネクションする必要があるし、いまいちメリットが見えてこないです。
もう少しドキュメントが整備されるまでほっとこうかなちう気になってました。
0740nobodyさん04/10/29 00:29:31ID:???
>>739
現状はインジェクション対策は自前でやるしかないですね。
いいアイデアがあれば、本家に投げてみたらどうでしょうか。

ちなみに(M)DB オブジェクトは、setDbInstance()メソッドで渡せます。
http://pear.php.net/package/DB_QueryTool/docs/0.11.1/DB_QueryTool/DB_QueryTool_Query.html#methodsetDbInstance
074173804/10/29 00:33:59ID:???
多謝。

>>740
DB_DataObject の方は whereAdd 等のメソッドを除いて add/stripslashes が自動でかかるのでコード量が低減されていい感じに使えてます。
自分で拡張したらいいんですかね… デザパタを知らないので効率的な実装方法が思い浮かばず。
0742nobodyさん04/11/03 16:42:39ID:qNk8kqG8
Mojavi+smarty+QuickFormでシコシコやってます。
登録->確認->完了という風にしたいんですが、
QFの表示はできるのですが、Validateがうまくいってないようで
確認画面すらいけてない状況です。

よくわからないのがMojaviとQFの絡み具合で、
登録画面を->IndexView_inputとしたら
確認画面はQFにやってもらえちゃうのか、
それともIndexView_successなどを用意するのかどっちにすれば
いいのでしょうか?

初歩的なことですみませんが、ご教授下さいませ。
0743nobodyさん04/11/03 20:28:08ID:UAoI4xx+
自前mvc QuickForm+Flexyつかってまる。
form action が index.php?act=regi とかだと動いてくれませんか?
regi.php とかでリクエストを受付けるようしないとダメっぽいです。
0744nobodyさん04/11/04 02:04:16ID:???
QuickFormを使用しています。
post後に凍結状態にしてユーザにチェックを促す。その後submitでDB書き込み
の様にしたいのですが。

validate() 後、freeze()でいきなりDB書き込みをしてしまいます。
0745nobodyさん04/11/04 02:16:57ID:???
QuickFormController
0746nobodyさん04/11/04 02:50:19ID:???
>>742
ご自由に。

俺は VIEW_INPUT に任せてる。
initialize でフォームの初期化、getRequestMethod に REQ_POST セット、
execute で遷移判定行って確認画面なら $form->freez() しておくと勝手に確認画面になる。

>>743
> form action が index.php?act=regi とかだと動いてくれませんか?
> regi.php とかでリクエストを受付けるようしないとダメっぽいです。
?

>>744
> validate() 後、freeze()でいきなりDB書き込みをしてしまいます。
プログラムは願った通りに動くのではなく、書かれた通りに動作します。
自分の書いたコード見直せと。
どこかで $form->process でもしてるんじゃないのかと予想。

>>745
('A`
0747nobodyさん04/11/04 03:54:33ID:???
>>746
さんどうもです。
form action が index.php?act=regi で動いてくれません。
746さんは動いてますか?
ちなみに、
$form =& new HTML_Quick_Form("contact", "post")でポストソメッドで
リクエストしてます。
0748nobodyさん04/11/04 04:07:24ID:???
>>747
form action って何ですか。
074974604/11/04 04:56:57ID:???
んー、こういう事ですかね。

例えば
edit.php?page=FrontPage
edit.php?page=Menu
等、GET メソッドにより処理の流れが変わるプログラムがあり、
その中で $form = new HTML_QuickForm('formName', 'POST') として QF を扱う場合に問題が起こるか、という事でしょうか。
過去にそういうプログラム書いた事がありますし、特に何で悩んだ記憶もありません。

>>742 以降の質問に共通して自分で書いた処理の流れが追えてなかったり、原因の追及といったデバッグの工夫が足りない気が…
0750nobodyさん04/11/04 10:01:13ID:KS5MBsCw
>>749
さんどうもです。
できるんですね。
>原因の追及といったデバッグの工夫が足りない気が…
反省・・・・
0751nobodyさん04/11/04 11:10:19ID:???
いや… 取り敢えず $_GET, $_POST, $form->exportValues 辺りを Var_Dump にかければ問題の区分出来ると思うんですけど。

> form action が index.php?act=regi で動いてくれません。
ひょっとして form 要素の action 属性ですか。
自分はプログラム自体は GET/POST に依存しないよう記述し、必要なパラメータは POST に突っ込んで送っていたので何とも。
でも問題が起こるとも思えませんけど。

ひょっとして処理の流れが分かれた後に QF の設定行ってませんか。
$form->addElement(A) のようにセットされた要素でないと受けれなかった気が。
上記の状態でフォームオブジェクト B が送信されても QF からは無視される、という事です。
0752nobodyさん04/11/04 20:14:21ID:KrYBwtYH
インスタンス作成時に
$form = new HTML_QuickForm('form', 'POST', "index.php?act=regi");
で書き出せました。
■ このスレッドは過去ログ倉庫に格納されています