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
あたりとか?
もう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
と言われても、話の元の人はイントラ用とは言ってないわけだし、実際採用されたらどうかなあと思うわけで。
結局のところ、普通に当たり前のことをやっとけばいいと思うよ、としか言えないな。
一応法整備されたからパスワードだけかけておけばノーガードでもいんじゃねという話もある。
795:nobodyさん
07/03/15 13:58:14
>>787
>それは、パスワード漏洩時の対策にはならんのではないか。
元ネタが同時ログインをキックしたいということだけであって、どこに問題がある?
796:nobodyさん
07/03/15 14:21:29
>>795
>>773
> 何かの拍子に ID/PW が漏れた場合、
> 同時にアクセスされたら漏洩発覚!としたかったんです。
>>771だけ見ればそんなもんかって感じだが。
797:nobodyさん
07/03/15 15:40:15
同時アクセス「ゆえに」漏洩発覚というロジックはむちゃくちゃだから
どうでもいいじゃん。同時アクセスキックできる方法だけ話してればいい。
798:711
07/03/15 17:59:45
元質問者です。
両方再ログイン促すので十分です。
それで漏洩か運用で分かると思うので。
なんだかいろいろと考えることが多いのですね ^^;
どこかにいい実装例はないでしょうか。
( コードがあると嬉しいです )
799:nobodyさん
07/03/15 18:50:39
>>798
仮に漏洩してたとして、同時アクセスと思える範疇でアクセスがある、漏洩と判断できる確率って少ないんじゃね。
あれこれ仕掛けてユーザビリティ低下でクレームが発生するほうが高そうに思えるのだが。
まぁどこまでコストをかけるかは措いといて、
>>775で「どうやってログアウトを...」って書いたけど、Cometならできるかもしんない。
Cometシステムを構築したことどころか、lingrさえしたことないので、
どこまで実用的に漏洩を察知できるシステムができるどうかは知らんが。
これでも、ユーザが会社でブラウザを開いたまま帰宅、自宅でログイン出来ねーって言うかもな。
800:nobodyさん
07/03/15 21:24:01 fuFXgue7
>ユーザが会社でブラウザを開いたまま帰宅、自宅でログイン出来ねー
イントラ想定してしながらそうじゃないケース想定してるのが痛い
801:799
07/03/15 21:34:56
>>800
え~と、俺はイントラなんて想定しとらんが?
元質はイントラネタだったのか?
802:nobodyさん
07/03/15 21:35:01
Cometならできるかもしんないwww
803:nobodyさん
07/03/15 22:37:02
昔、椅子に座ったらログイン、椅子から立ったらログアウト、
っていう仕組みを作ろうかとか考えたことある。
実用性が無さそうなんでやめたけど。
804:nobodyさん
07/03/15 22:44:26
あきらめたらそこでログアウトだよ
805:nobodyさん
07/03/15 23:51:51
>>801
元質はイントラじゃない
イントラ云々はおれが>>788で
「イントラだったからここまでやったけどそうでなければどれくらい手間をかけたもんかな」的に書いただけ
>>803
迂闊にトイレにも行けねーなw
806:nobodyさん
07/03/15 23:57:38
実際は、イントラ以外使えないというところではそんなもんだろ
807:nobodyさん
07/03/15 23:58:51 7hzpmvYO
でも同じユーザーが同時期にアクセスできないようにするってことは、魅力があるね。
なんか旨い方法ないのかな?
808:nobodyさん
07/03/16 00:07:36
IPとかUAは?
809:799
07/03/16 00:15:29
う~ん、マジでCometで出来ない?
Cometって時間的にどのくらいコネクションを握ったままできるのかしらんだけど、
擬似サーバプッシュでクライアントからの返答(再リクエスト)がなければログアウト状態と判断できると思う。
保存期間なしのCookieも併用して。
Apacheにmod_cometみたいなモジュールが出てきたらいろいろ面白そうだけどなぁ。
で、PEARとはまったく関係ない話になってしまった。
810:nobodyさん
07/03/16 00:55:14
>>802が良いこと言ったな。
811:nobodyさん
07/03/16 00:56:45
プロセス単位じゃなくて、スレッド単位でコネクション維持してくれるモジュールが
無いと、すぐに鯖がパンクするな。
812:nobodyさん
07/03/16 04:10:01
後のログインを優先させれば解決
813:nobodyさん
07/03/16 07:13:07
>>812
おまえ脳みそ使ってないだろw
814:nobodyさん
07/03/16 09:00:07 tL5WlbtE
で無理やりPHPの話に戻すと、
URLリンク(hain.jp)
にFlashのSocketライブラリを利用してPHP(鯖)+FLASH/JavaScript(客)で
通信を行うという話がのっている(socketjs→URLリンク(dev.dschini.org))。
これが出来るならなんとかなるんじゃないの。
815:nobodyさん
07/03/16 09:32:57
>>814
Ajaxでいいじゃないか。
816:nobodyさん
07/03/16 15:00:47
>>807
利用できる端末を登録制にする。
登録は自分で出来るけど、登録用には別のパスワードを用意して、全てが漏れないと使えないようにする。
端末の登録が変更されると、指定したメールに通知。
たしかソニバンがこれ。
登録済み端末が操作されてしまうのは防げない。
817:nobodyさん
07/03/16 15:25:46
>>815
Ajaxは、クライアント側の制約(DHTML)がありすぎだからなあ
818:nobodyさん
07/03/16 15:27:39
>>816
「端末」の同定はどうしてるのだろう?<ソニバン
819:nobodyさん
07/03/16 15:52:41
>>818
同じPCでブラウザ変えると別端末という認識をされた。
クッキーとかかな。
820:nobodyさん
07/03/16 16:48:41
>>798
>元質問者です。
>両方再ログイン促すので十分です
これ意味あるかな?
1.そもそも先にログインしている方が「正規ユーザ」とは限らない。
2仮にそうだとしても、.クラックした方が先に再ログインすることも出来る
実際は、こういう事態がおこったら、そのユーザアカウントは仮停止すべきでしょう。
821:nobodyさん
07/03/21 18:47:33 78nxSnEz
vistaでpearコマンド、CLIがntdll.dllのエラーで停止しない?
822:nobodyさん
07/03/22 14:53:02
sage
823:nobodyさん
07/03/23 14:24:37 cotQkCWi
すいません
PearでQuickFormを使ってページを作成しています。
controllerを使ってウィザード式にしたいのですが
前のページでデータベースからの検索結果(不特定多数)があり
その結果それぞれにリンクを貼りクリックするとその情報を持って
次のページに行きたいのです。
色々調べたのですがフォームボタンを使ったものしかなく
困ってます。
参考になるページなどありましたら教えてください
よろしくお願いいたします。
824:nobodyさん
07/03/23 18:09:38
それはQuickFormとかと関係ない。
a href 要素・属性で、POSTで送信したいってことでしょ?
javascriptを使えばいい。
’リンクでPOST’
とかググればすぐ
825:nobodyさん
07/03/25 05:11:07 2BiXNRYt
URLリンク(pear.php.net) や URLリンク(pear.php.net) に
アクセスしようとしてもできないのはなんで?
時間が悪いのかな?
826:nobodyさん
07/03/25 10:38:49
そうみたいよ。
今は普通にできるから。