【PHP】PEAR Part2
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/08/01(月) 21:27:12ID:pG+mahP3■PEAR
http://pear.php.net/
■前スレ
Pear
http://pc8.2ch.net/test/read.cgi/php/985665522/
0356nobodyさん
2006/04/30(日) 11:54:05ID:???そもそもPEAR_Info使ってもしょうがないんじゃね
手動で入れたやつは情報見れんよ確か
0357nobodyさん
2006/04/30(日) 12:26:03ID:???0358nobodyさん
2006/04/30(日) 12:37:11ID:???レスどもッス。
そうなんすか。手動だとPEAR_Info動かないんだ・・・。
確かに、PEAR_Infoなくても問題ないんですけど、動かないってのがまず気になったのと、
時間がたって、「あれ?なに入れてたっけ?」で確認できたら便利かなと。
必要なモジュールは入ってると思うんだけどなぁ・・・。
0359nobodyさん
2006/04/30(日) 12:40:38ID:???サイボウズの奴見つけたんだけど、メンテしてないようで、prototype.jsが1.4.0だとエラー...
あとAPIが今イチ使いづらい。
0361nobodyさん
2006/04/30(日) 15:22:45ID:???Console_Getoptは、その方法で必要ってのはわかったんですけど、
他に必要そうなものが見当たらないんですよね。
ログが出ればわかるんだろうけど、なんでログでないんだろ。
ログは、別のPHPで適当にエラー起こすとちゃんと出るのに・・・。
0362356
2006/04/30(日) 21:10:32ID:???いや、手動で入れたPEAR_Infoが動かない、ってことじゃなくて
手動で入れたPEARモジュールのディレクトリ指定して
PEAR_Infoの一覧にその手動で入れたモジュール一覧って表示できたっけなあと
PEAR_InfoってPEARのパッケージマネージャが作成する
レジストリファイルを参照してどんなPEARモジュールが入ってるかを
表示してたような気がする、、、って書いてて自信なくなってきたや
ええと、手動で入れたモジュールが表示されるかどうかは別として
ただ白紙とか動かんってことは何かミスがあるかと思う
動くのは動くはず
0363359
2006/05/01(月) 04:52:20ID:???スレ違い、すま
0364nobodyさん
2006/05/01(月) 12:43:13ID:???なるほど。いろいろいじってたら、時々エラーログが出たりする・・・。
ログは、
PHP Fatal error: Maximum execution time of 30 seconds exceeded in /home/httpd/vhosts/ドメイン名/httpdocs/PEAR/PEAR/Registry.php on line 161
で、Registry.phpでエラーが起こってるってことなんすね?
該当の場所は、
function hasWriteAccess()
{
if (!@file_exists($this->install_dir)) {
$dir = $this->install_dir;
while ($dir && $dir != '.') {
$dir = dirname($dir); // cd ..
if ($dir != '.' && @file_exists($dir)) { ←ここが161行目
if (@is_writeable($dir)) {
return true;
} else {
return false;
}
}
}
return false;
}
return @is_writeable($this->install_dir);
}
ん〜どうしたもんかな・・・。
0365nobodyさん
2006/05/01(月) 14:47:38ID:???PEAR_infoが動かない原因がわかったっぽい・・・。
Info.phpのソースを追っていてわかったのは、
共有サーバーなので、/usr/share/pearにアクセス権がないのが根本的な原因っぽいっす・・・orz
で、pear_info.phpのnew PEAR_Infoのときに、
new PEAR_Info("ローカルインストのPEARディレクトリのパス","????")
に変えてみたら、エラーログは出るようになりました。
で、PEAR_Infoの第2引数は、何を入れればいいんでしょ?
PEAR_Infoの中で、new PEAR_Configのときに必要な引数なんですが、
マニュアルによると、
string $user_file
file to read user-defined options from
なんだそうで。手動インストした場合、なんのパスになるんでしょうか?
0366nobodyさん
2006/05/01(月) 23:14:35ID:???0367nobodyさん
2006/05/02(火) 12:40:26ID:???0368nobodyさん
2006/05/03(水) 21:31:31ID:V5QcZDriどうすればいいですか?(sqlite)
while($row =& $result->fetchRow(DB_FETCHMODE_ASSOC)){
print $row[id];
}
ここに一文必要?
while($row =& $result->fetchRow(DB_FETCHMODE_ASSOC)){
print $row[id];
}
0369nobodyさん
2006/05/03(水) 22:43:29ID:???mysqliでしか試してないけど
while($row =& $result->fetchRow(DB_FETCHMODE_ASSOC)){
print $row[id];
}
$i=0;
while($row =& $result->fetchRow(DB_FETCHMODE_ASSOC, $i++)){
print $row[id];
}
0370nobodyさん
2006/05/04(木) 02:46:46ID:q11ggjCHできました。ありがとうございました。
0371nobodyさん
2006/05/04(木) 13:15:32ID:???HTML_QuickFormを使っている人はどのようにアップロードを実装したらよいですか?
0372nobodyさん
2006/05/04(木) 15:40:50ID:???個人的にはQFを捨てるのがいいと思うけど
QF使ってた時はFileエレメント継承して
自前で拡張Fileエレメントを実装してた
0374nobodyさん
2006/05/04(木) 19:09:05ID:???枯れてるし、特にこだわりや不具合がなければそのまま使ってもいいんじゃない?
今後っていっても大幅な改良があるか分からんし
結構好きなパッケージだったんだけどな
0375nobodyさん
2006/05/04(木) 19:44:11ID:???公開するほどのもんでもないしさ
推奨されてないとはいえアップロード周りの処理自体は
QFのFileエレメントに元から実装されてるし
普通にFileエレメント使えばいいと思う
ただ元のままではfreezeできんから
そこは拡張したってだけで
0376371
2006/05/04(木) 20:53:39ID:???freezeできないと何が困るかわからないので…
QFの説明をあちこちで読んだのですがfreezeってなんですか?
0377nobodyさん
2006/05/04(木) 20:58:07ID:???0378nobodyさん
2006/05/04(木) 21:11:33ID:???0381nobodyさん
2006/05/05(金) 10:40:02ID:???>>377は俺じゃねえw
非推奨なのは将来的にサポートされないからだっけ
freezeは各エレメントのリクエストをhiddenで
埋め込んだ状態にする、確認画面とかで使う
>>379
うーん、多機能なだけに全部QFでやろうとすると
QFのコードがMVCの色んなとこに分散しちゃうような気がする
組み方が悪いだけかもしれないけど
チーム内全員がQFを熟知してるならいいけど
0の状態から完全になじむのには時間のかかるパッケージだと思う
0382nobodyさん
2006/05/05(金) 16:48:20ID:???なるほど。細かい説明サンクス。
確かに学習コストは意外にかかるな。
でもjavascriptを自動で吐いてくれる魅力には勝てないww
fileは、セキュリティ的に問題があるのかと想像していたのだが
そういう意味ではなかったのか。
0383nobodyさん
2006/05/06(土) 00:29:52ID:???分散するって感じにはならないなぁ
Filter で QF のオブジェクト自体と画面遷移を管理
エレメントはロジックの方で作成〜みたいな
まぁつまりやり方次第であって QF 使ったら必ず MVC が汚くなるとかそういうことじゃないぞと
学習コストがけっこうかかる点は同意
あとJSを自動で吐く魅力にも激しく同意w
0384nobodyさん
2006/05/06(土) 22:04:49ID:???確かにうちでもMVC的には問題ない
それより何かトラぶった時と、何かちょっとしたことをしようとした時に
調べたり面倒なことが多い。
情報も少ないし。
ところでCSRF対策のトークンをhiddenに仕込んでいるのだが受け取り側で
hiddenだけチェックしてくれないのだけどどうしてる?
0385nobodyさん
2006/05/06(土) 22:32:16ID:???まぁほとんどのPEAR物はそんな感じな気もするけど
> hiddenだけチェックしてくれないのだけどどうしてる?
ビミョーに意味がわからないが
フォームの hidden 要素に初めから固定で値を入れておきたい時は
setConstants() を使って入れてる
……ってそういう話じゃなく?
0386nobodyさん
2006/05/06(土) 22:47:00ID:???ページ1 hiddenにトークンを入れる
ページ2 sessionのトークンとhiddenから送られて来たトークンが同じものかチェック
これができなかったのです。
0387nobodyさん
2006/05/07(日) 02:20:02ID:dJnoXYUq0388nobodyさん
2006/05/07(日) 11:38:03ID:???理解した
hiddenの値がどうこうというより,
固定値と入力値との数値比較チェックがデフォルトで Rule として搭載されていないってことね
HTML_QuickForm_Rule_Compare や HTML_QuickForm_Rule_Range をベースに
固定値との比較をするような Rule を作ってしまえば簡単なんだけど
いちいち addRule() するだけでも面倒だよね……
0389nobodyさん
2006/05/07(日) 22:28:08ID:???CSRF対策のためにチケットを発行し、そのチェックをしたいのです。
1. ページ1でチケットを発行。セッションとページ1のhiddenに埋め込む
2. ユーザがPOSTする
3. セッション内のチケットとPOSTされたきたhiddenのチケットが同じであるかどうか
の照合をしたい
ということです。
addFormRule() を使うという手もあるかな?
うーん、よくわかんない...
0390nobodyさん
2006/05/07(日) 23:03:47ID:???たぶんその通りに理解できてると思うが.
addFormRule() なら何でもアリだね.
create_function('$values', 'return $values["ticket"] == $_SESSION["ticket"]')
みたいのを addFormRule() する,と.
(テキトーに書いたので動かして確認はしてません)
0391nobodyさん
2006/05/07(日) 23:15:10ID:???早速試してみましたができませんでした…
マニュアル読んでもaddFormRule()の使い方がわからんのですよね。
引数のmixedはどう使うのかと…
0392nobodyさん
2006/05/08(月) 00:01:43ID:???マニュアル見ても書いてないんだもんなー。
結局ソース読まなきゃいけないという学習コストの高さはやっぱりたまにキズだな
addFormRule
* @param mixed Callback, either function name or array(&$object, 'method')
オブジェクトとメソッドで渡せるようだ
0393nobodyさん
2006/05/08(月) 07:44:43ID:ZvSis4Rx0394nobodyさん
2006/05/08(月) 08:17:28ID:???そうなんだけど、Pear パッケージはテストを必ず
つけろってルールにしてくれんかなと思う。
CPAN とのいちばんの違いはもちろん量だけど、
質の違いはテストの有無に起因するんじゃないかと
思う今日この頃。
0395nobodyさん
2006/05/08(月) 11:24:03ID:???Thanx. かなり検索しているけど知らなかったいい資料ですね
tokenのvalidateもfreezeするとhiddenに前のtokenが入ってしまうという
また面倒なことになった
あー、QFってこういうところマンドクセ
0398nobodyさん
2006/05/11(木) 13:30:14ID:0g4oanFp(平行してPHP質問スレッドにもマルチしてます。)
・・・微妙に質問内容が違うってことで容赦いただければと思います。ゴメンナサイ。
Spreadsheet_Excel_Writerで、データを落とし込んだファイルにパスワードをつけることはできますか?
要はSaveAsメソッドの設定ができるかどうかってことなのですが・・・
どうにも資料が見当たらないので、何か情報をお持ちの方がいらっしゃったら教えてください。
0399nobodyさん
2006/05/11(木) 14:31:52ID:???0401nobodyさん
2006/05/11(木) 17:32:00ID:???0402nobodyさん
2006/05/11(木) 17:48:52ID:???質問掲示板に
↓
質問する
↓
「自分で調べろ」
【意味無し黄金パターン その2】
質問掲示板に
↓
質問する
↓
「ソース読め」
0404nobodyさん
2006/05/11(木) 20:31:52ID:???wizard.phpの住所のところが文字化けする。
不思議なのは、addressをすべてaddress1とかに変更すると
なぜか直ること。
日本語関係だったらまだわかるんだが。
0405nobodyさん
2006/05/11(木) 21:18:03ID:???初心者でもトライしてみる価値はあるんじゃないでしょうか。
とか書いてみるテスト
0406nobodyさん
2006/05/11(木) 21:21:19ID:???いや、それマジで勉強になるよ。初心者こそやるべきだと思う。
スポーツの世界でもよく言うが、「見るのも勉強」ってほんとだと思う。
それに、書いてあることが解るようになるとなんだか嬉しいし。
0407nobodyさん
2006/05/11(木) 21:35:10ID:???0409nobodyさん
2006/05/11(木) 21:42:53ID:???0411nobodyさん
2006/05/12(金) 14:15:54ID:???0412nobodyさん
2006/05/12(金) 14:26:06ID:???そもそもファイルにパスワードを付ける必要性は?
それぞれにパスワードつけて管理できんの?
つーかファイルにつけなくてもいーんじゃね?
そんな大事なもんだったら別の面でセキュリティ考えた方がよくね?
とかどうだい
0414nobodyさん
2006/05/13(土) 15:23:27ID:???と思って見に行ったら年末にbetaが出てたのね
0415nobodyさん
2006/05/15(月) 01:18:18ID:???0416398
2006/05/15(月) 10:16:25ID:???・・・必要性も何も客の要望なんだもん。というのがSEの見解。
なんだか知らんがお客様のこだわりのポイントだそうです。orz
管理画面にアクセスするのにIPで制限をかけ、ログインするのにパスワード認証を行い
ファイルを落とすのに権限で制限をかけ、落としたファイルにパスワードをかける。と。
個人情報がどーだこーだといわれる時代ですから。
0417nobodyさん
2006/05/15(月) 15:27:53ID:???0418nobodyさん
2006/05/17(水) 23:56:50ID:???0419nobodyさん
2006/05/18(木) 11:32:52ID:???XML_RPCかな。
0420nobodyさん
2006/05/20(土) 11:06:26ID:FxboaxWW$res = $db->query($sql);
if (DB::isError($res)
…
と記述して、クエリの実行時エラーを検出しようとしているのですが、
例えば、$sqlに存在しないテーブルへの参照クエリを設定して実行しても、
$resにはDB_Resultが返されます。
$res->fetchRow()するとDB_Errorが返ってきます。
var_dump($res)すると、$resに格納されているDB_Resultの['result']に
DB_Errorが格納されています。
これって仕様なのでしょうか?
PHP 5.1.2
MySQL 5.0.19
0422nobodyさん
2006/05/21(日) 08:53:10ID:???自己レスですが、PEAR::DBのバージョンが古かったようで、
最新バージョンに上げてもらったら本来の動作になりました。
0425nobodyさん
2006/05/22(月) 10:50:10ID:???0426nobodyさん
2006/05/22(月) 12:40:43ID:???0427421
2006/05/22(月) 20:39:50ID:???それをガタガタといちいちケチつけやがって!
初心者をなめてんじゃねーぞ!
かかってきやがれゴルア!
0428nobodyさん
2006/05/22(月) 21:20:35ID:???0430nobodyさん
2006/06/02(金) 09:48:05ID:???ADOdbを使おうと思うのですが、
> ADODBの最強な点はダイナミックリンク可能な点
この“ダイナミックリンク”って具体的に、どういう使いかたですか?
0431nobodyさん
2006/06/02(金) 11:54:14ID:???0432nobodyさん
2006/06/04(日) 19:58:04ID:???どうすればいいのでしょうか?
$form = new HTML_QuickForm('Test1', 'post');
$form2 = new HTML_QuickForm('Test2', 'post');
とやってみましたが、何か違うような気がしてきました。
0433nobodyさん
2006/06/04(日) 20:07:36ID:???0434nobodyさん
2006/06/05(月) 11:36:25ID:Wgk7hZcJソース読んでる方おしえてくださいませ
0435nobodyさん
2006/06/05(月) 13:00:34ID:82tWBB6mダンマリになります。何か考えられる原因が有ればおしえていただけ
無いでしょうか。。。
DOSプロンプトで
> CD c:\php
で移動して、
> go-pear.bat
でEnterを押しています。
Enter押下後に、何も表示されずダンマリ。
何分待っても(1時間は待ちました)なにも表示されないので
Ctrl+Cで強制終了。
環境は、WindowsXP SP2、PHP5.1.4です。
0436nobodyさん
2006/06/05(月) 13:12:43ID:???0437nobodyさん
2006/06/05(月) 14:06:54ID:???0438nobodyさん
2006/06/05(月) 16:15:22ID:???許可しないと接続できないよ。
やりかたはウィンドウズ板で訊くか、メーカに訊くか、マイクロソフトにでも訊いてくれ。
0439435
2006/06/05(月) 20:29:10ID:???ひとまず go-pear.php というのがあったのでそちらを試したところ
インストールできました。
0440nobodyさん
2006/06/06(火) 07:42:26ID:???0441nobodyさん
2006/06/06(火) 17:56:12ID:???CDDBを利用出来るPEAR用のライブラリがあるとのことで
ダウンロードして利用を試みているのですが、全く参考文献がないし
そもそもどのように使うライブラリかわかりません。。
ご存じの方は、どうやってCDDBにアクセスして出力するか
教えていただけないでしょうか?
0442nobodyさん
2006/06/06(火) 20:09:51ID:???Net_CDDBはalpha版なんだよ。
alpha版ってのは開発途中で脆弱性なんかもはらんでいるし、
ある程度わかってる人間が試用してバグなんかをフィードバックするもんなんだよ。
>ダウンロードして利用を試みているのですが、全く参考文献がないし
>そもそもどのように使うライブラリかわかりません。。
というような段階なら今はやめておいた方がいい。
それでも使いたいなら
http://pear.php.net/package/Net_CDDB/docs/latest/
を読んで頑張れ。
0443nobodyさん
2006/06/06(火) 20:10:22ID:???0444nobodyさん
2006/06/06(火) 20:58:04ID:???アーティスト名やアルバム名とかからも検索出来ないとあんまり使い道ないんじゃないの?
0445nobodyさん
2006/06/06(火) 21:39:57ID:???0446nobodyさん
2006/06/07(水) 00:13:00ID:???地道に手でデータ入力しないと使い物に成らないことは多い。
0447nobodyさん
2006/06/07(水) 01:37:05ID:y49n2VPpadodb-extのこと
エンジン部分がcで書かれてる
0449nobodyさん
2006/06/07(水) 12:02:25ID:L3b4rYZLのですが、あるSQL文を書くことが出来ないので、どなたか教えて頂きたい
のです。Tcustomerテーブルから、pointフィールドが「3か4か5」のものを
抽出しようとして、下記の文をPHP5で書きました。
$Tcustomer = DB_Factory::create( 'Tcustomer' );
$Tcustomer->addWhere(' point in ( ? ) ','3,4,5');
そうすると、pointフィールドが「3」のものだけが抽出され、「4」と
「5」のものは抽出されないのです。普通にSQL文で書けば、
select * from Tcustomer where point in (3,4,5);
とすれば良いのですが、どうしてもここはPEARのMDB_QueryToolで書かな
ければならない状況なのです。どなたかPEARのMDB_QueryToolでの書き方
を教えて頂きたく存じます。宜しくお願いします。
0450nobodyさん
2006/06/07(水) 13:25:11ID:???そこはよくわからんのだけど、単にMDB_QueryToolのインスタンスを返してくれるとして、
MDB_QueryToolのaddWhereは
function addWhere($where , $condition='AND')
{
if ($this->getWhere()) {
$where = $this->getWhere().' '.$condition.' '.$where;
}
$this->setWhere($where);
}
となってるから、
$Tcustomer->addWhere(' point in ( 3,4,5 )');
と書けば上手くいくと思う。
どうかな?
0452nobodyさん
2006/06/09(金) 20:53:34ID:???現在ファイルのアップロードが行える掲示板系のシステムをPHPで作成しています。
プログラム自体はそんなに苦労していないんですが、ひとつ付け加えたいものがあって悩んでいます。
大容量のファイルをアップロードする際、アップロードが終わらないと別の処理ができません。
そこで、「現在アップロードをしている」ことをわかりやすくするために、HTML_Progressを使ったポップアップウインドウで実現しています。
しかし、サンプルサイトをみても「総容量に対し、どれだけアップロードできたか」の進捗状況を表示するのではなく、
アップロードが終わるまでアニメーションを行い、アップロードができたらストップさせる形でした。
これを、「総容量に対し、どれだけアップロードできたか」の進捗状況を表示するようには、どうすればいいのでしょうか。
また、アップロードを行うフォームはHTML_QuickFormを使っているのですが、
アップロード中にブラウザを中止させたり、閉じたりした場合、進捗バーが止まらず、見かけ上常にアップロードしているように見えます。
できることなら、アップロード中にブラウザ側でなんらかのエラーが起きてアップロードができなくなったとき、
進捗バーを止め、エラーを表示したいのです。
アップロードに使っている関数はHTML_QuickForm_File::moveUploadedFileです。
この関数ではアップロードが「できた」か「できなかった」かの状態が取れるはずなのですが、
ブラウザからの中断には対応していないのでしょうか。
長くなりましたが、お答え願えれば幸いです。
最後に、もうひとつ質問なのですが、同システムをPerlでやろうとした場合、
PHPで行うより簡単になりますか?
0454nobodyさん
2006/06/09(金) 22:35:31ID:???http://uber-uploader.sourceforge.net/
■ このスレッドは過去ログ倉庫に格納されています