【PHP】PEAR Part2at PHP
【PHP】PEAR Part2 - 暇つぶし2ch448:nobodyさん
06/06/07 09:50:37
>>447
>>430ではないが、その拡張を使ったらどの位早くなるか知ってる香具師いる?

449:nobodyさん
06/06/07 12:02:25 L3b4rYZL
すみません。ちょっと、教えて下さい。PEARでMDB_QueryToolを使っている
のですが、ある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での書き方
を教えて頂きたく存じます。宜しくお願いします。

450:nobodyさん
06/06/07 13:25:11
DB_Factoryって自作のクラス?
そこはよくわからんのだけど、単に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 )');
と書けば上手くいくと思う。

どうかな?

451:nobodyさん
06/06/07 21:13:32 Ho01fxGO
>>450

>>449です。出来ました!!ありがとうございます。

452:nobodyさん
06/06/09 20:53:34
少し質問させてください。

現在ファイルのアップロードが行える掲示板系のシステムをPHPで作成しています。
プログラム自体はそんなに苦労していないんですが、ひとつ付け加えたいものがあって悩んでいます。

大容量のファイルをアップロードする際、アップロードが終わらないと別の処理ができません。
そこで、「現在アップロードをしている」ことをわかりやすくするために、HTML_Progressを使ったポップアップウインドウで実現しています。
しかし、サンプルサイトをみても「総容量に対し、どれだけアップロードできたか」の進捗状況を表示するのではなく、
アップロードが終わるまでアニメーションを行い、アップロードができたらストップさせる形でした。
これを、「総容量に対し、どれだけアップロードできたか」の進捗状況を表示するようには、どうすればいいのでしょうか。

また、アップロードを行うフォームはHTML_QuickFormを使っているのですが、
アップロード中にブラウザを中止させたり、閉じたりした場合、進捗バーが止まらず、見かけ上常にアップロードしているように見えます。
できることなら、アップロード中にブラウザ側でなんらかのエラーが起きてアップロードができなくなったとき、
進捗バーを止め、エラーを表示したいのです。

アップロードに使っている関数はHTML_QuickForm_File::moveUploadedFileです。
この関数ではアップロードが「できた」か「できなかった」かの状態が取れるはずなのですが、
ブラウザからの中断には対応していないのでしょうか。

長くなりましたが、お答え願えれば幸いです。
最後に、もうひとつ質問なのですが、同システムをPerlでやろうとした場合、
PHPで行うより簡単になりますか?

453:nobodyさん
06/06/09 21:06:47
>>452
すれ違い

454:nobodyさん
06/06/09 22:35:31
>>452
URLリンク(uber-uploader.sourceforge.net)


455:nobodyさん
06/06/09 22:38:54
>>452
ぐぐれば腐る程サンプルでてくるよ

456:nobodyさん
06/06/11 15:11:27
>>453
すみませんでした。

457:nobodyさん
06/06/12 02:35:54
HTML_Quick_Form_Controllerが何もうれしくない件について
URLリンク(pear.php.net)

これ理解するくらいなら、自分でコントローラ作った方がマシじゃない?
使ってるやついたらHQFCのいいとこを教えてくれ。

458:nobodyさん
06/06/13 00:45:56
世の中には自分で作れない馬鹿も存在するし(w

459:nobodyさん
06/06/13 00:49:11
コントローラを自分では作れないけど
この小難しい HQFC を理解して使える……ってのも
馬鹿の程度がかなーり微妙だよな

460:nobodyさん
06/06/13 02:26:47
>>459
同感。
小難しい HQFC を理解して使える馬鹿の登場を待とうか。
なんて、あおってみたりするテスト

461:nobodyさん
06/06/13 09:36:39
PEARってなんて読むの

462:nobodyさん
06/06/13 09:48:21
ドンブリ

463:nobodyさん
06/06/13 12:09:51
>>462
嘘教えちゃだめでしょ

>>461
クスコ

464:nobodyさん
06/06/13 12:36:45
>>461
サルスベリ

465:nobodyさん
06/06/13 13:15:57
Perl使いはPEARと書いてうんことよみます
PHP使いはPEARと書いてピアーとよみます

466:nobodyさん
06/06/13 15:37:05
ピアーだとpeerだけどね。和製英語じゃ恥ずかしいよ。

467:nobodyさん
06/06/13 16:31:37
洋ナシのことだから
ペアーでいいんじゃない



468:nobodyさん
06/06/13 16:33:31
どんなオチが来るのかと思ったら、普通に言っちゃったね・・・

469:nobodyさん
06/06/13 17:48:06
用無し

470:nobodyさん
06/06/13 19:04:20
誰がうまいことを言えと

471:nobodyさん
06/06/14 11:24:21
ペアはpairだが。ここの住人は英語が使えないな。

472:nobodyさん
06/06/14 12:05:34
きのうの昼下がり、対向車とすれ違うのが難しい狭い道路でのできごと。
対向車と鉢合わせ(↓な感じ)

_______/ ̄\____
●→                ←●俺
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

_______/ ̄\____
       ●→     ←●俺
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

_______/ ̄\____
          ●   ●俺
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

_______/ ̄\____
          ●   ●俺
       |    ( _●_)  ミ

_______/ ̄\____
       /  ●   ● | 
       |    ( _●_)  ミ

   ∩___∩
   | ノ      ヽ
  /  ●   ● | ベア─!!
  |    ( _●_)  ミ
 彡、   |∪|  、`\
/ __  ヽノ /´>  )


473:nobodyさん
06/06/14 16:59:31
アイアムヒアー

474:nobodyさん
06/06/14 19:17:59
>>471
片仮名だとそれ以外言い方なかろう

475:nobodyさん
06/06/15 10:33:44
くるくるパー

476:nobodyさん
06/06/15 13:37:41
んで結局ピアー、ペアーどっちなの?

477:nobodyさん
06/06/15 15:02:27
>>476

URLリンク(pear.php.net)
> 果物の梨と同じように(「ペア」と)発音します。

梨↓
URLリンク(dictionary.goo.ne.jp)

478:nobodyさん
06/06/15 15:05:14
漏れは ペア 派

479:nobodyさん
06/06/15 15:49:12
激しくDDI

480:nobodyさん
06/06/15 18:03:54
漏れは今poorだ。金くれ。

481:nobodyさん
06/06/15 18:16:56
480 nobodyさん sage 2006/06/15(木) 18:03:54 ID:???
漏れは今poorだ。金くれ。

482:nobodyさん
06/06/15 21:20:04
Spreadsheet_excel_writerを試用してるんですが、
セルに数値を入れるときカンマ区切りで表示する方法ないですかね?
NumFormatでもできないようなので、PHP側でnumber_formatして
代入しているのですが、office2003のexcelで開くと
文字列として認識され激しく鬱です。
当然関数も使えなくなりますし…

483:nobodyさん
06/06/15 22:42:31
>>482
void Format::setNumFormat (integer $num_format)

484:482
06/06/15 23:35:37
>>483
恥ずかしながらそのメソッドのマニュアルを見ても、
カンマ区切りのやり方が思いつかないんですが・・・。

ソース読まなきゃだめですか?

485:nobodyさん
06/06/16 03:02:14
PEARのライブラリって、Zendの人が作ったものの割合はどれくらいなんだろう?
なんかもうひとつイマイチなものが多かったりするんだが、
Zendの開発力ってあの程度のものなのかな。

486:nobodyさん
06/06/16 03:34:33
PEARの人って、
・元々PHP本体や拡張やってた人
・Zendの人でPHPの本体、特にZEやってる人
と余りかぶってない気がする。PECLの方は、元々は
拡張でやってたのをPECLに出したものが多いけどね。

487:nobodyさん
06/06/17 13:02:44
あれ、pear.php.netの鯖おちてるぞ

488:nobodyさん
06/06/17 15:04:46
>>487
日常茶飯事だからいちいち報告しなくてもいいよ。

489:nobodyさん
06/06/18 15:11:03
php使ってるからね。
検索エンジンが来たら落ちます。orz

490:nobodyさん
06/06/19 16:42:02
いつの間にかHTML_QuickForm2なんてのがある

491:nobodyさん
06/06/19 16:46:27
>>490
なにーーーーー
1との互換性はあるのか?
ファイルのアップロードはサポートされるのか?

ちょっといってくる


492:nobodyさん
06/06/19 17:09:57
URLリンク(pear.php.net)
The package development is currently in planning stage.

...orz

待つか

493:nobodyさん
06/06/19 18:02:43
1と同じ機能らしいけどどうだろ
欲しい機能ある?

one time token実装して欲しいなー


494:nobodyさん
06/06/21 12:59:40 af4RZ/Sl
MAC OS 10.4でpearをインストールするためにコマンドを打ち込むと
Warning: touch(): Unable to create file /usr/lib/php/.lock because Permission denied in Registry.php on line 284
could not create lock file: failed to open stream: No such file or directory
というエラーが出てしまうのですが、どこのパーミッションを変えればよいのでしょうか?

495:nobodyさん
06/06/21 13:20:26
/usr/lib/php/ ディレクトリか、
/usr/lib/php/.lock のファイルのどちらか。

まずは .lock を消して試すことだね。

496:nobodyさん
06/06/21 19:17:43
レンサバでPEARを使うにはどうすればいい?誰か教えて


497:nobodyさん
06/06/21 19:40:50
>>496
管理にお願いするか

自分で書き込めるディレクトリ(DocumentRoot外が望ましい)に手動で置いて
includ_pathを通す。

498:nobodyさん
06/06/21 21:32:47
>>494
sudo

499:498
06/06/21 21:37:25
あ、ごめん。質問内容が違ってたね

と言ってみる

500:nobodyさん
06/06/21 23:56:04
マカは氏ね。

501:nobodyさん
06/06/22 14:12:58 347Blei1
HTML_QuickFormでフォームの入力検証を行っているのですが
グループ要素の検証を行う時、
URLリンク(www.okushin.co.jp)
ここを参考にaddGroupRuleで以下のように書いたのですが
これだとクライアントで検証を行ってくれません。
色々なところに「,"client"」などを色々挿入してみたのですが、どうもうまくいきません。
複合要素の配列を使った検証で、クライアント検証をさせるにはどのように書けばよいのでしょうか。

$form->addGroupRule("pay", array(
"money"=>array(
array("金額は必須入力です。","required"),
array("金額は数字のみで入力して下さい。","numeric")
)
));

502:nobodyさん
06/06/22 20:39:31 5nFH6Fdq
>>496

telnetとかつかえる?

方法はいろいろあるみたい。
URLリンク(www.go-pear.org)

さくらでは、普通にpear install  -o PAER でローカルコピーできた。
ほかのとこでは、
-bash-2.05b$ lynx -source URLリンク(pear.php.net) | php4
とかいう感じでいけそうだった。

503:nobodyさん
06/06/24 08:49:42
PEAR にもよるけど、
単純にファイルコピーで使えたりするしね。

504:nobodyさん
06/06/24 14:46:40
>>503
手動でコピー(展開)してパス通してたら使えないの有るの?
知ってるなら具体的に教えて。
なんかの参考になるかもしれんし

505:nobodyさん
06/06/24 17:53:54
>>504
単純に外部ライブラリに頼るものじゃね
GD前提のモジュール(あるか知らないけれど)とかがあるとして
シェル使えなくてGDがレン鯖にも入ってなくて、
サポートもされないならそれは使えない
もちろんそれはPEAR自体の問題ではないけどね

506:nobodyさん
06/06/25 02:29:16
pear installはできるのにpear list-allができん、今まで問題なかったのになんじゃこりゃ。
原因分かる方おしえてくだされ

XML error at line 1, check URL
Invalid return payload: enable debugging to examine incoming payload


507:nobodyさん
06/06/25 13:35:09
pear list-upgrades してみるとか。

508:nobodyさん
06/06/25 14:48:24
pear list -a
は出る?

509:nobodyさん
06/06/25 15:59:40
>>507,508
ありがとう、無事できました。
upgrade-allでupgradeできたと思ってたんだけど、list-upgradesしたらどれもアップグレードできてませんですた。
で、PEARとXML_RPCを個別で指定してアップグレードしたところchannelがなんたらかんたらと言われて、
それにしたがったところ動くようになりました。

510:nobodyさん
06/07/11 19:31:23
PEAR::DB
This package been superseded by MDB2 but is still maintained for bugs and security fixes

MDB2 使うぐらいだったら、PDO の方が良いような…。

511:nobodyさん
06/07/19 02:41:49 bvrYbrpe
Services_Amazon(ver0.5.0)使ってみたんですけど、
複数キーワードの場合どう指定すればいいのかわからんです。
おしえてえらいひと

ソースはこれまんま使わせてもらったです
URLリンク(dozo.rgr.jp)

512:nobodyさん
06/07/19 03:02:13
自分で拡張しないとダメでしょ。自力で弄れないならver1.0まで待てば?
漏れなら単発で引いて、自分でマージ。

513:nobodyさん
06/07/20 14:43:10 9HfxuTZk
PEARインストールし、PEAR::DBを試そうとしています。
マニュアルで見ると、なにごともDB.phpのインクルードから的な感じで
説明なくそうなってますけど自分の環境にはDB.phpがありません。(インストール失敗してる?)
エラーもその旨出ます("DB.phpが見つからない")

おききしたいのは、インストール時に「DB.php」というファイルが生成されるのか、
phpをインストールしたときのように、なにか別のファイルの名前を変更するなどして自分でつくるとか、
そのあたりどういった具合になるんでしょうか。
環境はWinXPのsp1、phpは5.1.4です。

514:nobodyさん
06/07/20 15:03:18
>>513
どうやってインストールして、どのようにインストールが成功したと判断したの?
pear listで表示される?

表示されるなら、PEARのフォルダがinclude pathに含まれていないんじゃないかな?

515:513
06/07/20 17:26:23
>>514
ありがとうございます。
pear listではパッケージの一覧が表示されますし(すべて"安定"との表示)、
include_pathも確認済みです。

インストールはコマンドプロンプトからURLリンク(go-pear.org)にアクセスしてインストールしました。
その際にそれぞれのパッケージに対してダウンロードok,インストールokというような表示が逐一出まして、最後まで進んで終了しました。

最後に以下の警告が表示されました。
ひとつはWindowsの環境変数のパスが違っていると言うもの→PHPのマニュアルに従ってパスをC:\php\extにしていたが、警告を受けてC:\phpに戻しました。
それとphp.iniのinclude_pathに対してのもの→PEARへのパスを追記。
他に、phpフォルダ直下のPEAR_ENV.regをWindowsのレジストリに追加しておくと便利、という表示に従い、
意味はわかりませんでしたが実行しました。

何度かやり直し、今も確認してたんですが、やはりDB.phpというファイルはなく、
スクリプトの実行エラーもDB.phpが見つからない、という内容のままです・・・

516:nobodyさん
06/07/20 17:55:03
>>515
一見問題なさそうだけど・・・。

インストールは普通コマンドプロンプトから
pear install パッケージ名
で良いですよ。
pear listで表示されるstableは安定版という意味で、β版やα版を
入れるときは pear config-set preferred_state beta なんてことをやってから
インストールします。予断ですが。

一度 pear uninstall DB でアンインストールして、再インストールして見てはどうでしょう?

それと確認ですがDB.phpは本当にどこにもありませんか?
HDDを検索してみてはいかがでしょう?


517:513
06/07/20 18:46:05
>>516
ありがとうございます!解決できました。
おしえていただいたアンインストールのコマンドを試してみたら
"インストールされてません"とのメッセージが・・・
その後pear install DBとしたところDB.phpも現われ、スクリプトも実行できました。
インストールされてればpear listでもちゃんと"DB"と表示されるんですね・・・
今まではPEARを使うための準備をしてただけなのに勘違いしてました・・・
PEARをインストールすれば主だったパッケージはインストールされてるものとばかり・・・(恥)
もう何日かごちゃごちゃやっていたので本当にたすかりましたm(_ _)m

518:nobodyさん
06/07/20 19:02:35
>>517
うーむなんだかw
ま解決して何より。

もうひとつ豆知識として、モジュールには依存関係がある場合が
あるんだけど、依存するモジュールもまとめてインストールするときには

pear install --alldeps モジュール名

という書き方もできる。
また、インストール済みのモジュールは、

pear upgrade-all

で最新版(がリリースされてれば)に更新できる。

この2つくらいは覚えとき。

519:513
06/07/20 22:11:04
>>518
たびたびすいませんー。そのコマンドが心に沁みまする^^
いろいろ学んでいきたいと思ってます。

520:nobodyさん
06/07/23 04:35:31 becjw5iF
横からすみません。
PEAR::Auth使ってるのですが、少し時間が空くとusernameが空になる現象に困っています。
$myAuth->username から $myAuth->getUsername()に変えても直りません。
お助けください><;;

521:nobodyさん
06/07/23 04:43:40
$myAuth->getAuth()はtrueが帰って来ています。
30分ぐらい(?)他っておくと(アイドルにしておくと)起こるようです。
PHP5で最近pear install Authしました。

522:520
06/07/23 04:56:36
訂正します。
時間が空かなくても、ページ移動するごとにログインしている状態(getAuthがtrue)なのにusernameが空になっているようです...

523:nobodyさん
06/07/24 17:55:27 WjQLi7Eq
HTML_Template_Flexy についての質問です。
自宅環境で正常に動作するスクリプトを作ったのですが、レン鯖にアップすると
コンパイルが正常に行われません。

具体的には、HTMLタグが全て"Array"という文字になり、本来PHPコードに変換されるはずの{variable}等が
全く変換されず、そのまま出力されてしまいます。
PEARやHTML_Template_Flexy の再インストールもやってみましたが、変化ありません。
念のため php.ini の mbstring 関連の設定も揃えてみましたが、こちらも変化ありませんでした。

このような場合、どのような原因が考えられますでしょうか?
チェックすべき項目などがありましたらご指摘お願いします。


524:nobodyさん
06/07/25 09:30:59
自宅環境とレン鯖環境ぐらい晒したら?
ちょっとチェック用のスクリプト作って動作チェックぐらいして無いの?

525:nobodyさん
06/08/02 03:18:27 aylqqE98
すみませんが教えてください。
PEARのDBを使って、DB側で設定されたシーケンス値を
インサート後に取得する方法ってありますでしょうか?

PEARのマニュアルの警告には、シーケンスはDBMS側を使わずに、
PEARの中で管理しろと書いてあるのですが、
やっぱりDB側のシーケンスは使ってはだめなんですかね・・・?


526:nobodyさん
06/08/02 10:38:05
>>525
INSERT 前に nextId() を使って、次のシーケンスを取得しておいて
それを INSERT して、その後参照する場面でもそのシーケンスを使いまわす。

527:nobodyさん
06/08/02 12:41:04
>>526
やっぱりその手しかないのですよね。
ありがとうございました。


528:nobodyさん
06/08/24 23:34:20 KkbLy53/
PEAR::DBに関しての質問なのですが、
$db->setFetchModeを「DB_FETCHMODE_ASSOC」に指定すると、
2つのテーブルで同じ名前の列がある場合、片方しかとれません。

たとえば、
create table t1 (id integer, data varchar(10));
create table t2 (id integer, data varchar(10));

とした時に、下のようなSELECTを実行します。

select t1.id, t1.data, t2.id, t2.data from t1, t2 where t1.id = t2.id

すると、かえってくる連想配列の内容をprint_rでみると
Array
(
[id] => 1
[data] => data1
)
こんな内容が帰ってきます。FETCHモードが、「DB_FETCHMODE_ASSOC」の場合、
指定した列すべて取れないのでしょうか・・・?期待していたのは下のような結果なのですが。
Array
(
[t1.id] => 1
[t1.data] => data1
[t2.id] => 1
[t2.data] => data2
)
ちなみに、PHPは4.3.11、PEAR::DBは1.7.6、DBはpostgreSQLでV8.xです。
ご存知の方、いらっしゃいましたら教えてください。よろしくお願いいたします。


529:nobodyさん
06/08/24 23:38:19
>>528
t1.data AS t1_data, t2.data AS t2_data,
みたいにエイリアスで別々の名前つけてやって取得すればいけると思う

530:nobodyさん
06/08/25 00:23:23
>>529
そのとおりでした。
ありがとうございました。


531:nobodyさん
06/09/09 15:30:02
他スレに質問しましたが、PEARの話題はスレ違いだったのでこちらで、質問させて頂きます。
えろいひとがいましたら、おしえてくれたりしてください。

php4.3 redhatES4 apache1.3 mysql4.1 です。
PEARのDB_DataObjectで「UPDATE」するときの質問です。
DB_DataObjectのインクルードや設定ファイル読み込みが終わったとしします。

numが1のデータを探して年齢を変更するといった場合は

$hoge=DB_DataObject::factory("hoges");
$hoge->get(num,1);
$hoge->age = 15;
$hoge->update();

でできるのですが、numが1で名前がyamadaのデータの年齢を変更するといった場合がうまくできません。

$hoge=DB_DataObject::factory("hoges");
$hoge->whereAdd('id = 1');
$hoge->whereAdd('name = yamada');
$hoge->age = 15;
$hoge->update();

PEARのドキュメントをみても、複数絞込みのUPDATEの例がなくてこまっています。
直接SQL query()をなげるしかないのでしょうか。

532:nobodyさん
06/09/09 16:08:57
>>531
DB_DataObject の update() は基本的にユニークキーを指定して行なうものだけど
そうでなく自前で WhereAdd() した条件で広範囲に update() する時には
引数に定数をつけて update(DB_DATAOBJECT_WHEREADD_ONLY) してやるとよろしい

533:531
06/09/09 18:22:55
どうもありがとです。
たったそれだけのことなのですね。
基本的に2つに一致する条件のものは1つのレコードだけなのですが
まぁこのやりかたで解決しました。

534:nobodyさん
06/09/09 19:19:05
解決おめ

蛇足だけど DB_DataObject は全体の傾向として
テーブルに必ず int ひとつだけのユニークキーがあるようにしてあると
扱いやすいようにできている気がする

開発工期を短く済ませるために DB_DataObject で扱いやすいテーブル設計をするとか
邪道っぽいけどとても効果的だったりw

535:nobodyさん
06/09/09 19:34:57 BE:340493748-2BP(200)
たしかに、設計としてはアレだけど全部のテーブルに"auto_id"みたいなauto_incrimentを作っとくと便利

536:nobodyさん
06/09/16 22:13:02
Requiring E_STRICT 通った
URLリンク(pear.php.net)
PEAR新世紀幕開けか

537:nobodyさん
06/09/17 02:30:59 BzsrnxFm
今度PEARを使うことになったんだけど、PHP5だと
動かないやつとかあるのかな?

いまいち知らんけど、PHP4時代に作られたライブラリ
だと、PHP5で非互換な部分のせいで動かなかったり
するんかな。

538:nobodyさん
06/09/17 16:20:16
そんな心配はPHP6になったらまた作り直すことに成るから心配しなくても良いよ。
PHP5時代の資産が未来永劫使える保証すらないから。

539:nobodyさん
06/09/26 16:24:45
というけど今のPEARってほとんどPHP4で作られたものじゃないのか?
PHP5で作られたものなんでMDB2みたいな不安定なものばかりだし

540:nobodyさん
06/09/26 17:00:15
MDB2はPHP4ベースだし不安定でもない

541:531
06/10/01 07:09:16 Ge/0d2rj
以前質問したものです。またDB_DataObjectでつまづいてます。

php4.3 redhatES4 apache1.3 mysql4.1 です。
PEARのDB_DataObjectで「UPDATE」するときの質問です。

numが1のデータを探して年齢を+1するといった場合は

$hoge=DB_DataObject::factory("hoges");
$hoge->get(num,1);
$hoge->age += 1;
$hoge->update();

でできるのですが、numが1で誕生日が1月のデータの年齢を+1するといった場合がうまくできません。

$hoge=DB_DataObject::factory("hoges");
$hoge->whereAdd('num = 1');
$hoge->whereAdd('birthday = 1');
$hoge->age += 1;
$hoge->update(DB_DATAOBJECT_WHEREADD_ONLY);

+= のように加えたりする系の処理はDB_DATAOBJECT_WHEREADD_ONLYだと無理なのでしょうか。


542:nobodyさん
06/10/01 09:25:45
テーブル設計ぐらい示せよ。何となく設計がタコだと思う。
SQL直書きならできそうだけどな。

543:531
06/10/01 11:29:45 Ge/0d2rj
すいません。実際はちがうのですが上述の質問は下記を想定しています。
MYSQL4.1です。

CREATE TABLE `hoges` (
`id` int(10) NOT NULL auto_increment,
`num` int(10) NOT NULL default '0',
`age` int(3) NOT NULL default '0',
 `birthday` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) TYPE=MyISAM;

544:531
06/10/01 11:38:58 Ge/0d2rj
`birthday` int(3) NOT NULL default '0',

birthdayもとりあえずintegerで。

545:nobodyさん
06/10/01 11:54:05
>>531
$hoge->age = DB_DataObject_Cast::sql('age + 1');
ってことかな?

上記だと joinAdd() とかした時にハマる危険性がないでもないが通常は問題なかろ
$hoge->age = DB_DataObject_Cast::sql($hoge->tableName().'.age + 1');
とかだと冗長だけどさらに確実

とか書いてるけど試してないから実験は自分でやってみてね

546:nobodyさん
06/10/01 12:04:49
1レコード限定の更新じゃないUPDATEなら
SQL直書きにしといた方が、他の人が見たときに
ここは全体にかけるUPDATEなんだってわかりやすいと思うけどなあ
O/R mapperはSQL書かずにDB扱うためだけのもんじゃないのに

547:nobodyさん
06/10/02 09:06:19
そもそも「年齢」で管理しているのが良くないのでは?
普通は「生年月日」だね

548:nobodyさん
06/10/02 14:32:51
「生年月日」をDBに持っといて
「年齢」は取得するSQLだのプログラムだのでその時決定する
ってのがいいんでないかい
パフォーマンス要求厳しい場合は別だけど……

549:531
06/10/03 01:49:42
アドバイスありがとうございます。
num、age等はサンプルです。実際にやる場合は547氏のいうとおり
生年月日のほうがよいでしょう。

質問の意図としては
「複数行をアップデートする」
かつ
「+=といった数値を加える」
処理を上記方法でできないか?というかんじでした。

聞き方が悪くて申し訳ありません。
とりあえず試した方法でやってみます。
最悪SQL直で。

550:nobodyさん
06/10/03 17:48:51
うーん、例だと全然イメージ湧かないな。何をしたいの?

551:nobodyさん
06/10/03 22:37:28
pearのインストールに躓いたので質問させてください。

Xdebugをインストールしようと思い、
cmdから# pecl install Xdebug
を実行しました。

しかしエラーが表示され、
xdebugというフォルダが作成されるものの、
フォルダの中身は空っぽです。

設定を間違えているんでしょうか?

552:nobodyさん
06/10/03 22:43:50
エラーメッセージは?

553:551
06/10/03 22:55:42
>>552
ERROR: The DSP xdebug.dsp does not exist

と表示されます

554:nobodyさん
06/10/03 22:59:16
>>553
そのメッセージでぐぐっただけだけどこれは?
URLリンク(it-laboratory.seesaa.net)

555:551
06/10/03 23:43:31
>>554
ありがとうございます。これを試してみます。
ところでコンパイル版のインストールってどうすればいいんでしょうか?

installコマンドしか試したことがなく、
検索してもみつからないもので・・・

556:nobodyさん
06/10/03 23:48:23
>>555
URLリンク(jp.php.net)

557:551
06/10/04 03:03:08
>>556
ありがとうございます!
しかしいろいろ試してみた結果、
php5.1.6に対応したバージョンがないことに気づいてしまいました・・・

558:nobodyさん
06/10/13 01:37:55
PEAR::Net_UserAgent_Mobileの画面取得て
対応してないような新機種の時は
どうなるの?

559:nobodyさん
06/10/13 01:50:29
対応するの待つか自分でデータ追加しちゃうの

560:nobodyさん
06/10/14 05:37:40
まいっちゃう

561:nobodyさん
06/10/14 19:41:11
PEAR::Authを利用したログインシステムを作ろうと考えているのですが、
ブラウザを一度閉じても、次回アクセス時までログインを維持して自動ログインできるような機能
(mixiの「次回から自動でログイン」と同じ機能)は使えないのでしょうか?
$myAuth->setExpire(2000000);
$myAuth->setIdle(2000000);
とかやってみましたが、これではダメみたいですね。。。

562:561
06/10/14 21:43:52
すみません。その後調べていくうちに、サーバー側の設定が怪しいということがわかり、
php.iniを調べてみたら、session.cookie_lifetimeの値でいけました。
自己解決のスレ汚しすみません。

563:nobodyさん
06/10/16 02:34:42
pearコマンドでインストールする際、インストール先のパスって指定出来ないの?
スーパーユーザ権限が無いレンタルサーバなんだけど……。

自分でダウンロードしてホームディレクトリに書庫を展開するんじゃダメかな?

564:nobodyさん
06/10/16 03:20:32
スクリプト内でインクルードパスを追加するといい

565:nobodyさん
06/10/20 10:20:50 9mLjL02A
「IP,ユーザーエージェント等の環境変数を見て
検索エンジンクローラーかそうではない一般のユーザーかを
判別する」
といったクラスってPEARでありますでしょうかー。
色々調べたんですがみつからなくて。。。
あ。PEARじゃなくてもいいっす

566:nobodyさん
06/10/20 17:39:42
Spreadsheet_Excel_Reader/Writer の情報を追っているうちに
Excel_Reviser (既存のExcelファイルをテンプレートとして読み込んで値を書き換えられる)
の存在を知ったんですが、ダウンロード先がNot Foundになってました。
作者の連絡手段もどこにも見つかりません。(過去ログにあるメルアドは届かなかったし)
誰か持っている方いませんか??

567:nobodyさん
06/10/29 20:36:01
Spreadsheet_Excel_Writerでxls吐いてるとある程度の行数(っても30行やそこら)で
Excelが「メモリ不足です」ってダイアログ出して開けなくなる。
やっぱりBIFF8は実用段階じゃないって事なんだろうな。
同じような症状出た人いる?

568:nobodyさん
06/10/30 17:42:07 +kTSWHIU
どなたか xrea のサーバーに XML_sql2xml がインストールできた方いませんか?
どういう依存関係にあるのかわからず、どれをインストールすればいいのかわからないでいます。
どなたかご教授願います。

569:nobodyさん
06/10/30 17:51:50
>>568
今XML_sql2xmlのページ見たけど
Dependencies:
* PHP Extension: domxml
* PHP Version: PHP older than 5

PHP5以上でdomxmlが必要なだけみたいだが

570:nobodyさん
06/10/30 18:36:37 +kTSWHIU
>>569
php は 5 の環境で動いています。
domxml は phpinfo で調べたら
DOM/XML enabled
DOM/XML API Version 20031129
と、入っているようです。

URLリンク(lab.urume.net)

URLリンク(blog.hawklab.jp)
を参考にしています。

あと php を cgi モードで動くように .htaccess に
AddHandler application/x-httpd-phpcgi .php
の一行が入っています。

url から叩いて
URLリンク(www.example.com)
とすると、

No releases for package "pear/XML_sql2xml" exist
Cannot initialize 'XML_sql2xml', invalid or missing package file

install failed

というエラーが出てしまいます。

571:nobodyさん
06/10/30 19:02:38
>>570
XML_sql2xmlがまだbetaだからじゃね?
自分で解決できなさそうだったら
サイトからtgz落としてinclude_pathにアップする方が早いよ

572:nobodyさん
06/10/31 02:01:45
>>567
おれもおれも

573:nobodyさん
06/10/31 06:15:34
>>572
あー、じゃあやっぱりうちの環境の問題とかではないわけだなぁ。
となるとPerlで出力するとか検討しなきゃ駄目か。
そこだけPerlにすると色々共用できなくなって面倒なんだが

574:nobodyさん
06/11/06 23:55:00 Z3fQNHJB
QFでQFCを使わずに
入力->確認->処理をしたくて

hiddenでmodeを入れたんだけど
同じ名前だとfreezeで前の値になっちゃうっぽいんだけど
「この要素はフリーズしないで」みたいな命令ってある?

QFCをつかうのも大げさかなとおもっただけなので
hidden使わない方法でもいいです。

おしえてくだしあ

575:nobodyさん
06/11/07 02:58:06
>>574
hidden で setConstants() とかそういう

576:nobodyさん
06/11/07 11:02:29
>>575
ありがとうございます。

setConstantsも試したんですけど
使い方が間違ってました(汗

577:nobodyさん
06/12/02 22:00:57 P18lXKYL
Win版5.2でpearのパッケージマネージャをインストールしようとgo-pear.batを実行したところ下記のエラーが出ました
対処法を伝授下さい。

Are you installing a system-wide PEAR or a local copy?
(system|local) [system] :  ここでEnter

Below is a suggested file layout for your new PEAR installation. To
change individual locations, type the number in front of the
directory. Type 'all' to change all of them or simply press Enter to
accept these locations.

1. Installation base ($prefix) : C:\php
2. Binaries directory : C:\php
3. PHP code directory ($php_dir) : C:\php\pear
4. Documentation directory : C:\php\pear\docs
5. Data directory : C:\php\pear\data
6. Tests directory : C:\php\pear\tests
7. Name of configuration file : C:\WINNT\pear.ini
8. Path to CLI php.exe : C:\php\.

1-8, 'all' or Enter to continue:    ここでEnter
Beginning install...
Configuration written to C:\WINNT\pear.ini...
Initialized registry...

Warning: Cannot use a scalar value as an array in phar://go-pear.phar/PEAR/Command.php on line 268

Warning: Cannot use a scalar value as an array in phar://go-pear.phar/PEAR/Command.php on line 268

Warning: Cannot use a scalar value as an array in phar://go-pear.phar/PEAR/Command.php on line 268

578:577
06/12/02 22:01:31 P18lXKYL
続き

Warning: Cannot use a scalar value as an array in phar://go-pear.phar/PEAR/Command.php on line 268

Warning: Cannot use a scalar value as an array in phar://go-pear.phar/PEAR/Command.php on line 268

Warning: Cannot use a scalar value as an array in phar://go-pear.phar/PEAR/Command.php on line 268
Preparing to install...
installing phar://go-pear.phar/PEAR/go-pear-tarballs/Archive_Tar-1.3.1.tar...
installing phar://go-pear.phar/PEAR/go-pear-tarballs/Console_Getopt-1.2.tar...
installing phar://go-pear.phar/PEAR/go-pear-tarballs/PEAR-1.4.11.tar...


Warning: Cannot use a scalar value as an array in phar://go-pear.phar/Archive/Tar.php on line 2334

Warning: Cannot use a scalar value as an array in phar://go-pear.phar/Archive/Tar.php on line 2338
Could not get contents of package "". Invalid tgz file.
Cannot initialize 'phar://go-pear.phar/PEAR/go-pear-tarballs/Archive_Tar-1.3.1.tar', invalid or missing package file

Warning: Cannot use a scalar value as an array in phar://go-pear.phar/Archive/Tar.php on line 2334

Warning: Cannot use a scalar value as an array in phar://go-pear.phar/Archive/Tar.php on line 2338
Could not get contents of package "". Invalid tgz file.
Cannot initialize 'phar://go-pear.phar/PEAR/go-pear-tarballs/Console_Getopt-1.2.tar', invalid or missing package file

Warning: Cannot use a scalar value as an array in phar://go-pear.phar/Archive/Tar.php on line 2334

579:577
06/12/02 22:02:02 P18lXKYL
続き

Warning: Cannot use a scalar value as an array in phar://go-pear.phar/Archive/Tar.php on line 2338
Could not get contents of package "". Invalid tgz file.
Cannot initialize 'phar://go-pear.phar/PEAR/go-pear-tarballs/PEAR-1.4.11.tar', invalid or missing package file

Warning: Cannot use a scalar value as an array in phar://go-pear.phar/PEAR/Command/Install.php on line 427

Warning: Cannot use a scalar value as an array in phar://go-pear.phar/PEAR/Command/Install.php on line 427

Warning: Cannot use a scalar value as an array in phar://go-pear.phar/PEAR/Command/Install.php on line 427

Warning: Cannot use a scalar value as an array in phar://go-pear.phar/PEAR/Command/Install.php on line 429

install failed
続行するには何かキーを押してください . . .

580:nobodyさん
06/12/03 00:30:08
>>577
俺もgo-pear.batでをまともにインストールできた記憶がない。
素直に URLリンク(go-pear.org) を保存して、
php.exe go-pear.org
と実行した方がいいかと。

581:577
06/12/03 02:10:04
>>580
うまく行きました。

582:nobodyさん
06/12/04 17:31:22
>>565
2,3行で書ける。

583:nobodyさん
06/12/06 12:14:28 gLCC1tJk
PHP4.4.4

PEAR::Mailで
smtp over sslなSMTPサーバを使ってメールを送りたいのですが
________________________
unable to connect to smtp server smtp.xxxx.xxx:465
________________________
となってしまいます。
同じマシン同じ設定ででメーラーで送信することはできます。
コードは下記のようにしてるのですが、
何か足りないのでしょうか。
お知恵をお貸しください。

______________________________________
//(略)
$params = array();
$params['host'] = 'smtp.xxxx.xxx';
$params['port'] = 465;
$params['auth'] = 'CRAM-MD5';//'DIGEST-MD5'や'LOGIN'や'PLAIN'もためしました
$params['username'] = 'xxxx';
$params['password'] = 'xxxx';

$mail =& Mail::factory('smtp',$params);
$res = $mail->send($to,$header,$body);

if ( PEAR::isError($res) )
{
echo $res->getMessage();
exit;
}
______________________________________

584:nobodyさん
06/12/07 17:56:05
class Auth における
getAuth() メソッドと checkAuth() メソッドの
違いはなんでしょうか?

585:nobodyさん
06/12/09 08:29:00
スパム防止で25番ポートが使えないのなら諦めるべき。

586:nobodyさん
06/12/10 13:19:44
PEARのQuickformで詰まってまして解決方法あれば教えてください。
プルダウンメニューの場合DBから引っ張ってきたValueをみて
Selectedされるのは確認したのですが、

DBの別テーブルからkeyで拾って表示させている場合、valueにはkey
がセットされてしまいselectedされないようです。

うまくできる方法はないでしょうか。


587:nobodyさん
06/12/10 13:24:59 u1GQNv5M
age

588:nobodyさん
06/12/10 14:22:33
select だったらきちんと key => value がセットされて setDefault() では key で指定できるはずだが
>>586が書いたコードを抜粋して晒してみ

589:nobodyさん
06/12/10 15:19:43 u1GQNv5M
■tableA
key name icon1
0 tanaka 2
1 tanaka 1
■tableB
autonum icon1
0 aaa
1 bbb
2 ccc

tableA 田中さんをDBから引っ張ってきた時
JOIN tableB i1 ON p.icon1 = i1.autonum としているため
 ['userdata']["name"]=> string(6) "tanaka"、 ['userdata']["icon1"]=> string(3) "ccc"
$form->setDefaults(array('icon1'=> $_SESSION['userdata']['icon1']));

テーブルBに登録されているデータをひっぱってきます。
$icon_array = db_get_field_data($conn);(中身:[0]=> string(3) "aaa" [1]=> string(3) "bbb" [2]=> string(3) "ccc")
$form->addElement('select','icon1','名前',$icon_array);
<select name="icon1">
<option value="0">aaa</option>
<option value="1">bbb</option>
<option value="2">ccc</option>
</select>となり、selectedをとれません。

ためしにTableAの値のまま
$icon_array2=array('aaa' => aaa,'bbb' => bbb,'ccc' => ccc);
$form->addElement('select','icon1','名前',$icon_array2);
この場合はselectedされました。当然ながらDB書き込み時に
valueがcccといってしまうので当てはまる物がなく0で更新されてしまいます。
なんとなくつかめていただいたでしょうか。

590:nobodyさん
06/12/10 15:58:03
icon1 って名前が数値(0~2)だったり文字列('aaa'とか)だったりする場合があるのは
QuickForm 云々以前にコードの見通しとかの面でも問題あると思う.

SELECT する時に tableB.icon1 AS icon1_name みたいな感じで別名付けてやるとよかろう.
そうすれば icon1 フィールドは tableA.icon1 が入るので
$icon_array で select 作ってもきちんと setDefaults() が効くはず.

591:nobodyさん
06/12/10 17:07:19 u1GQNv5M
んんん 今こんな感じです。
基本的な事を間違えてるのかな・・

【profile_tbl】
[id][name1][name2][icon1][icon2][icon3]
0 nuko tan 1 2 0
1 oka hatirou 3 2 2

【icon_tbl】
[id][icontype]
0 aaa.gif
1 bbb.gif
2 ccc.gif
3 ddd.gif

[クエリ]
SELECT
p.name1 as name1,
p.name2 as name2,
i1.icontype as icon1,
i2.icontype as icon2,
i3.icontype as icon3,
FROM profile_tbl p
JOIN icon_tbl i1 ON p.icon1 = i1.id
JOIN icon_tbl i2 ON p.icon2 = i2.id
JOIN icon_tbl i3 ON p.icon3 = i3.id

[表示]
nuko tan bbb.gif ccc.gif aaa.gif
oka hatirou ddd.gif ccc.gif ccc.gif

592:nobodyさん
06/12/10 18:01:53 u1GQNv5M
なんとかわかった気がします。phpの処理の中で値を使うとき
profileから引っ張った際、$icon=$data['user']['icon1']で2が入るため
<img src="$icon">が<img src="2">になるので、
リレーションつかってccc.gifをひっぱって表示させてました。
その辺が駄目だったのかもしれません。

593:nobodyさん
06/12/10 18:39:59
>>592
そういうこと

そもそもの良くない点は「icon1」というひとつの名前が複数の意味を持ってしまっていることだと思うので
DB から SELECT する際に別名付けてやることで
違う意味のものには違う名前を付けてやると良い,って話やね.

同じ名前(icon1)のまま違う意味(コードだったりファイル名だったり)に使いたいからって
違う内容を入れて使うって発想はよろしくないので,
違う意味のものなら面倒でも違う名前を付けて使い分けるようにしないと.

594:nobodyさん
06/12/10 21:47:57
あんまり関係ないけど、
Quickformってライブラリに使われてるって感じがするよねぇ。

595:sage
06/12/12 14:05:01
Pagerでページ変更時に変数を保持したいんですが、可能でしょうか?

596:nobodyさん
06/12/12 14:23:36
>>595
extraVars

597:595
06/12/12 15:09:53
>>596
ありがとうございます。

$params = array(
'itemData' => $myData,
'perPage' => $perPage,
'delta' => 8,
'append' => true,
'clearIfVoid' => false,
'urlVar' => 'start',
  'currentPage' => $start,
'useSessions' => true,
'closeSession' => true,
'mode' => 'Jumping',
'extraVars' => $num,
);
という感じで指定して、$numを使うために途中で

$nownum = $params['extraVars'];

別の変数に格納しました。
ですが、ページ変更後には$nownumが空になってしまいます。
urlには test.php?0=1&start=1という感じで$numは格納されています。
extraVarsから再利用はできないんでしょうか。

598:nobodyさん
06/12/12 16:30:16
なんか使い方を間違えてる気が

> URLリンク(pear.php.net)
> クエリ文字列に変数を追加する

Pager が生成する URL の引数に入るだけで
変数への設定は $_GET とかから自前でやらないとだめよ

599:595
06/12/13 09:52:06
何度もすみません。

formでpostした$numを

'extraVars' => array('n' => $num),

という感じでパラメータに置いて
$_GET['num']で使おうとしていますが、
post直後はURIにもtest.php?n=1という風になりますが
ページングされたページに飛ぶと変数を保持しておけません。


600:nobodyさん
06/12/13 11:37:43
array('n' => $num) なら $_GET[ 'n' ] じゃないの?
もしかして Pager とか以前に根本的なパラメタ渡しとかが理解できてない?

601:595
06/12/13 11:52:52
すみません自己解決しました。

if(isset($_POST['num'])){
$_SESSION['num']=$_POST['num'];
}
$num = isset($_SESSION['num']) ? $_SESSION['num']: "";

で、やりたいことが出来ました。

>>600
>array('n' => $num) なら $_GET[ 'n' ] じゃないの?
そうですよね。本来のコードから書き換えて投稿していたので
ミス入力してしまいました。


602:nobodyさん
06/12/13 20:36:35 WrZMw5hy
PearDB使って他のサーバーで動いているOracleに接続したいのですがうまくいきません。

・Web鯖
OS:WindowsXP
httpd:Apache1.3.35
php:5.2.0
pearDB:最新

・DB鯖
OS:CentOS
Oracle:10.2.0

・コード
$this->db =& DB::connect( "oci8://ID:PASS@tcp(IP)/DBNAME" );

・エラーメッセージ
C:\Software\php\PEAR\DB\oci8.php:240 oci_connect() [function.oci-connect]: ORA-12154: TNS:could not resolve the connect identifier specified

phpの吐くエラーをみてるとDB鯖にコネクションできないって感じに思えるのですが…。
sqlplus使っての接続はWeb鯖マシンからできるので、Oracleの設定及びネットワークの問題はないと思います。
php側に外部のホストにつなぎに行く制限をする設定項目なんかがあるんでしょうか?

603:nobodyさん
06/12/13 20:40:01
sage忘れスマソ

604:nobodyさん
06/12/13 21:13:07
そもそもoci8っつー名前でOracle10サポートしてるかどうか微妙
DBよりMDB2の方がいいかも

605:nobodyさん
06/12/13 23:40:31
>>602
hosts にSIDと鯖のIP登録してWin再起動してみ。


606:nobodyさん
06/12/14 22:39:50 nK4PeE4Y
>>604
DB鯖の中で動いてるhttp鯖からは動くんでそれは問題ないかと思います。
下請けでPearDB指定なので…どうしてもダメなら検討します。

>>605
やってみます。環境が会社じゃないと無いので、明日やってみます。
ありがとうございます。

607:nobodyさん
06/12/15 18:47:01 cnQJoip3
>>605
見事に接続できました!!
ありがとうございます。

608:nobodyさん
06/12/16 00:53:19
よかったね。
なんで hostsに書かないと接続出来ないのか判らんが、いつもこれにハマる。
教えてエロイ人。


609:nobodyさん
06/12/16 19:59:14
ウェブ鯖もリナックス(ユニックス)にしとけば良いのに。

610:nobodyさん
06/12/16 21:05:10
なんか頭悪そうだなぁ…

611:nobodyさん
06/12/17 04:01:25
リナクス使ってる時点で負けだよ。

612:nobodyさん
06/12/17 10:23:51
       プ、プ、プギャープギャプギャプ♪
      \   ププププギャプギャププギャプギャ/
         ♪  (^Д^) ♪
          _m9   )>_ キュッキュ♪
        /.◎。/◎。/|
  <(^Д^)> | ̄ ̄ ̄ ̄ ̄|  |    ヽ(^Д^)ノ
    )  )  |       |/    ノ ノ
((((  > ̄ > )))) <(^Д^)9m ((( < ̄< )))) 
              )  )
         (((  > ̄ > ))))

613:nobodyさん
06/12/17 13:31:55
Tronが勝ち組

614:nobodyさん
06/12/19 03:53:23
PEARて重くなるだけじゃん
いわゆる手抜きでしょ
バカじゃねーの
しんでこい

615:nobodyさん
06/12/19 03:58:24
がんばれや

616:nobodyさん
06/12/19 06:55:14
軽くて使いやすいフレームワークって何?

617:nobodyさん
06/12/19 07:53:04
まさかAPCも使わずに重いとか言ってるんじゃ無いだろうな?

618:nobodyさん
06/12/19 09:06:47
APC 使ったぐらいで軽いとか言えるお前が羨ましいな

619:nobodyさん
06/12/19 09:27:00
APC重い。足の上に落としたことあるよ(T_T)

620:nobodyさん
06/12/19 09:38:14
えー!

621:nobodyさん
06/12/19 10:18:47
小指ぶつけたことがあるな。

622:nobodyさん
06/12/19 14:25:10
そういやそろそろバッテリ交換しないとなぁ……

623:nobodyさん
06/12/19 17:56:52 G+HsmUGP
QuickFormのcheckboxのvalueってどのようにして設定すればいいのでしょうか?

624:nobodyさん
06/12/19 18:28:48
>>623
「QuickFormのcheckboxのvalue」でぐぐる

625:nobodyさん
06/12/20 23:11:53
pearってセッション管理が楽になったりはしないね。
諦めて他の方法使います。

626:nobodyさん
06/12/21 00:46:59
PHPに最初から備わっているセッション管理機能ではダメ?

627:nobodyさん
06/12/22 02:45:39
pear/PHPの下見たら、Session.phpが居ませんよ。orz

628:nobodyさん
06/12/22 12:39:04 ujx0PyDC
結構簡単そうなことなんですけどググッても見つからないので助けてください
QuickFormで'test'にデフォルトの値を渡したい時
例えば
$form->addElement("text","hoge","コメント",array("size"=>80,"value"=>"デフォルトのコメント"));
とやれば出来るのですが
textareaのときは、どうするのでしょうか?
textareaってvalueじゃなくタグの中身じゃないですか?<textarea>ここ</textarea>
attributesで指定できるのでしょうか?

お願いいたします。

629:nobodyさん
06/12/22 12:52:53
>>628
addElementのあと、setValueでどう?

630:628
06/12/22 14:17:26
>>629
できました!
setValueでは、何故か分かりませんがうまくいかず
setDefaultsでできました。

この辺を参考にしました。
URLリンク(www.bnote.net)

おかげさまでぐぐって見つけることが出来ました。
ナイスヒント

631:nobodyさん
06/12/22 14:30:40
PEARのアーカイブを解凍してinclude_pathを通して使う場合

/include_path/ ┳ PEAR/ ディレクトリ以下全部
.         ┣ PEAR.php
.         ┗ System.php

追加したいパッケージは解凍後
/include_path/ or /include_path/PEAR/
にブチ込む感じで大丈夫でsぢょうか?

632:nobodyさん
06/12/22 23:08:18
>>631
include_pathの直下の方でOK

633:nobodyさん
06/12/23 02:04:58
pear自体寄せ集めだからねえ。

それより自分でまともなスクリプト書いて、path通せば問題ない。
所詮、プログラムできないウェブデザイナ向けの釣り餌でしょ。

634:631
06/12/23 02:14:55
>>632
そーすか。ありがと。
とりあえず自分の使ってみた感じではweb interfaceが使えない以外には
これで問題ない気がするんですが、これでマズイというか問題になるような
点とかってありますかね?
インストーラを使うより解凍して設置してパス通して、の方が正直楽なような気がして。

635:631
06/12/23 02:39:07
>633
なるほど。
> 手動インストールを行うためには パッケージがどのようにして生成され、
> インストールの際にどのようなプロセスが 実行されるかについての詳しい
> 理解が必要となるからです。
ってあったので気になったのですが、パスさえ通ってれば実行には問題なさそうですね。
ありがと。

636:nobodyさん
06/12/27 00:47:24
■ おすすめ2ちゃんねる 開発中。。。 by FOX ★
このスレを見ている人はこんなスレも見ています。(ver 0.20)
★☆チェ・ジウについて語るPart179☆★ [海外芸能人]
一時間阻止されなかったらキャラを持ち帰る 361人目 [ゲームキャラ]
コンパクトフラッシュ(CF)は何処のが良い パート19 [デジカメ]

637:nobodyさん
06/12/27 10:19:40
>>636
アマゾンさんには程遠い検索結果ですねw
がんばつてくらはい。


638:nobodyさん
06/12/28 01:11:57
HTTP_Requestのタイムアウトバグってまだ直ってないの?

639:nobodyさん
06/12/28 01:12:27 sdbBpoeX
>>638
kwsk

640:nobodyさん
06/12/28 01:30:54
>>639
URLリンク(sandman.s6.xrea.com)
1年半前だからさすがに直ってるだろうと思ったら、まだ直ってなかったのかタイムアウトできない。

641:nobodyさん
06/12/28 12:44:31 s71HHmdJ
>>640
作者に通報したら?

642:nobodyさん
06/12/28 17:58:25
やっぱバグだったのかー。結局wgetに逃げたよ。。

643:nobodyさん
06/12/28 20:22:13
■ おすすめ2ちゃんねる 開発中。。。 by FOX ★
このスレを見ている人はこんなスレも見ています。(ver 0.20)
★☆チェ・ジウについて語るPart179☆★ [海外芸能人]
一時間阻止されなかったらキャラを持ち帰る 361人目 [ゲームキャラ]
コンパクトフラッシュ(CF)は何処のが良い パート19 [デジカメ]

644:nobodyさん
06/12/29 04:44:23
ミクシ以下って評価が嫌なFOX。

645:nobodyさん
06/12/29 16:01:50
QuickForm_ControllerのActionProcessで最後に
$page->controller->container(true);
みたいにセッションをクリアすると、
submitを2回以上クリックした場合1ページ目が表示されちゃう・・・

646:nobodyさん
06/12/29 17:00:33 2C2HG/T8
>>642
kwsk

647:nobodyさん
06/12/29 22:42:09
>>645
QFCの方はよくわからんけど
それむしろ正しい動作じゃね?
submit2回連続でそうなるのが嫌なら
javascriptでonsubmit時にdisabったりすればいいんじゃね?

648:nobodyさん
06/12/30 11:57:35
確かに正しい動作だよね。
JavascriptはUAに依存するからあまり使いたくないす。
なにかいい方法はないものか・・・

649:nobodyさん
06/12/30 12:02:33
>>648
依存性を吸収するライブラリ使えば実用上差ほど問題ないと思うが

650:nobodyさん
06/12/30 13:02:25
pear upgrade-allが失敗してしまう。


651:nobodyさん
06/12/30 15:43:46
>>649
Javascriptをオフにしてる人もいると思うんで

>>650
鯖落ちてたっぽい

652:nobodyさん
06/12/30 15:49:39
>Javascriptをオフにしてる人もいると思うんで

っていう言い訳よく聞くんで鵜呑みしてたけど、
Google Analytics使うようになって、そういう人が2%くらいだって
知ったので、なんか微妙…。切捨てちゃってもいいかなぁ…て最近思う。

653:nobodyさん
06/12/30 20:25:05
>>652
わかってて切ってるやつがほとんどだから、noscriptで注意書き書いて切り捨てればいいだろ

654:nobodyさん
06/12/31 00:13:26
>>652
仮に2%の人がjsを切っていたとしたら
一万人の会員がいるサイトの場合200人は意図しない動作をさせる可能性があるわけで。
もし1ページ目に戻されたユーザーがもう一度送信したら困るっしょ。
クレームの処理は金と時間がかかるから(ry

>>653
フォームに毎回noscriptで注意書き書くくらいならサーバーサイドで処理した方がスマートでは?

で、一応できました。
ページを一つ多くして最後のページの中から
$this->handle('process');
みたいにプロセスを呼び出せば最初のページに戻されない。
もっといい方法ないすかね・・・

655:nobodyさん
06/12/31 15:32:47
jsが動かなくしてるブラウザを使ってる香具師も居るからねえ。
おまいのサイトでは2%でも世の中のサイトが2%とは言えない。

656:nobodyさん
06/12/31 23:56:13 ZQTWDF0T
URLリンク(pear.php.net) が見えないよ。
楽しくプログラム書いてたのに、足りないコンポーネントがだうんろーどできないよ。
かなしい。

657:nobodyさん
07/01/01 00:26:17
>>656
普通に見えるよ!

658:nobodyさん
07/01/01 06:05:26 QzpvCD4L
pear upgrade-all すると

Fatal error: Call to undefined method
PEAR_PackageFile_v1::getProvidesExtension()
in /usr/share/php/PEAR/Downloader/Package.php on line 963

って怒られるんですが・・・どうすりゃいいでしょうか?
Debian GNU/Linux etch です。

659:658
07/01/01 06:10:53 QzpvCD4L
URLリンク(www.pear-forum.de)
ここの情報をさんこうに、Auth だけ別に
pear upgrade Auth したらウマくいきました。
何が起こってたんだろうか。

660:nobodyさん
07/01/01 06:13:32 QzpvCD4L
ところで、PHP スクリプトを php script.php として実行した場合、
その戻り値はどうやってきめているのでしょうか?

661:660
07/01/01 06:20:42
exit(123) でいいんですね。

662:nobodyさん
07/01/06 16:31:13 sgvu7Tt8
PEARの自動インストール環境って何かが大きく変わったのでしょうか?
欲しいパッケージがことごとくinstall failedになって、
list-allしたらWarningで「channel -update pear.php.net」しなさいみたいに言われた気がしたので
「pear channel -update pear.php.net」ってやったら
「Update of Channel "pear.php.net" succeeded」と成功したかの様な表示がされました。

でも、その昔「pear list-all」の結果を保存した時にはファイルサイズ40kくらいあったのに
今は17kで、MDB2_Driver_pgsqlとかXML/Parserとかが見当たらない…。

何がどーなったの?何をどうしたらいいの?(;;)

663:nobodyさん
07/01/06 16:47:56 sgvu7Tt8
list-upgradesしたらArchive_Tar、Console_Getoptがupgrade可能と表示されました。
さっきlist-allした一覧を眺めていたら、
PEAR自体も新しいの(1.5.0RC2)が出ている様子(今1.4.11)。
その昔installしたArchive_Tar、MDB2、MDB2_Driver_mysql、XML_RPCは
一覧上ではLATESTのバージョン値が表示されていないの。

とりあえずPEARをupgradeしたら全て元通りになるのでしょうか?

664:660
07/01/06 18:25:39
Debian 使ってる俺もなんか変になった。
アップグレード対象になっているパッケージを
落ち着いてひとつひとつ指定してアップグレードしたら
正常になったっぽい。


665:nobodyさん
07/01/06 22:48:10 sgvu7Tt8
tgz落としてきて半自動インストールで対処できました。
list-allしたリストにも追加されてるし、
完全自動インストールしたのと変わらない?っぽい状態になったのでいいかな、と^^;
お騒がせしましたm(_ _)m

666:nobodyさん
07/01/10 23:24:01 MZg1Wlme
ちょっと質問させてください。
今、生まれて初めてQuickFormを使ってるんだけど、
レンダラ(HTML_QuickForm_Renderer_Default)を用いてHTMLタグをカスタマイズする際って
デフォルトの出力HTMLテンプレートを丸ごと書き換えるしかないの?

固定テキスト(static)の文字色を赤にしたいだけなんだけど
「赤にするタグを追加」みたいな加えていくとかできなくて、
デフォルトのHTMLコードを全部手打ちした上で赤にするタグを追加する、でFAでつか?

667:nobodyさん
07/01/11 11:40:36
Defaultレンダラならそうじゃないかな
だからArrayレンダラなりArrarSmartyレンダラなり
使うのが常套手段じゃないかな

668:666
07/01/11 12:25:16
ご返答ありがとうございます。
まずは基本・・って事で参考にしている書籍にならってDefaultレンダラを使い始めましたが
Arrayレンダラ等なら望みが叶うって事なのですね。
Arrayレンダラ等については書籍には書いてなかったのでマニュアルをあたってみます。
ども。

>>666
自己レスですが、\PEAR\HTML\QuickForm\Renderer\Default.phpを開いて
該当HTMLタグをコピペすればさほど手間ではなかったです。

669:nobodyさん
07/01/12 15:41:32
MDB2(MySQL)についてなんですが
DBパッケージでいうプレイスホルダ的な事はできないんですかね?

このように(↓)書いてみたのですが、
 $sql="INSERT INTO `user` (user_account, user_password, user_mail) VALUES (?,!,?)";
 $affected =& $mdb2->exec($sql, array('$tmp_account', '$tmp_pass', '$tmp_mail'));
 if(MDB2::isError($affected)) die('失敗:'.$affected->getDebugInfo());
  (※元ソースは長いので要素の数とかを適当に省きました)
こんな(↓)エラーメッセージが返ってきてしまいますorz
 Error message: Could not execute statement
 Native message: You have an error in your SQL syntax;
            check the manual that corresponds to your MySQL server version
            for the right syntax to use near '?,!,?)' at line 1

syntaxがどうのこうのって書いてあるので、このやり方はダメないのかなと・・・
ちなみにプレイスホルダ使わないで書いた方では正常に動作してます。
よろしくお願いします。

670:nobodyさん
07/01/12 17:36:36 2nrbZFx0
すいません、PEAR Mail_Queueの質問です。ご存知の方がいれば教えてください。

Postgresqlにてmail_queue、mail_queue_seqテーブルを作成して、キューを追加しようとしてる
のですが、下記のようなエラーが出てしまいます。

$result=$queue->put("CQW15204@hoge.ne.jp","CQW15204@hoge.com",$headers,$body);

Mail Queue Error: unknown error [userinfo] => Cannot create id in: mail_queue
- FILE: /usr/share/pear/Mail/Queue/Container/db.php, LINE: 192

idが生成できないよといっているようなのですが。PostgresにてMail_Queueって難しい
のでしょうか?ご存知の方がいれば教えてください。

671:nobodyさん
07/01/12 19:18:47
標準のMySQL関連の関数よりも便利?

672:nobodyさん
07/01/12 20:44:16
>>669
URLリンク(pear.php.net)
MDB2はprepareしてからみたいね

673:669
07/01/13 14:01:31
おぉ!プリペアドステートメント!
参考にしてるDBレイヤの解説ではプレイスホルダとは分けて説明されてたのでスルーしてた(汗
このプリペアド経由のプレイスホルダも内部でエスケープ処理されるのかな。
早速試してみようと思います。
ありがとうございました。助かりました。

674:551
07/01/13 20:07:08
HTML_QuickFormの
”日付のセレクトボックスの生成”
dateフォーム使ってる人います?
年しか初期値設定できなくて微妙なんだけど・・・

setDefaultsで無理やり設定する方法とかありませんか?

675:nobodyさん
07/01/13 21:35:24
>>674
setDefaultsでdateエレメントの初期値にY,m,dみたいなキーの配列で設定できるはず
UNIXタイムスタンプでもおk

676:551
07/01/14 17:44:09
>>675
ありがとうございます!
dateは便利でどうしても使いたかったので
助かりました!

677:nobodyさん
07/01/16 06:37:44
PHP の拡張って Windows 上では開発できないんだろうか。
いま Linux 上で phpize などを使って拡張を作ってるんだけど、
Windows 上の PHP で使えるバイナリくれといわれて途方に暮れる。
Windows には phpize も autoconf も m4 もないし・・
Cygwin で作るの?

678:nobodyさん
07/01/16 06:46:23 zR0oRC8J
うむむしかし PECL for Windows なんてのがあるようだぞ?
Creating Extensions の vijay によるコメントでは
URLリンク(php.benscom.com)
config.js が用意されていて、m4 で記述された config.m4
の代わりに JavaScript (JScript ?) で記述された
config.w32 が必要なのだそうだ。いずれにしろできないことはないらしい。

679:nobodyさん
07/01/18 01:48:09 3ixzqDHl
すいません、ちょっとお知恵をお借りしたいのですが。。。

HTTP_Clientにて

$client =& new HTTP_Client();
$client->get($url);
$response = $client->currentResponse();

こんな感じで、指定URLでのレスポンスが取得出来ると思うのですが
取得した先のURLを得ることは可能でしょうか?

680:nobodyさん
07/01/18 02:08:14 7qn+G2a8
echo $url;


681:nobodyさん
07/01/18 09:59:01
PEAR DBについてなんですがデータベースへの接続に失敗します

echo "1";
$this->db = DB::connect($dsn);
echo "2";

if(DB::isError($this->db)){
$this->error = $this->db->getMessage();
return false;
}

とかやっても 2 が出る前に死んでしまって何も表示されません
どんな原因が考えられるでしょうか?詳しい方ご教授お願いします

682:nobodyさん
07/01/18 10:51:18
>>681
・$dsnが通ってない
・$this->db=&DB::connect($dsn);じゃない?

683:679
07/01/18 11:15:02
>>680 さん

すいません、説明が足りませんでした。
$urlに入ったURLで別のページにリダイレクトされるのです。
そのリダイレクト先のURLを取得したいなと思っています。

リダイレクト先のBODYは取得できるのですが。。。

684:nobodyさん
07/01/18 16:56:34
>>683
http header でリダイレクトされるんなら $response['headers']の中に入ってんじゃね?
metaタグなら$response['body'] の中を探すしかないだろうね。

685:nobodyさん
07/01/18 18:29:17
PEAR:Authを使って、ユーザ認証させようとしています。
ストレージドライバがDBの場合は、問題なくできていました。
が、今回、Fileを使う必要がで出てきたんですが、これがうまくできません。

$params = array("type"=>'Cvs',"file" => "/hoge/hoge/passwd.txt");
$mymyAUTH = new Auth( "File", $params, "myLOGIN" );
$mymyAUTH->start();
$loginStatus = $mymyAUTH->getAuth();
としてるんですが、AUTH_WRONG_LOGINが戻ってきます。

passwd.txtの中身は、File_Passwdにあったデフォルト、
ユーザ,パスワード
にしてます。
パスワードは、md5ではダメで、
File_Passwd_Cvs::generatePassword( $_POST[ 'passwd' ] );
でもダメでした。。

ぐぐっても、AuthはDBについての情報は多いけど、Fileの情報は見つけきれま
せんでした。



686:nobodyさん
07/01/18 18:59:50
username,password って、 その形式は CVS ではなくて CSV ではなかろうか。
書式を直すか、type'=>'Cvs' の代わりに Authbasic、Authdigest、Custom、Smb、Unix のどれかを使ってみたら?
どのみち書式もそれに合わせる必要があるけど。

687:nobodyさん
07/01/18 19:10:14
>>685
か、か、解決しますた!!
$mymyAUTH = new Auth( "File", $auth_params );
$res = $mymyAUTH->addUser( $_POST[ 'user' ], $_POST[ 'passwd' ] );
で、ユーザー登録したら、認証できた。

ということでお騒がせしますた。

688:nobodyさん
07/01/20 14:44:06
カンマセパレートバリュー。

689:nobodyさん
07/01/24 21:46:52 cqEVnQIF
age

690:nobodyさん
07/01/25 13:17:04 diFouhBc
PEARってなんで大文字なんだよ!
ホントうんこすぎ
pearのライブラリをディレクトリに移動しようとしたら小文字のファイルにリネームしちまうし、
php.iniはみにくいし、そこでのincludepathも大文字小文字間違って書き直しだし
もう氏ねやうんこ言語

691:nobodyさん
07/01/25 13:28:10
>>690
それは鯖がクソなだけ。

692:nobodyさん
07/01/25 14:08:06
ファイル名のケースを区別するかどうかなんて
PEARやPHPどころかOSの問題じゃん
これをプログラム言語のせいにしてる奴とかもう呆れる他ないな

693:nobodyさん
07/01/25 22:57:10
GDをラップしたライブラリってないの?
GDいじるの結構面倒くさい(><)

694:nobodyさん
07/01/25 23:03:10
>>693
いや・・・あの・・・
まっいいか・・・

695:nobodyさん
07/01/25 23:10:41
>>693
PEAR行ってImage_ってプレフィックスがつくパッケージ当たってみ

696:nobodyさん
07/01/26 10:53:30
はやくかけや。
こまってんだよ!

697:nobodyさん
07/01/26 13:24:07 PVZRthFQ
はじめてPEARを使おうと思っているんですけども、
レンタルサーバでも使えるのでしょうか?
インストールされてなければ無理なのかな・・?
それと、ダウンロードしてきたファイルの使い方がわかりません。
Image-Graphというのが使いたかったのでダウンロードし、解凍したところ、
Image-Graph-0.7.2というファイルがでてきました。
これはいったいどうすればいいのでしょうか?

698:""""""""""
07/01/26 13:34:58
希少もの:中国製無修正
某大陸高校トイレ盗撮ビデオ
URLリンク(www.google.co.jp)

699:nobodyさん
07/01/26 15:56:55
>>697
PEARはPHPで書かれてるから適当なバージョンのPHPが動くサーバなら使える。
依存関係とか自分で解決してやらなきゃならないが。
Image_Graphだと
Image_Canvas
Image_Color
Extension gd
が必要。
全部そろえばincludeとかrequireすることで使える。

700:nobodyさん
07/01/27 05:02:52
>>696
>>698


701:nobodyさん
07/01/30 11:27:14 We8vUN44
pearのインストールをしようとgo-pear.batを起動しましたが何も表示されず何度かEnterキーを押すと
「PHP Warning: Cannot use a scalar value as an array in phar://go-pear.phar/PEAR/
Command.php on line 268」
のような表示がたくさん出てインストールが完了できませんと表示されます。どうやったら改善されるのでしょうか?超初心者ですのでわかりやすく説明くださると大変ありがたいです。よろしくお願いします。

PHPは5.2.0を使ってます。

702:nobodyさん
07/01/30 11:35:02
>>701
自分で超初心者とか言うアホにPEARは100年早い。

「俺は超初心者だから、調べるの面倒だし、お前ら!丁寧に分かりやすく解決方法を教えろ!」

って言ってるのか?死ねよ!カス

703:nobodyさん
07/01/30 11:59:16 We8vUN44
>>702
「超初心者ですのでわかりやすく説明くださると大変ありがたいです。」そういう言い方をしましたので>>702さんのような捕らえ方をされても仕方ないかもしれません。
ですが昨日から解決方法を調べましたが未だに解決できずにいます。ですので救いの手をいただければと思いますのでどうかよろしくお願いします。


704:nobodyさん
07/01/30 12:12:05
>>701
5.2.0のgo-pear.batは壊れてる
URLリンク(d.hatena.ne.jp)

705:nobodyさん
07/01/30 12:15:45
>>701,703
聞く前に検索しろということだ
URLリンク(www.google.co.jp)


706:nobodyさん
07/01/30 22:37:40 bW5fYcLi
PEAR :: DB のパッケージをインストールしたのですが
「tests」というディレクトリがありました。

これは動作に必要なのでしょうか?

必要ないのであれば消したいのですが。そもそも消す必要もありませんかねぇ。
よろしくお願いします。

707:nobodyさん
07/01/30 22:45:17
>>706
何故、消そうと思うのだ?
別にあってもよくないか?

708:nobodyさん
07/01/30 22:47:55 bW5fYcLi
>>707
そうですね。
そのまんまにしておきます。ありがとうございました。

709:nobodyさん
07/01/31 10:55:32
必要ないから消してもOK

710:nobodyさん
07/01/31 11:58:58
虫垂だの農家の四男坊なんてのはやたらに切るもんじゃないだろう

711:nobodyさん
07/02/01 12:15:21 PAIOYH/b
PECL には GNU libidn を使うための拡張があります。
URLリンク(pecl.php.net)
同様の拡張が別の場所でも開発されているようです。
URLリンク(php-idn.bayour.com)
インターフェイス(提供される関数)はほぼ同じようです。
これら二つの拡張の間には何か関係があるのでしょうか?

712:nobodyさん
07/02/06 15:58:18 rVKmLMVv
もう1日かけて調べたり試行錯誤したけど、全然うまくいきません。

環境:
OS WindowsXP Home
鯖 anhttpd 142p
PHP 5.2.0(cgiの方使ってます)

ソース:
<?
require_once "HTTP\\Request.php";

$req =& new HTTP_Request("URLリンク(yahoo.co.jp));
if (!PEAR::isError($req->sendRequest())) {
echo $req->getResponseBody();
}
?>

結果:
Warning: require_once(Net/Socket.php) [function.require-once]: failed to open stream: No such file or directory in C:\httpd142p\php5\PEAR\HTTP\Request.php on line 47
Fatal error: require_once() [function.require]: Failed opening required 'Net/Socket.php' (include_path='.;C:/httpd142p/php5/PEAR/') in C:\httpd142p\php5\PEAR\HTTP\Request.php on line 47

INIファイルの該当箇所の設定:
; Windows: "\path1;\path2"
include_path = ".;C:/httpd142p/php5/PEAR/"

該当箇所にはちゃんとPearファイルがあるのにエラーになってしまいます。
もう疲れて吐きそうです。。。


713:nobodyさん
07/02/06 16:22:33
>>712
ディレクトリセパレータでは?

include_path = ".;C:\httpd142p\php5\PEAR"

714:nobodyさん
07/02/06 16:30:00
"/" を "\" に変えてやってみました。。。
Warning: require_once(Net/Socket.php) [function.require-once]: failed to open stream: No such file or directory in C:\httpd142p\php5\PEAR\HTTP\Request.php on line 47
Fatal error: require_once() [function.require]: Failed opening required 'Net/Socket.php' (include_path='.;C:\httpd142p\php5\PEAR\') in C:\httpd142p\php5\PEAR\HTTP\Request.php on line 47

ふぅ~。。どうしたもんですかね

715:nobodyさん
07/02/06 16:42:08
require_once 'Net/Socket.php';
これ一行だけのソースでもNo such ~になる?

C:\httpd142p\php5\PEAR\Net
でアドレスバー叩いてちゃんとSocket.phpはあるかい?

716:nobodyさん
07/02/06 17:02:55
あー Socket.phpありませんでした。。。
Socket.phpとURL.phpダウンして入れたところ正常に動きました。
ふぅ~。ありがとうございましたm(_ _)m。

717:nobodyさん
07/02/06 17:22:12
>該当箇所にはちゃんとPearファイルがあるのにエラーになってしまいます。
>該当箇所にはちゃんとPearファイルがあるのにエラーになってしまいます。
>該当箇所にはちゃんとPearファイルがあるのにエラーになってしまいます。
>該当箇所にはちゃんとPearファイルがあるのにエラーになってしまいます。


718:nobodyさん
07/02/06 17:54:04 NJuIco/q
if ( $_SERVER["REQUEST_METHOD"] != "POST" )
{
exit( "不正なリクエストでおじゃる" );
}
$hoge = $_POST["hoge"] ? $_POST["hoge"] : "";

こういうソースがあったのですが、リクエストのメソッドを調べる
意味ってあるのですか?

万が一、引数が GET で渡されてたとしても、それが $_POST に代入される
ということがありえるのでしょうか。

719:nobodyさん
07/02/06 17:56:37
ねーよww

720:nobodyさん
07/02/06 20:46:38
むかーーーしのバージョンのPHPで
GET引数に "GLOBALS[_POST][hoge]" とかそんな感じで
外から $_POST に値を入れられちゃう糞バグがあったような気がしんぐ

721:718
07/02/06 21:33:11 NJuIco/q
すみません。
>>718は誤爆です。

722:718
07/02/06 21:36:03 NJuIco/q
>>720
そうだったのですか。
もうちょっと調べてみます。ありがとうございました。

723:nobodyさん
07/02/14 07:44:29 HWr8LnC4
質問です。
今html_ajaxでいろいろやってるのですが、
html_ajaxでプロキシアクセスをしてる場合のpostで通信してるのですか?getですか?
access_logをみてみると、両方のような気がするのですが。

またpostの場合、sessionでの接続ができますか?どのようにsidを送るのでしょうか?

よろしくお願いいたします。

724:nobodyさん
07/02/14 16:20:33 pTwqj5vm
pearのアンインストール方法を教えてね。

725:nobodyさん
07/02/15 01:48:19
まず、どのようにインストールしたかかけや

726:nobodyさん
07/02/15 02:10:56 202bzPy7
go-pear.orgからインストールしたのよ。


727:nobodyさん
07/02/15 17:56:46 kYaagmVU
おまえらどんなPEAR使ってるか教えろ。

728:nobodyさん
07/02/15 18:18:00
インフラとして必要で、実用的で、枯れてて、
誰でもすぐに馴染める使いやすいパッケージは

・PHPUnit
・PhpDocumentor
・PEAR
・MDB2(+Driver)
・HTTP_Request
・Cache_Lite
・Log
・Mail

あたりとか?
もうPHP4でしか使う機会がないな
PHP5でいいならフレームワークに付属ので間に合わすか、
ZFのライブラリを使う

729:nobodyさん
07/02/15 19:29:34
Pagerも結構よいよ

730:nobodyさん
07/02/15 21:50:13 l05otmqr
まだHTTP_Requestしか使ったことないや。

731:nobodyさん
07/02/16 09:32:26
Cache_Liteはめちゃくちゃ重宝する。

732:nobodyさん
07/02/17 12:31:18
HTML_QuickFormで確認ページって出せますか?
入力→確認→登録みたいな感じです。
出せる場合はどのようにしたら良いのでしょうか、、?

733:nobodyさん
07/02/17 12:33:24
freeze使え

734:nobodyさん
07/02/17 14:54:17
確認画面用に freeze() 使う時は hidden 要素に setPersistantFreeze(true) も忘れないように

735:732
07/02/21 05:59:51
>733,734
やってみる!ありがとう。


736:nobodyさん
07/02/22 14:28:49 3Rwtxk4J
PEAR のコーディング規約って、
Java でよく使われているもののほぼコピー?

737:nobodyさん
07/02/22 18:02:36
PHPUnit PEARから外れちゃったんだよなぁ。
PHP4でFirebirdのある限り
DBを使いつづける選択肢しかないんだよなぁ。

738:nobodyさん
07/02/22 22:53:30 Ua9elyJa
MDB2( URLリンク(pear.php.net) )についての質問です。

スクリプトでMDB2を用いる際に、いちいちDSNやエラーチェックをすると
コードが冗長になってしまいます。

みなさんはどうしていますか?
私が考えたのは、例えば 'DataBase' というクラス(MDB2のクラスを継承)を定義して
そこから使うのがよいかと思っています。

これについて何か参考になるドキュメントがありましたら
ぜひ教えてください。よろしくお願いします。

739:nobodyさん
07/02/23 23:08:52 yQax9a0k
無駄なものを覚えるとかえって時間がかかる
何を学ぶかの取捨選択が大事だと思います
HTML_QuickFormのほかに、これには手を出すなというのはありますか?


740:nobodyさん
07/02/23 23:33:13
>>739
HTML_QuickForm_Controller/DB/DB_DataObject/Auth/Auth_HTTP/Cache_Lite
このくらいかな…

741:nobodyさん
07/02/24 05:53:48 UYU7E5V9
Authについて質問です。
MySQLにパスワードと名前を入れておいて、そこを読み取って認証するという
単純な認証を試しに作ってみたのですが、どうも巧く行きません。

具体的には、どのような入力をしても、以下の「MyAuth.php」のswitch($status)でdefaultが選ばれてしまうので、困っています。
どなたか、アドバイスをください。

以下、ソースコードです。

742:これらは、全て同じ階層のフォルダに入ってます
07/02/24 05:57:38 UYU7E5V9
//MyAuth.php
<?php
$documentroot=dirname(__FILE__) . '/';
require_once($documentroot . 'config.php');
require_once ('Auth/Auth.php');

function loginFunction ($usr,$status){
switch($status){
case AUTH_IDLED :
case AUTH_EXPIRED :
$err='ログイン期限が切れています。再ログインしてください';break;
case AUTH_WRONG_LOGIN :
$err='メールアドレス/パスワードが間違っています';break;
default:
print ("default");
}
require_once('login.php');
}

$params=array(
'dsn'=> _DSN,
'table'=>'member_table',
'usernamecol'=>'userxxxx',
'passwordcol'=>'password',
'cryptType' => 'MD5',
'db_fields'=>'*');
$myAuth=new Auth('DB', $params, 'loginFunction');
$myAuth->start();
if(!$myAuth->getAuth()){
exit();
}
?>

743:これらは、全て同じ階層のフォルダに入ってます
07/02/24 05:59:12 UYU7E5V9
//login.php
<html><head><title>ログインページ</title></head>
<body>
<form method =" POST" action ="<?php print ($_SERVER ['PHP_SELF']) ?>" >
<table border="0">
<tr><th alight="right">メールアドレス</th>
<td><input type="text" name="username" size="30" maxlength="50" /></td></tr>
<tr><th alight="right">パスワード</th>
<td><input type="password" name="password" size="30" maxlength="50" /></td></tr>
<tr><td colspan="2"><input type="submit" value="ログイン" /></td></tr>
</table>
<font color="Red"><?php print($err); ?> </font>
</form></body></html>


//config.php
<?php


define("_DB_USER", "db_user");
define("_DB_PASS", "pass");
define("_DB_HOST", "localhost");
define("_DB_NAME", "db");
define("_DB_TYPE", "mysql");

define("_DSN", _DB_TYPE . '://' . _DB_USER . ':' . _DB_PASS . '@' . _DB_HOST . '/' . _DB_NAME);
?>

以上です。長々とスミマセン。

744:nobodyさん
07/02/25 00:45:14
>>741
PHPの質問スレ行った方がいいんじゃね?

745:>>741-743
07/02/25 01:10:29
>>744
おっしゃる通りですね。
PHPの下質のスレに行きます。
お目汚し失礼しました。

746:nobodyさん
07/02/28 08:54:35 ZY+YimwX
SQLビルダーが欲しくて色々さがしてます。
DB_DataObjectがよさげだとおもって、ちょっと読んで
軽く使ってみたのですが
これってSQLだけgetすることは出来ないのでしょうか?

接続にはDBとかMDBは遅いのでPDOを使いたいのですけど・・・

良いのありませんかね?
dinolibっていうのも使ってみたけど、古いし、イマイチ。

DB_DataObjectはマジで便利そうなんだけど・・・

747:nobodyさん
07/02/28 14:56:36
流れはORマッパーなので。

748:nobodyさん
07/02/28 20:30:47
>>746
おれも以前に似たような要求で色々と調べたけど
"_" から始まる名前の(PEAR規約で private 扱いの)メソッドやら変数やらをアレコレしないと
生 SQL のみを取得することはできなかったっす

749:745
07/02/28 21:39:38
ソース見たら出来なさそうですね。

SQL生成から実行まで、一つのメソッドでやってた。

あれを改造しちゃうか・・・
DBかMDB2を使うか
他のSQLビルダを探すか

自分で作っちゃうか

とりあえずここ過疎化してるので
PHP版に移住します。お騒がせしました。

750:745
07/02/28 23:20:38 ZY+YimwX
>>748
すいません。板のURLが変わってたんですね
2chブラウザ使ってるのでレスが付いてないのかと思っちゃいました。

SQLビルダ作るかな~


751:nobodyさん
07/03/01 01:32:14
DB_DataObjectはORマッパであってSQLビルダでない件に関して

752:745
07/03/01 10:39:52 vEHHBeZ0
>>751

純粋にクエリーを発行して配列にオブジェクトを格納するところまでの時間を計測したんですけど
PDO::FETCH_CLASSとかpg_fetch_object(postgresqlなら)を使うと
シチュエーションによっては10倍近い速さなんですよね。

だからSQLビルダだけ使えないかと思ったわけでして。
ただ、取得するデータ件数が少ないと、速度差はごくわずかなので
LIMITで絞ってページングすればほとんど変わらない気もするし・・・

DB_DataObject使うとSQLインジェクションとかプレイスフォルダ使わなくて
ばっちり対策済みなんでしょうか?

もうちょっと色々試してみます・・・

すごい良く出来てると思うので、気になるのは速度だけなんだよな~

753:nobodyさん
07/03/01 11:20:12
今更DB_DataObjectもないだろう
PHP4しか使えませんな環境ならしょうがないかもしれんが
最近のフレームワークのO/Rマッパの実装を調べた方がいいと思うよ
ZFやsymfonyで使ってるpropelとかもPDOのアダプタが用意されてるだろう

SQLビルダならPEARにもDB_QueryToolとかあるけど
SQLビルダっつー仕組み自体が古いというかいけてないと思う
基本O/RマッパでシンプルなDBアクセスは
SQLなんて一切気にすることなく操作できて
3つも4つもJOINするような複雑なクエリになる場合は
SQL書いて取得するっていうスタイルが今の流れで
それは理にかなってると思う
実際WEBアプリで必要になるSQLなんてのは
大抵の場合7~8割方定型でシンプルなクエリだから
複雑なSQLはビルダで組み立てなくても直で書けばいい
ビルダでどうやって複雑なSQLを組み立てるか考えるのは本末転倒

オレオレO/Rマッパ書くためにSQL組み立てる層を書くのが面倒だから
SQLビルダだけ欲しいみたいな感覚ならまあわかるが
INSERT/UPDATE/DELETEは割と簡単に書けるし
SELECTはZFのZend_Db_Selectあたりを参考にするといいんじゃない

754:nobodyさん
07/03/01 11:23:12
>>753
あなたの言っている全ての機能はDB_DataObjectにも実装されていますが?
それにフレームワーク固有のコードを書いていたら汎用性が全く無くなってしまう。

それこそ、自己満足の時代に逆境したプログラミングでしかない。

755:nobodyさん
07/03/01 11:29:52
じゃあDB_DataObject使えばいいじゃんw

756:nobodyさん
07/03/01 11:45:56
PEAR::DB が遅いってのは抽象化インタフェースなんだからある程度は仕方ないと思うが
pdo がいいなら PEAR::DB とインタフェース互換で pdo 直接叩くようなのを書けばいいんじゃないかな
てか書いたら公開してくれw

757:nobodyさん
07/03/01 12:33:14
>>754
別にDB_DataObjectが機能不足だなんて書いてないし
俺もDBやDB_DataObjectを経て来た上で書いている
あとZend_Dbやpropelにフレームワーク固有のコードとかない
それぞれ独立したライブラリとして作られている
てかDB扱うライブラリに普通FW固有のコードなんて書かない
もうちょっと色んなライブラリ見渡してみてもいいと思うよ

758:nobodyさん
07/03/01 12:37:31
>それにフレームワーク固有のコードを書いていたら汎用性が全く無くなってしまう。
フレームワークをなんだと思ってるんだ?

759:nobodyさん
07/03/01 15:51:00
DBからMDB2に移ろうとしているんですが、
MDB2って、なんかDBに比べて不便になってる
気がするんですが、気のせいでしょうか?

insertやupdateの手順がまんどくさくなってるよな。。。

760:nobodyさん
07/03/08 12:27:01
Html_QuickFormでprocess()を2回使用しようとするとエラーになります。
Fatal error: Cannot redeclare callback1() (previously declared in c:\path\file.php:100)

以下のようにしたい場合はどうすればいいでしょうか?
if($objForm->validate()){
    $objForm->process('callback1');
    $objForm->process('callback2');
}


761:nobodyさん
07/03/08 12:31:50
単にcallback1()を2回定義しちゃってるだけじゃないの?

762:760
07/03/08 14:00:23
>761
仰る通りでした。ありがとうございました。

補足としては、実はと言っては怒られそうではありますが、
クラス内にprocess()を呼び出すメソッドを作り、その中にコールバック関数を定義しておりました。
このような感じ。
class Form extends HTML_QuickForm{
    function actProcess($callbackFuncName){
        function callbackFunc1(){...}
        function callbackFunc2(){...}
        return $this->process($callbackFuncName, false);
    }
}
ですので、actProcess()を2回目に呼び出すと、
callbackFunc1(),callbackFunc2()がもう一度定義されエラーになっていた模様です。

調べたところ、コールバック関数をprocess()呼び出しのメソッド外に置き、
process()の第一引数をarray(&$this, 'callbackFuncName')のようにすると良い事が分かりました。
以下のような感じ。
class Form extends HTML_QuickForm{
    function actProcess($callbackFuncName)
    {
        return $this->process(array(&$this, $callbackFuncName), false);
    }
    function callbackFunc1(){...}
    function callbackFunc2(){...}
}


763:nobodyさん
07/03/09 15:56:39
RedHatES上のPHP-4.3.2で
$pear upgrade PEAR
をやったら
PEAR 1.5.1 stable
に無事アップデートできたみたいなんですが、良く見ると
/usr/bin/pear
が無くなってしまった様です。

/usr/share/pear/pearcmd.php
を直接実行しようとしてもエラーが出て、中身を見てみると
<?php
//
// +----------------------------------------------------------------------+
// | PHP Version 5                                                        |
// +----------------------------------------------------------------------+
//....'
になっています。

一旦phpを再インストールするしか復旧する方法は無いでしょうか?

764:nobodyさん
07/03/09 16:07:36
今俺も試しにアップグレードしてみたが特に問題ないな
whichとfindで探しても全くでてこない?

765:nobodyさん
07/03/09 16:18:35
Html_QuickFormのselectあります。
これにmultiple属性を設定するにはどんな書式にすればいいんでしょうか?

$QuickForm->addElement('select',);

みたいな書式でできるんでしょうか・・・?

766:763
07/03/09 19:18:19
>>764
取り合えず、同一構成の別サーバからpearコマンドとpearディレクトリごと持ってきて入れ替えたら

$pear list
INSTALLED PACKAGES:
===================
....
PEAR           1.1     stable
....
となっていて、ここから再度アップグレードして見ました

$sudo pear upgrade PEAR
downloading PEAR-1.5.1.tgz ...
...done: 290,252 bytes
upgrade ok: PEAR 1.5.1

$pear list
pear: Command not found.
Exit 1
で、
$find / -name "pear"
してもコマンドは見つからないですね・・・家の環境だけなのか?

767:nobodyさん
07/03/09 21:25:55
pearディレクトリ毎持ってきたりして入れ替えたら
そりゃ消えようがしゃあないな
アップグレード時にbinにコピーできなかったとか
go-pearでPEARだけ入れ直したらいいんじゃね

768:nobodyさん
07/03/09 22:48:15
>>767
おお、go-pearなんて便利なものが・・・
これで無事再インストール出来ました。

769:nobodyさん
07/03/09 23:08:13 bGciLmRc
Windowsの話?

770:nobodyさん
07/03/11 00:25:48
>>765
URLリンク(www.townmedia.org)
2-2 addElementで使える要素一覧
をみるかぎり、select のarg5に入れればなんでもアリじゃないでしょうか?

771:nobodyさん
07/03/13 18:35:18
PEAR::Auth を便利に使っています。
別の場所で別の人が同じ ID/PW でログインできますが、
これを拒否する方法はどういうものがあるでしょうか。
( 後からログインした人を拒否できると嬉しいです )

772:nobodyさん
07/03/13 20:09:42
ログインユーザをセッションIDと一緒に、DBなりファイルに書き出しとけばいいんじゃないの。
同一ユーザ名ログインの時には、それに対応するセッションIDが残ってるかどうかチェックして
なきゃそれでOK。
でも同一ユーザ名・パスワードの複数保持なんていうのがそもそもセキュリティ的にラフすぎ。




773:nobodyさん
07/03/14 09:34:15
>>772
ありがとうございます。

何かの拍子に ID/PW が漏れた場合、
同時にアクセスされたら漏洩発覚!としたかったんです。

774:nobodyさん
07/03/14 09:44:37
>>773
そんなのWWWでやるシステムじゃない

775:nobodyさん
07/03/14 12:37:17
どうやってログアウトをシステム側で察知するかだな。
操作ミスなり回線不良なりでCookieあぼーんすると
直ぐにログインできないってことになる。

776:nobodyさん
07/03/14 12:59:55
つかブラウザ二個起動した時点で終了

777:nobodyさん
07/03/14 14:20:57
>>774
ネットバンクとかで無いか?

778:nobodyさん
07/03/14 14:35:20
>>777
>>776

779:nobodyさん
07/03/14 14:41:52
>>778
意味ワカラン

780:nobodyさん
07/03/14 14:43:11
分かった

781:nobodyさん
07/03/14 14:46:43
>>776
同じIPならセーフとかは?

782:nobodyさん
07/03/14 14:57:05
>>781
ルータ経由はどうすんの。

783:nobodyさん
07/03/14 19:03:09
やっぱり難しいさね。
ストリーミングサイトだったら通信継続してるから
感知して第二ユーザはキック出来るけど、そうじゃなきゃ>>775のような
ケースでクレーム来るほうが怖いからなあ。

784:nobodyさん
07/03/14 19:07:01
ログイン画面で固定のキーを与えるのどうだろう。

785:nobodyさん
07/03/14 19:12:34
トークン使う

786:nobodyさん
07/03/14 19:21:48
明示的なログアウト送信がない限り全部一緒の問題を抱える

787:nobodyさん
07/03/14 23:04:39
まあセッションクッキーのexpire時間を金融サイトみたいに10分とか短く設定しておいて、
10分以内に通信無きゃ強制ログアウトっていうのが許されるサイトなら問題が少なくなる。
最大10分の再ログインラグが出るけどね。

788:nobodyさん
07/03/15 00:52:45
昔やったサイトというかWebアプリでは
・ユーザは出来るだけ明示的にログアウトするようお願いする
・メインウィンドウがクローズされる時にログアウトのURLを叩くJavaScriptを仕込んでおく
・最終アクセスを全ユーザの全アクションで記録しておいて、ログアウトなしのユーザがログインしようとしたら最終アクセスが10分以内の場合は弾く

イントラ用のアプリケーションだったから負荷とかも考慮した上でここまでやったけど
一般向けのWebサイトじゃどこまでやるかは難しい判断だろうなぁ

789:nobodyさん
07/03/15 09:27:34
>>787
それは、パスワード漏洩時の対策にはならんのではないか。
まあそもそもの話として同時アクセス=漏洩なのかというか、常時使うシステムでもない限り使う時間がぶつかることがあるのか疑問。
漏洩するとしたら、内部からユーザ情報持ちだしとか、パソコンに付箋紙貼ってある時だと思うんだが、
したら不正利用する人が夜中とかに使えばまあ、システム上はほとんど不正利用にならないだろうし。

>>788
ログアウトするようにお願いするったって
不特定多数のコンピュータリテラシーがまちまちなユーザじゃ無理。
メインウィンドウをクローズしないかもしれないし。

夢を見すぎじゃないかと。
ユーザに過去のログイン・ログアウト情報を提示して、変だったら通報してもらうほうがいいんじゃねえの。
過去にどういう行動をしたのか知ってるのは本人しかいないわけだし。

790:nobodyさん
07/03/15 10:01:20
>>789
世の中には「テメエにしか分からないこと」を
自動的に論理矛盾なくプログラム側で判断しろ、
という輩もいるわけでwww


791:nobodyさん
07/03/15 11:54:09
生体認証かな

792:nobodyさん
07/03/15 12:14:00
>>789
お願いするだけじゃ無理なのが解ってるから2番目・3番目の仕組を入れてるわけで
無理じゃなけりゃJavaScriptだの全アクセス記録だの不要だろw
あと「イントラ用」って書いたんで不特定多数ではない時の話だってのも読み取ってほしいところ

>>791
ログインには使えるけどログアウトしてくれるかどうかは別問題だねそれはw

PCの不意のハングアップまで考慮しようとすると
それこそJavaScriptか何かでサーバとハートビート交換しまくって
途切れたらログアウト処理にするとかまでやらないと難しいだろうなぁ

793:nobodyさん
07/03/15 12:35:50
>>792
目的が漏洩対策ならいいんじゃない?<生体認証

794:nobodyさん
07/03/15 13:00:52
>>792
と言われても、話の元の人はイントラ用とは言ってないわけだし、実際採用されたらどうかなあと思うわけで。


結局のところ、普通に当たり前のことをやっとけばいいと思うよ、としか言えないな。
一応法整備されたからパスワードだけかけておけばノーガードでもいんじゃねという話もある。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch