【PHP】PEAR Part3
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/09/03(月) 12:15:51ID:l6O4U4Dhhttp://pear.php.net/
■PEAR マニュアル 邦訳
http://pear.php.net/manual/ja/
■PEAR オフィシャル blog
http://blog.pear.php.net/
■前スレ
【PHP】PEAR Part2
http://pc11.2ch.net/test/read.cgi/php/1122899232/
■過去スレ
Pear
http://pc8.2ch.net/test/read.cgi/php/985665522/
0237momon
2008/06/08(日) 20:56:10ID:7tVwPEeC返信ありがとうございます!
そういった仕様とのことですが、
passwordの値を取得するのはどうしたら良いんでしょうか?
0238momon
2008/06/08(日) 21:21:13ID:7tVwPEeCsetPersistantFreeze(true);
↑↑が必要だったんですね!
ありがとうございました!!
0239nobodyさん
2008/06/08(日) 23:10:03ID:???0240momon
2008/06/08(日) 23:18:43ID:7tVwPEeCご指摘受けてHTMLソース見たら丸見えでした・・・
どうしたら良いんでしょうか・・・
0241nobodyさん
2008/06/08(日) 23:30:12ID:???0242momon
2008/06/08(日) 23:41:19ID:7tVwPEeCすいません、よく意味が分からないです。
値を受けないと処理が出来ないですし、
フォームがリセットされちゃって変更が出来なくなってしまいます。
どういうことなんでしょうか。
初心者でわからない事が多いのでご迷惑おかけします。
0243nobodyさん
2008/06/08(日) 23:45:17ID:???0244nobodyさん
2008/06/09(月) 13:24:04ID:???0245nobodyさん
2008/06/09(月) 14:29:55ID:???再読込した際にデータ保持して表示しなきゃならんのだ?
0246nobodyさん
2008/06/09(月) 14:43:55ID:???確認画面でpasswordの入力情報が引き継げないって事なんじゃないかな
0247nobodyさん
2008/06/09(月) 15:03:11ID:???んでもパスワードをわざわざ引き継がんでも
受け取った内容を*******とかにして
HTMLに戻すロジック書けば良いんでないの?
内容丸見えでいいんなら、もう出来てる訳だし、
何に悩んでるのか今いちよく分からん。
0248nobodyさん
2008/06/09(月) 20:13:41ID:???まぁ、確認画面で「入力へ戻る」するときにどうするとき、結局同じ問題になるけどな。
大半のサイトでは戻ってきたときとかは「再度パスワードを入力してください」になる。
0249nobodyさん
2008/06/14(土) 13:51:17ID:???0250nobodyさん
2008/06/16(月) 01:14:10ID:Z0AjyD6RPEARで美しいソースと言ったら、何でしょう?
どうもPHPネイティブのライブラリで
参考になるようなライブラリソースが見つけられずにいて、困っています。
イメージとしては、Effective C++ のような方向性の知識を身に付けたいのです。
0251nobodyさん
2008/06/16(月) 01:19:44ID:???0252nobodyさん
2008/06/16(月) 01:31:56ID:???0253nobodyさん
2008/06/16(月) 01:43:04ID:???アルゴリズムの意味誤解してないか?
0254nobodyさん
2008/06/16(月) 01:57:22ID:???0255nobodyさん
2008/06/16(月) 02:43:59ID:???どれがZend技術者が書いてるライブラリなのかは分からんけど。
0256nobodyさん
2008/06/18(水) 05:39:10ID:???0257nobodyさん
2008/06/22(日) 22:22:37ID:QMNmEs54WebベースでPEARをレンサバにインストールしたのですが、
PEAR自体のアンインストール方法がわからず途方に暮れてます。
とりあえずパーミッションの関係でFTPクライアントで削除はできません… orz
0258nobodyさん
2008/06/22(日) 22:29:36ID:???phpで書いてそれをwebからアクセスして叩いてやればいい
0259nobodyさん
2008/06/22(日) 22:41:33ID:???ありがとうございます!
が、しかし「適当な削除スクリプト」を書くためにPHPを勉強せねば…。
(なんでスキルないのにPEARなんて入れちまったんだ… orz)
0260nobodyさん
2008/06/22(日) 23:26:31ID:???基本、カレントディレクトリにコピーするだけで使えるよ。
試しにエスパーしてみると、
>>257は、PHPセーフモードで作成したんじゃね?
(ディレクトリのアクセス権がApacheで作成されるから、ユーザ権限で削除できなくなる)
XREA関係だったら、公式にアクセス権変えるPerlスクリプト配布してるよ。
0261257
2008/06/22(日) 23:27:30ID:???にたどり着き、ちょっと修正して解決しました。
スレ汚しスミマセンでした。
0263nobodyさん
2008/06/23(月) 19:34:44ID:DispO3Sl申し訳ありませんがわかるかた教えていただけますか?
C:\php>php -n -r "include 'http://go-pear.org';"
Warning: include(): URL file-access is disabled in the server configuration in C
ommand line code on line 1
Warning: include(http://go-pear.org): failed to open stream: no suitable wrapper
could be found in Command line code on line 1
Warning: include(): Failed opening 'http://go-pear.org' for inclusion (include_p
ath='.;C:\php5\pear') in Command line code on line 1
環境は、
My PCのWin XP Pro SP2
PHP Ver5.2.3
ではうまくインストールできたのですが、
会社のPC Win Server 2000
PHP Ver5.2.3
では上記のようなエラーが出てしまいます。
インストールフォルダーは、
どちらもC:\php\です。
正直行き詰っていて困っています。
こちらのサイトとかも参考にしたのですがダメでした。
http://www.phppro.jp/qa/697
http://blog.livedoor.jp/snowdunker/archives/50530677.html
よかったら教えていただけませんか?
よろしくお願いします。
0264nobodyさん
2008/06/23(月) 19:52:02ID:???0265nobodyさん
2008/06/23(月) 21:13:10ID:iWsZXoRu264さんありがとうございます。
確かにphp.iniを見てみると、
allow_url_include = off
になってました。
今度会社のPCで
allow_url_include = on
にして試してみたいと思います。
ありがとうございます。
それにしても、MyPCのphp.iniでも
allow_url_include = off
になっていたのですが、
なぜインストールできたんでしょう・・・。
いずれにしても試してみます。
ありがとうございます。
またご報告いたします。
0266nobodyさん
2008/06/23(月) 21:20:36ID:???家PCには元々入っていたとしか思えない。
なぜなら、http://go-pear.orgドメインなんて使われてないから。
正しくは、http://pear.php.net/go-pear
0267nobodyさん
2008/06/23(月) 21:42:04ID:gGylOlGMレスありがとうございます。
それがですね、MyPCでは、
C:\php>php -n -r "include 'http://go-pear.org';"
でインストールできたんです。
私の持っている参考書3冊のうち2冊にこのコマンドでのインストール方法が記されていました。
もう1冊には、go-pear.batを実行するようにうに記されています。
結構他の掲示板でも、http://go-pear.orgのURLではインストールなんてできないはずだと書き込みされていました。
参考書に記されているとおりにするのがいいのか・・・。
真意の程は・・・です。
ちなみにWebサーバにはどちらにもIIS5.1を使用しており、
phpモジュールはどちらもISAPIで使用しています。
ご教授していただきありがとうございます。
0268nobodyさん
2008/06/23(月) 21:47:38ID:???考えられるとしたら、MyPCにインストールしたのが、
数年前のドメイン利用されてた頃ってことだけ。
当然、ドメイン変わったんだから、それに併せて書き方変えようよ。
マニュアル人間過ぎるぞw
0269nobodyさん
2008/06/23(月) 21:50:43ID:XoM4+gvuなんせPHP初心者なもので。
もっと勉強したいと思います。
ありがとうございます。
0270nobodyさん
2008/06/23(月) 21:52:38ID:???0271nobodyさん
2008/06/26(木) 21:35:29ID:???できたフォルダが所有者権限になってしまうらしく
使用者の自分では一切の変更ができなくなってしまいます。
どうすればよいのでしょうか?
0272nobodyさん
2008/06/27(金) 01:48:55ID:???所有者というかWebサーバの実行ユーザだろ。
そうであれば、chmod 0777 filenameしてやれば操作できると思うがどうか
0273nobodyさん
2008/06/27(金) 12:42:26ID:???<?php
require'Archive/Zip.php';
$zip = new Archive_Zip("tes.zip",0777);
$option = array('add_path'=>'1');
$zip->extract($option);
?>
こんな感じで良いのかな?
解凍されたフォルダ内のすべてのファイルがアクセス可能になるのでしょうか?
0274nobodyさん
2008/06/27(金) 12:52:28ID:???http://www.xrea.com/files/chg_uname.txt
0275nobodyさん
2008/06/27(金) 23:14:33ID:???早速使ってみましたが削除できませんでした。
色々試してみましたが
普通にmkdirで作成したものは問題なく消せるのに
Archive_Zipで解凍してものだけが消せないみたいです。
0276nobodyさん
2008/07/02(水) 16:41:07ID:???0277nobodyさん
2008/07/02(水) 16:52:12ID:???こないだMDB2にシフトしたばっかりだ。
RDBMS依存のSQLをprepare→executeで実行してるから、
使い勝手はどっちも変わらないと思ってる。
0278nobodyさん
2008/07/03(木) 20:30:15ID:???CakePHPについているO/Rマッパー使ってる。
もうSQL直発行&変数への詰め替えはやろうとは思わない。
念のためにいっておくと、もちろん必要な場合はSQL直発行できる。
0280nobodyさん
2008/07/18(金) 05:15:10ID:KKknHOVD$form->addElement('text', 'string', 'String:');
$form->setDefaults(array('string'=>'{/HOGE/}'));
0281nobodyさん
2008/07/19(土) 02:53:36ID:???なぜかPEARのDBとMDB2のファイルを認識せず,うまく動作させることができません.
pear_infoを行うとしっかりと2つとも認識されていますし,当然パスの通った場所にも置いてあります.
しかしいざ実行してみるとMySQLとの接続ができずにint(1)が帰ってきてしまいます.
自分ではまったく原因がわかりませんでした.
どなたかよろしくお願いします.
0282nobodyさん
2008/07/19(土) 02:59:17ID:???0283nobodyさん
2008/07/19(土) 12:48:14ID:A+3HeoJ1require_once("DB.php");
...
class SQLConnection {
// インスタンス変数
private $conn;
...
// コンストラクタ
public function __construct($user, $pass, $host, $name) {
$dsn = "mysql://$user:$pass@$host/$name";
$this->conn = DB::connect(dsn); ←ここでエラーがでて終了する
...
}
}
こんな感じであとは$this->connを使っていろいろとやっていくつもりです.
VS.PHPを使っているのですが,その際require_once("DB.php");に赤線が引っ張られているので,
すでにこの時点でファイルが見つかっていないように思われます.
0284nobodyさん
2008/07/19(土) 12:55:38ID:???DNSの書き方あってんのかよ
0285283
2008/07/19(土) 13:00:56ID:???実際のソースでは$が入った状態でエラーが出ています.
>>284
ブザウザ上の表示はint(1)という表示しか出ません.
VS.PHPのエラーは
「呼び出し履歴のフレームシンボルは読み込まれません.ソースコードを表示できません.」
となります.
その際スタックフレームがconnect() line 519
と表示された状態で泊まります.
0286283
2008/07/19(土) 13:02:25ID:???書き忘れ.
ブラウザには出力されていませんが,VS.PHPの出力には
Fail to map "/usr/share/php5-pear/DB.php" to a local path
Fail to map "/usr/share/php5-pear/DB.php" to a local path
というエラーが表示されています.
なぜか2回同じものが表示されています.
0287nobodyさん
2008/07/19(土) 18:08:50ID:???最低でも出力ダンプしてデバッグくらいはしろよ、、、
0289263
2008/07/19(土) 19:05:43ID:???出力ダンプですが,この場合どの値をダンプすべきなのでしょうか?
connect直前までは全ての値が自分の思い通りになっているのですが,connectした瞬間に落ちてしまいます.
connectの中の値をダンプしようとしても,読み込めないといっている519行目というのが,connectの定義部分の最初の行なのでダンプする値が存在しないのです・・・.
また519行目ということを認識しているにも関わらず,読み込めないというのも理由がわかりませんし・・・.
>>288
pear_infoなどの他のPEARライブラリは使用できているため,パスは通っていると思われます.
なぜかDBとMDB2だけが認識しないという状態なのです.
0290nobodyさん
2008/07/19(土) 19:06:54ID:???0292263
2008/07/20(日) 14:49:16ID:???VS.PHPは普段VisualStudioでプログラミングしている身としてはすごく楽で・・・.
いろいろと調べましたが,VS.PHPの挙動がいくつかおかしい部分があったりするので,それ抜きでやってみたいと思います.
>>291
確かに表現があいまいでしたね.
申し訳ないです.
phpinfoで確認したところinclude_pathにPEARへのパスが通っていました.
そのためパスが通っていることは間違いないです.
0293nobodyさん
2008/07/20(日) 15:45:27ID:???IDE上からはIDEの設定でinclude_pathの設定なりちゃんとしてないと
requireやらincludeやらするところで当然エラーが出るんじゃないの?
だからそのVS.PHPとやらがFail to mapって言ってるんじゃない?
何使って開発するかは何でもいいと思うけど
IDEによる問題とサーバサイドの問題を
ちゃんと切り分けて考えられないと
これが解決できたとしてもまた同じような穴に嵌る罠
0294nobodyさん
2008/07/20(日) 18:34:09ID:???そのあたりは、VS.PHPのスタートページを
phpinfo();
だけのファイルにすることで容易に確認できるはずなので、
それを確認した上で>>292の発言だと信じたい訳だがwww
0295nobodyさん
2008/07/21(月) 15:23:22ID:???0296nobodyさん
2008/08/04(月) 14:35:04ID:cq8LE1/wってかインストールで手間取る以前にパッケージ自体が発見できないんだが。
go-pear.phpなんてどこ探しても無いじゃないか。
SSHで取ろうとしてもエラーしか返ってこないじゃないか。
PEARなんて存在しないだろ。でないと見つからない理由が分からん。
0298nobodyさん
2008/08/04(月) 15:37:56ID:???…って思うことがあるよ。
そうなれば最新版にアップデート出来なくても、
最低限、パッケージングされた時点での
ファイルは入手できるし。
0299nobodyさん
2008/08/04(月) 17:50:49ID:???http://pear.php.net/go-pear.phar
>>298
基本部分は普通にバンドルされてると思うけど
0300nobodyさん
2008/08/10(日) 00:05:05ID:3za8cG7iどうやっていいかわかりません。
下記のソースの'format'部分を変更したら良いのかと思ったんですが、
うまく行きませんでした。
ググってみたけど欲しい情報にたどり着けず。。
だれか教えてください!!
$date_option = array(
'Y'=>$a,
'minYear' => date( 'Y' ) - 1,
'maxYear' => date( 'Y' ) + 3,
'format' => 'Y 年 m 月 d 日',
'addEmptyOption' => true,
'emptyOptionValue' => '',
'emptyOptionText' => '----'
);
$form->addElement('date', 'date', '日付', $date_option);
0301nobodyさん
2008/08/10(日) 00:27:08ID:3za8cG7iすいません'Y'=>$a, は適当に$aに数字をぶち込んだ感じです。
0303nobodyさん
2008/08/18(月) 13:07:54ID:???$sql=$db->prepare(" select * from books where price like '%?%'");
$ret=$sql->execute(array('100'));
SQLがselect * from books where price like \'%?%\'になっちゃって結果がarray()
price=100とか1000とかのデータは入ってるのできっちりエスケープされてる
全然どうでもいいがqueryはできるのにquoteが何故か動かず解決に超苦労した。
実はXAMPPのドライバ読み込みがinclude_pathからしか読んでない&XAMPPのパスの最後に\が付いてるせいで
自力で入れたMDB2とmysqliドライバ読んでくれてなかっただけだった。
何故MDB2の現在位置からのパスを拾ってくれないんだ…
0304nobodyさん
2008/08/18(月) 13:39:17ID:???0305nobodyさん
2008/08/18(月) 15:55:47ID:???$res=$a->execute('%10%');
でよかったのか。ぎゃー
0306nobodyさん
2008/08/20(水) 16:27:03ID:nVxHuE1Q送信元メールとエラーメール受信先を別にしたいので、
sendメソッドの第二パラメータに'Return-Path'というキーを含めて
リターンパスを指定したのですが、
届いたメールを見ると、
何故かそのリターンパスが、本文の頭にまで書かれています。
ヘッダにも、ちゃんと書かれているのですが。
ヘッダにだけ書くようにしたいのですがどうすればいいのでしょうか?
0307nobodyさん
2008/08/20(水) 17:00:43ID:nVxHuE1Q似たような問題見つけました
これはバグですかね・・・
こんな基本的なパッケージにいまだにこんなバグがあるなんて・・・
0309nobodyさん
2008/09/04(木) 17:02:18ID:3IjpaimK<?php
require_once "HTTP/Client.php";
$URL = "https://register.www.infoseek.co.jp/Login.html";
$LOGIN_ID = 'xxxx';
$LOGIN_PW = 'xxxx';
$http = new HTTP_Client();
$params = array(
'username' => $LOGIN_ID,
'password' => $LOGIN_PW,
'plogin' => 'on',
'saveId' => 'on',
);
$ret = $http->post($URL, $params);
$response = $http->currentResponse();
print_r($response['body']);
?>
ログインできてないHTMLが帰ってくるんだけど、どうしてですかね?
0310nobodyさん
2008/09/04(木) 18:58:34ID:???0311309
2008/09/04(木) 19:20:56ID:???結果変わらず。
$http = new HTTP_Client();
$http->setDefaultHeader(
array(
'User-Agent' => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)',
'Referer' => $URL,
)
);
うーむ。
0312nobodyさん
2008/09/04(木) 19:25:17ID:???https://register.www.infoseek.co.jp/Login.html
にログイン情報POSTしてどーすんの?
0313nobodyさん
2008/09/04(木) 19:26:36ID:???jsessionidやら何やら付いてるのはいいのか
0314nobodyさん
2008/09/04(木) 19:28:36ID:???0315309
2008/09/04(木) 19:49:53ID:???require_once "HTTP/Client.php";
$URL = "https://register.www.infoseek.co.jp/Login.html";
$LOGIN_ID = 'xxxx';
$LOGIN_PW = 'xxxx';
$http = new HTTP_Client();
$http->setDefaultHeader(
array(
'User-Agent' => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)',
'Referer' => $URL,
)
);
$params = array(
'username' => $LOGIN_ID,
'password' => $LOGIN_PW,
'plogin' => 'on',
'saveId' => 'on',
'sv' => 'JP',
);
$ret = $http->post($URL, $params);
$response = $http->currentResponse();
print_r($response['body']);
$cookie = $http->getCookieManager();
print_r($cookie);
?>
なぜ駄目なんでしょう??実行してる環境の問題??
0316nobodyさん
2008/09/04(木) 22:17:07ID:???ともかく、一度LiveHTTPheadersとかで流れを把握すればいいんでない?
0317309
2008/09/05(金) 15:20:44ID:???HTTP/Client.phpとHTTP/Request.phpのソースを読んでみた。
デバッグ用のコード仕込んだりしてみたけど、HOSTヘッダとかも正しく送信してるみたい。
Firefox3でLiveHTTPheaders使って調べてみたけど、
PHPとの違いは Connection closeとkeep-aliveの違いみたいだったので、
setDefaultHeaderにConnection:keep-aliveセットしてみたけど、結局動作変わらず。
currentResponseでPOST後のHeader見てみたけど、どこがおかしいか不明でした。
infoseekはログイン後に
<meta http-equiv="Refresh" content="1; URL=http://www.infoseek.co.jp/">
とかやってるみたいなので、POST前にsetMaxRedirects(0)してみたけど、NGでした。
ブラウザでログインすると、ログイン後にGHG、GPPという名前のクッキーが
セットされるみたいだけど、HTTP/ClientでPOSTすると、そこがセットされない。
これが問題っぽいんだけど、理由がわからずお手上げ状態です。
識者の方、何方かわかりませんでしょうか??
0318nobodyさん
2008/09/05(金) 16:33:01ID:???0319309
2008/09/05(金) 17:14:25ID:???原因はわかりませんでした。
しょぼーん(´・ω・`)
0320nobodyさん
2008/09/06(土) 01:09:27ID:???MDB2インスタンス生成時に
MDB2 Error: not found
no RDBMS driver specified
と表示されます。
FAQより、ドライバをインストールするということなのですが、
インストール(Windowsなのでダウンロード)したのですが、同じエラーで動きません。
ちなみに場所は
C:\xampp\php\PEAR\MDB2\Driver\mysql.php
です。
一応一番新しいのをダウンロードして更新したのですが、他に何か必要なものがあるのでしょうか?
0321nobodyさん
2008/09/06(土) 05:53:18ID:???0323nobodyさん
2008/09/06(土) 22:00:24ID:Fjgg9Ep0Ver5.2.6です。あと、Pearもインストールしてみたのですが、64BIT環境では動作しないのでしょうか?
今日の最新版をApache共々インストールして、Pear以外の動作は行える状態です。
偉い人お願いします
0324nobodyさん
2008/09/07(日) 05:33:35ID:???0325nobodyさん
2008/09/07(日) 07:12:29ID:???> デバッグ環境を構築
ググって調べれば幾らでも出来るよ。
> 64BIT環境では動作しないのでしょうか?
ググって調べれば(ry
0326nobodyさん
2008/09/21(日) 19:10:06ID:???いつになったら出るんだろう
0327nobodyさん
2008/09/21(日) 23:10:45ID:jnXhi64Rフォームチェックをする仕組みを探してて、これを見つけたんですが、チュートリアルなどを参照してみました。
チュートリアルに従うとフォームオブジェクトを作成し、フォーム要素を設定、そのオブジェクトに対してルールを適用するみたいな感じだったんですが
例えばhtmlで書かれたformに対してこのルールを適用することなんで出来るんでしょうか?
<body>
<form action="/localhost/testQuickForm.php" method="get" name="frmTest" id="frmTest">
<input name="MyTextBox" type="text" value="111" />
<input name="btnClear" value="クリア" type="reset" />
<input name="btnSubmit" value="送信" type="submit" />
</form>
<?php
require_once "HTML/QuickForm.php";
$form = new HTML_QuickForm('frmTest', 'get');
$form->addRule('MyTextBox', '名前の入力が必要です', 'required');
$form->applyFilter('MyTextBox', 'trim');
if ($form->validate()) {
// フォームの検証が成功したら、凍結する。
$form->freeze();
}
$form->display();
?>
</body>
</html>
みたいなことってできないですかね?
0328327
2008/09/21(日) 23:32:35ID:jnXhi64R平たく言うとビューとロジックの分離をしたいんです。
pearのロジックは使いたいんだけどフォームの出力は本来どおりhtmlで見たいな事を実現する方法を探してます。
詳しい方ご教授ください。
0329nobodyさん
2008/09/22(月) 00:37:13ID:???0330327
2008/09/22(月) 10:14:14ID:wSWOo9Rgくだらない質問してすんまそんでした。
0331nobodyさん
2008/09/29(月) 18:35:46ID:???接続しようとすると
Call to undefined method MDB2::areequals()
と表示されます。
何か必要なものがあるのでしょうか?
0332nobodyさん
2008/09/29(月) 18:40:56ID:???0334nobodyさん
2008/10/01(水) 18:41:21ID:???0336nobodyさん
2008/10/18(土) 00:44:50ID:yI6BlwBF会員サイトなど、ログイン後に表示される設定変更画面(登録情報など)
にある部分のフォーム内の特定のname="*" value="*"の部分を読み込んで、
それを置換して登録情報更新させるようなことはHTTP_Clientで可能でしょうか?
■ このスレッドは過去ログ倉庫に格納されています