1 名前:nobodyさん [2005/08/01(月) 21:27:12 ID:pG+mahP3] 落ちてたんで立てとく ■PEAR pear.php.net/ ■前スレ Pear pc8.2ch.net/test/read.cgi/php/985665522/
701 名前:nobodyさん [2007/01/30(火) 11:27:14 ID: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さん mailto:sage [2007/01/30(火) 11:35:02 ID:???] >>701 自分で超初心者とか言うアホにPEARは100年早い。 「俺は超初心者だから、調べるの面倒だし、お前ら!丁寧に分かりやすく解決方法を教えろ!」 って言ってるのか?死ねよ!カス
703 名前:nobodyさん [2007/01/30(火) 11:59:16 ID:We8vUN44] >>702 「超初心者ですのでわかりやすく説明くださると大変ありがたいです。」そういう言い方をしましたので>>702 さんのような捕らえ方をされても仕方ないかもしれません。 ですが昨日から解決方法を調べましたが未だに解決できずにいます。ですので救いの手をいただければと思いますのでどうかよろしくお願いします。
704 名前:nobodyさん mailto:sage [2007/01/30(火) 12:12:05 ID:???] >>701 5.2.0のgo-pear.batは壊れてる ttp://d.hatena.ne.jp/shimooka/20061105/1162714257
705 名前:nobodyさん mailto:sage [2007/01/30(火) 12:15:45 ID:???] >>701 ,703 聞く前に検索しろということだ www.google.co.jp/search?hl=ja&c2coff=1&q=Cannot+use+a+scalar+value+as+an+array+in+phar%3A&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
706 名前:nobodyさん [2007/01/30(火) 22:37:40 ID:bW5fYcLi] PEAR :: DB のパッケージをインストールしたのですが 「tests」というディレクトリがありました。 これは動作に必要なのでしょうか? 必要ないのであれば消したいのですが。そもそも消す必要もありませんかねぇ。 よろしくお願いします。
707 名前:nobodyさん mailto:sage [2007/01/30(火) 22:45:17 ID:???] >>706 何故、消そうと思うのだ? 別にあってもよくないか?
708 名前:nobodyさん [2007/01/30(火) 22:47:55 ID:bW5fYcLi] >>707 そうですね。 そのまんまにしておきます。ありがとうございました。
709 名前:nobodyさん mailto:sage [2007/01/31(水) 10:55:32 ID:???] 必要ないから消してもOK
710 名前:nobodyさん mailto:sage [2007/01/31(水) 11:58:58 ID:???] 虫垂だの農家の四男坊なんてのはやたらに切るもんじゃないだろう
711 名前:nobodyさん [2007/02/01(木) 12:15:21 ID:PAIOYH/b] PECL には GNU libidn を使うための拡張があります。 pecl.php.net/package/idn 同様の拡張が別の場所でも開発されているようです。 php-idn.bayour.com/ インターフェイス(提供される関数)はほぼ同じようです。 これら二つの拡張の間には何か関係があるのでしょうか?
712 名前:nobodyさん [2007/02/06(火) 15:58:18 ID:rVKmLMVv] もう1日かけて調べたり試行錯誤したけど、全然うまくいきません。 環境: OS WindowsXP Home 鯖 anhttpd 142p PHP 5.2.0(cgiの方使ってます) ソース: <? require_once "HTTP\\Request.php"; $req =& new HTTP_Request("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さん mailto:sage [2007/02/06(火) 16:22:33 ID:???] >>712 ディレクトリセパレータでは? include_path = ".;C:\httpd142p\php5\PEAR"
714 名前:nobodyさん mailto:sage [2007/02/06(火) 16:30:00 ID:???] "/" を "\" に変えてやってみました。。。 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さん mailto:sage [2007/02/06(火) 16:42:08 ID:???] require_once 'Net/Socket.php'; これ一行だけのソースでもNo such 〜になる? C:\httpd142p\php5\PEAR\Net でアドレスバー叩いてちゃんとSocket.phpはあるかい?
716 名前:nobodyさん mailto:sage [2007/02/06(火) 17:02:55 ID:???] あー Socket.phpありませんでした。。。 Socket.phpとURL.phpダウンして入れたところ正常に動きました。 ふぅ〜。ありがとうございましたm(_ _)m。
717 名前:nobodyさん mailto:sage [2007/02/06(火) 17:22:12 ID:???] >該当箇所にはちゃんとPearファイルがあるのにエラーになってしまいます。 >該当箇所にはちゃんとPearファイルがあるのにエラーになってしまいます。 >該当箇所にはちゃんとPearファイルがあるのにエラーになってしまいます。 >該当箇所にはちゃんとPearファイルがあるのにエラーになってしまいます。
718 名前:nobodyさん [2007/02/06(火) 17:54:04 ID:NJuIco/q] if ( $_SERVER["REQUEST_METHOD"] != "POST" ) { exit( "不正なリクエストでおじゃる" ); } $hoge = $_POST["hoge"] ? $_POST["hoge"] : ""; こういうソースがあったのですが、リクエストのメソッドを調べる 意味ってあるのですか? 万が一、引数が GET で渡されてたとしても、それが $_POST に代入される ということがありえるのでしょうか。
719 名前:nobodyさん mailto:sage [2007/02/06(火) 17:56:37 ID:???] ねーよww
720 名前:nobodyさん mailto:sage [2007/02/06(火) 20:46:38 ID:???] むかーーーしのバージョンのPHPで GET引数に "GLOBALS[_POST][hoge]" とかそんな感じで 外から $_POST に値を入れられちゃう糞バグがあったような気がしんぐ
721 名前:718 [2007/02/06(火) 21:33:11 ID:NJuIco/q] すみません。 >>718 は誤爆です。
722 名前:718 [2007/02/06(火) 21:36:03 ID:NJuIco/q] >>720 そうだったのですか。 もうちょっと調べてみます。ありがとうございました。
723 名前:nobodyさん [2007/02/14(水) 07:44:29 ID:HWr8LnC4] 質問です。 今html_ajaxでいろいろやってるのですが、 html_ajaxでプロキシアクセスをしてる場合のpostで通信してるのですか?getですか? access_logをみてみると、両方のような気がするのですが。 またpostの場合、sessionでの接続ができますか?どのようにsidを送るのでしょうか? よろしくお願いいたします。
724 名前:nobodyさん [2007/02/14(水) 16:20:33 ID:pTwqj5vm] pearのアンインストール方法を教えてね。
725 名前:nobodyさん mailto:sage [2007/02/15(木) 01:48:19 ID:???] まず、どのようにインストールしたかかけや
726 名前:nobodyさん [2007/02/15(木) 02:10:56 ID:202bzPy7] go-pear.orgからインストールしたのよ。
727 名前:nobodyさん [2007/02/15(木) 17:56:46 ID:kYaagmVU] おまえらどんなPEAR使ってるか教えろ。
728 名前:nobodyさん mailto:sage [2007/02/15(木) 18:18:00 ID:???] インフラとして必要で、実用的で、枯れてて、 誰でもすぐに馴染める使いやすいパッケージは ・PHPUnit ・PhpDocumentor ・PEAR ・MDB2(+Driver) ・HTTP_Request ・Cache_Lite ・Log ・Mail あたりとか? もうPHP4でしか使う機会がないな PHP5でいいならフレームワークに付属ので間に合わすか、 ZFのライブラリを使う
729 名前:nobodyさん mailto:sage [2007/02/15(木) 19:29:34 ID:???] Pagerも結構よいよ
730 名前:nobodyさん [2007/02/15(木) 21:50:13 ID:l05otmqr] まだHTTP_Requestしか使ったことないや。
731 名前:nobodyさん mailto:sage [2007/02/16(金) 09:32:26 ID:???] Cache_Liteはめちゃくちゃ重宝する。
732 名前:nobodyさん mailto:sage [2007/02/17(土) 12:31:18 ID:???] HTML_QuickFormで確認ページって出せますか? 入力→確認→登録みたいな感じです。 出せる場合はどのようにしたら良いのでしょうか、、?
733 名前:nobodyさん mailto:sage [2007/02/17(土) 12:33:24 ID:???] freeze使え
734 名前:nobodyさん mailto:sage [2007/02/17(土) 14:54:17 ID:???] 確認画面用に freeze() 使う時は hidden 要素に setPersistantFreeze(true) も忘れないように
735 名前:732 mailto:sage [2007/02/21(水) 05:59:51 ID:???] >733,734 やってみる!ありがとう。
736 名前:nobodyさん [2007/02/22(木) 14:28:49 ID:3Rwtxk4J] PEAR のコーディング規約って、 Java でよく使われているもののほぼコピー?
737 名前:nobodyさん mailto:sage [2007/02/22(木) 18:02:36 ID:???] PHPUnit PEARから外れちゃったんだよなぁ。 PHP4でFirebirdのある限り DBを使いつづける選択肢しかないんだよなぁ。
738 名前:nobodyさん [2007/02/22(木) 22:53:30 ID:Ua9elyJa] MDB2( pear.php.net/manual/ja/package.database.mdb2.php )についての質問です。 スクリプトでMDB2を用いる際に、いちいちDSNやエラーチェックをすると コードが冗長になってしまいます。 みなさんはどうしていますか? 私が考えたのは、例えば 'DataBase' というクラス(MDB2のクラスを継承)を定義して そこから使うのがよいかと思っています。 これについて何か参考になるドキュメントがありましたら ぜひ教えてください。よろしくお願いします。
739 名前:nobodyさん [2007/02/23(金) 23:08:52 ID:yQax9a0k] 無駄なものを覚えるとかえって時間がかかる 何を学ぶかの取捨選択が大事だと思います HTML_QuickFormのほかに、これには手を出すなというのはありますか?
740 名前:nobodyさん mailto:sage [2007/02/23(金) 23:33:13 ID:???] >>739 HTML_QuickForm_Controller/DB/DB_DataObject/Auth/Auth_HTTP/Cache_Lite このくらいかな…
741 名前:nobodyさん [2007/02/24(土) 05:53:48 ID:UYU7E5V9] Authについて質問です。 MySQLにパスワードと名前を入れておいて、そこを読み取って認証するという 単純な認証を試しに作ってみたのですが、どうも巧く行きません。 具体的には、どのような入力をしても、以下の「MyAuth.php」のswitch($status)でdefaultが選ばれてしまうので、困っています。 どなたか、アドバイスをください。 以下、ソースコードです。
742 名前:これらは、全て同じ階層のフォルダに入ってます [2007/02/24(土) 05:57:38 ID: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 名前:これらは、全て同じ階層のフォルダに入ってます [2007/02/24(土) 05:59:12 ID: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さん mailto:sage [2007/02/25(日) 00:45:14 ID:???] >>741 PHPの質問スレ行った方がいいんじゃね?
745 名前:>>741-743 mailto:sage [2007/02/25(日) 01:10:29 ID:???] >>744 おっしゃる通りですね。 PHPの下質のスレに行きます。 お目汚し失礼しました。
746 名前:nobodyさん [2007/02/28(水) 08:54:35 ID:ZY+YimwX] SQLビルダーが欲しくて色々さがしてます。 DB_DataObjectがよさげだとおもって、ちょっと読んで 軽く使ってみたのですが これってSQLだけgetすることは出来ないのでしょうか? 接続にはDBとかMDBは遅いのでPDOを使いたいのですけど・・・ 良いのありませんかね? dinolibっていうのも使ってみたけど、古いし、イマイチ。 DB_DataObjectはマジで便利そうなんだけど・・・
747 名前:nobodyさん mailto:sage [2007/02/28(水) 14:56:36 ID:???] 流れはORマッパーなので。
748 名前:nobodyさん mailto:sage [2007/02/28(水) 20:30:47 ID:???] >>746 おれも以前に似たような要求で色々と調べたけど "_" から始まる名前の(PEAR規約で private 扱いの)メソッドやら変数やらをアレコレしないと 生 SQL のみを取得することはできなかったっす
749 名前:745 mailto:sage [2007/02/28(水) 21:39:38 ID:???] ソース見たら出来なさそうですね。 SQL生成から実行まで、一つのメソッドでやってた。 あれを改造しちゃうか・・・ DBかMDB2を使うか 他のSQLビルダを探すか 自分で作っちゃうか とりあえずここ過疎化してるので PHP版に移住します。お騒がせしました。
750 名前:745 [2007/02/28(水) 23:20:38 ID:ZY+YimwX] >>748 すいません。板のURLが変わってたんですね 2chブラウザ使ってるのでレスが付いてないのかと思っちゃいました。 SQLビルダ作るかな〜
751 名前:nobodyさん mailto:sage [2007/03/01(木) 01:32:14 ID:???] DB_DataObjectはORマッパであってSQLビルダでない件に関して
752 名前:745 [2007/03/01(木) 10:39:52 ID:vEHHBeZ0] >>751 純粋にクエリーを発行して配列にオブジェクトを格納するところまでの時間を計測したんですけど PDO::FETCH_CLASSとかpg_fetch_object(postgresqlなら)を使うと シチュエーションによっては10倍近い速さなんですよね。 だからSQLビルダだけ使えないかと思ったわけでして。 ただ、取得するデータ件数が少ないと、速度差はごくわずかなので LIMITで絞ってページングすればほとんど変わらない気もするし・・・ DB_DataObject使うとSQLインジェクションとかプレイスフォルダ使わなくて ばっちり対策済みなんでしょうか? もうちょっと色々試してみます・・・ すごい良く出来てると思うので、気になるのは速度だけなんだよな〜
753 名前:nobodyさん mailto:sage [2007/03/01(木) 11:20:12 ID:???] 今更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さん mailto:sage [2007/03/01(木) 11:23:12 ID:???] >>753 あなたの言っている全ての機能はDB_DataObjectにも実装されていますが? それにフレームワーク固有のコードを書いていたら汎用性が全く無くなってしまう。 それこそ、自己満足の時代に逆境したプログラミングでしかない。
755 名前:nobodyさん mailto:sage [2007/03/01(木) 11:29:52 ID:???] じゃあDB_DataObject使えばいいじゃんw
756 名前:nobodyさん mailto:sage [2007/03/01(木) 11:45:56 ID:???] PEAR::DB が遅いってのは抽象化インタフェースなんだからある程度は仕方ないと思うが pdo がいいなら PEAR::DB とインタフェース互換で pdo 直接叩くようなのを書けばいいんじゃないかな てか書いたら公開してくれw
757 名前:nobodyさん mailto:sage [2007/03/01(木) 12:33:14 ID:???] >>754 別にDB_DataObjectが機能不足だなんて書いてないし 俺もDBやDB_DataObjectを経て来た上で書いている あとZend_Dbやpropelにフレームワーク固有のコードとかない それぞれ独立したライブラリとして作られている てかDB扱うライブラリに普通FW固有のコードなんて書かない もうちょっと色んなライブラリ見渡してみてもいいと思うよ
758 名前:nobodyさん mailto:sage [2007/03/01(木) 12:37:31 ID:???] >それにフレームワーク固有のコードを書いていたら汎用性が全く無くなってしまう。 フレームワークをなんだと思ってるんだ?
759 名前:nobodyさん mailto:sage [2007/03/01(木) 15:51:00 ID:???] DBからMDB2に移ろうとしているんですが、 MDB2って、なんかDBに比べて不便になってる 気がするんですが、気のせいでしょうか? insertやupdateの手順がまんどくさくなってるよな。。。
760 名前:nobodyさん mailto:sage [2007/03/08(木) 12:27:01 ID:???] 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さん mailto:sage [2007/03/08(木) 12:31:50 ID:???] 単にcallback1()を2回定義しちゃってるだけじゃないの?
762 名前:760 mailto:sage [2007/03/08(木) 14:00:23 ID:???] >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さん mailto:sage [2007/03/09(金) 15:56:39 ID:???] 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さん mailto:sage [2007/03/09(金) 16:07:36 ID:???] 今俺も試しにアップグレードしてみたが特に問題ないな whichとfindで探しても全くでてこない?
765 名前:nobodyさん mailto:sage [2007/03/09(金) 16:18:35 ID:???] Html_QuickFormのselectあります。 これにmultiple属性を設定するにはどんな書式にすればいいんでしょうか? $QuickForm->addElement('select',); みたいな書式でできるんでしょうか・・・?
766 名前:763 mailto:sage [2007/03/09(金) 19:18:19 ID:???] >>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さん mailto:sage [2007/03/09(金) 21:25:55 ID:???] pearディレクトリ毎持ってきたりして入れ替えたら そりゃ消えようがしゃあないな アップグレード時にbinにコピーできなかったとか go-pearでPEARだけ入れ直したらいいんじゃね
768 名前:nobodyさん mailto:sage [2007/03/09(金) 22:48:15 ID:???] >>767 おお、go-pearなんて便利なものが・・・ これで無事再インストール出来ました。
769 名前:nobodyさん [2007/03/09(金) 23:08:13 ID:bGciLmRc] Windowsの話?
770 名前:nobodyさん mailto:sage [2007/03/11(日) 00:25:48 ID:???] >>765 ttp://www.townmedia.org/tips/PEAR/HTML_QuickForm.html 2-2 addElementで使える要素一覧 をみるかぎり、select のarg5に入れればなんでもアリじゃないでしょうか?
771 名前:nobodyさん mailto:sage [2007/03/13(火) 18:35:18 ID:???] PEAR::Auth を便利に使っています。 別の場所で別の人が同じ ID/PW でログインできますが、 これを拒否する方法はどういうものがあるでしょうか。 ( 後からログインした人を拒否できると嬉しいです )
772 名前:nobodyさん mailto:sage [2007/03/13(火) 20:09:42 ID:???] ログインユーザをセッションIDと一緒に、DBなりファイルに書き出しとけばいいんじゃないの。 同一ユーザ名ログインの時には、それに対応するセッションIDが残ってるかどうかチェックして なきゃそれでOK。 でも同一ユーザ名・パスワードの複数保持なんていうのがそもそもセキュリティ的にラフすぎ。
773 名前:nobodyさん mailto:sage [2007/03/14(水) 09:34:15 ID:???] >>772 ありがとうございます。 何かの拍子に ID/PW が漏れた場合、 同時にアクセスされたら漏洩発覚!としたかったんです。
774 名前:nobodyさん mailto:sage [2007/03/14(水) 09:44:37 ID:???] >>773 そんなのWWWでやるシステムじゃない
775 名前:nobodyさん mailto:sage [2007/03/14(水) 12:37:17 ID:???] どうやってログアウトをシステム側で察知するかだな。 操作ミスなり回線不良なりでCookieあぼーんすると 直ぐにログインできないってことになる。
776 名前:nobodyさん mailto:sage [2007/03/14(水) 12:59:55 ID:???] つかブラウザ二個起動した時点で終了
777 名前:nobodyさん mailto:sage [2007/03/14(水) 14:20:57 ID:???] >>774 ネットバンクとかで無いか?
778 名前:nobodyさん mailto:sage [2007/03/14(水) 14:35:20 ID:???] >>777 >>776
779 名前:nobodyさん mailto:sage [2007/03/14(水) 14:41:52 ID:???] >>778 意味ワカラン
780 名前:nobodyさん mailto:sage [2007/03/14(水) 14:43:11 ID:???] 分かった
781 名前:nobodyさん mailto:sage [2007/03/14(水) 14:46:43 ID:???] >>776 同じIPならセーフとかは?
782 名前:nobodyさん mailto:sage [2007/03/14(水) 14:57:05 ID:???] >>781 ルータ経由はどうすんの。
783 名前:nobodyさん mailto:sage [2007/03/14(水) 19:03:09 ID:???] やっぱり難しいさね。 ストリーミングサイトだったら通信継続してるから 感知して第二ユーザはキック出来るけど、そうじゃなきゃ>>775 のような ケースでクレーム来るほうが怖いからなあ。
784 名前:nobodyさん mailto:sage [2007/03/14(水) 19:07:01 ID:???] ログイン画面で固定のキーを与えるのどうだろう。
785 名前:nobodyさん mailto:sage [2007/03/14(水) 19:12:34 ID:???] トークン使う
786 名前:nobodyさん mailto:sage [2007/03/14(水) 19:21:48 ID:???] 明示的なログアウト送信がない限り全部一緒の問題を抱える
787 名前:nobodyさん mailto:sage [2007/03/14(水) 23:04:39 ID:???] まあセッションクッキーのexpire時間を金融サイトみたいに10分とか短く設定しておいて、 10分以内に通信無きゃ強制ログアウトっていうのが許されるサイトなら問題が少なくなる。 最大10分の再ログインラグが出るけどね。
788 名前:nobodyさん mailto:sage [2007/03/15(木) 00:52:45 ID:???] 昔やったサイトというかWebアプリでは ・ユーザは出来るだけ明示的にログアウトするようお願いする ・メインウィンドウがクローズされる時にログアウトのURLを叩くJavaScriptを仕込んでおく ・最終アクセスを全ユーザの全アクションで記録しておいて、ログアウトなしのユーザがログインしようとしたら最終アクセスが10分以内の場合は弾く イントラ用のアプリケーションだったから負荷とかも考慮した上でここまでやったけど 一般向けのWebサイトじゃどこまでやるかは難しい判断だろうなぁ
789 名前:nobodyさん mailto:sage [2007/03/15(木) 09:27:34 ID:???] >>787 それは、パスワード漏洩時の対策にはならんのではないか。 まあそもそもの話として同時アクセス=漏洩なのかというか、常時使うシステムでもない限り使う時間がぶつかることがあるのか疑問。 漏洩するとしたら、内部からユーザ情報持ちだしとか、パソコンに付箋紙貼ってある時だと思うんだが、 したら不正利用する人が夜中とかに使えばまあ、システム上はほとんど不正利用にならないだろうし。 >>788 ログアウトするようにお願いするったって 不特定多数のコンピュータリテラシーがまちまちなユーザじゃ無理。 メインウィンドウをクローズしないかもしれないし。 夢を見すぎじゃないかと。 ユーザに過去のログイン・ログアウト情報を提示して、変だったら通報してもらうほうがいいんじゃねえの。 過去にどういう行動をしたのか知ってるのは本人しかいないわけだし。
790 名前:nobodyさん mailto:sage [2007/03/15(木) 10:01:20 ID:???] >>789 世の中には「テメエにしか分からないこと」を 自動的に論理矛盾なくプログラム側で判断しろ、 という輩もいるわけでwww
791 名前:nobodyさん mailto:sage [2007/03/15(木) 11:54:09 ID:???] 生体認証かな
792 名前:nobodyさん mailto:sage [2007/03/15(木) 12:14:00 ID:???] >>789 お願いするだけじゃ無理なのが解ってるから2番目・3番目の仕組を入れてるわけで 無理じゃなけりゃJavaScriptだの全アクセス記録だの不要だろw あと「イントラ用」って書いたんで不特定多数ではない時の話だってのも読み取ってほしいところ >>791 ログインには使えるけどログアウトしてくれるかどうかは別問題だねそれはw PCの不意のハングアップまで考慮しようとすると それこそJavaScriptか何かでサーバとハートビート交換しまくって 途切れたらログアウト処理にするとかまでやらないと難しいだろうなぁ
793 名前:nobodyさん mailto:sage [2007/03/15(木) 12:35:50 ID:???] >>792 目的が漏洩対策ならいいんじゃない?<生体認証
794 名前:nobodyさん mailto:sage [2007/03/15(木) 13:00:52 ID:???] >>792 と言われても、話の元の人はイントラ用とは言ってないわけだし、実際採用されたらどうかなあと思うわけで。 結局のところ、普通に当たり前のことをやっとけばいいと思うよ、としか言えないな。 一応法整備されたからパスワードだけかけておけばノーガードでもいんじゃねという話もある。
795 名前:nobodyさん mailto:sage [2007/03/15(木) 13:58:14 ID:???] >>787 >それは、パスワード漏洩時の対策にはならんのではないか。 元ネタが同時ログインをキックしたいということだけであって、どこに問題がある?
796 名前:nobodyさん mailto:sage [2007/03/15(木) 14:21:29 ID:???] >>795 >>773 > 何かの拍子に ID/PW が漏れた場合、 > 同時にアクセスされたら漏洩発覚!としたかったんです。 >>771 だけ見ればそんなもんかって感じだが。
797 名前:nobodyさん mailto:sage [2007/03/15(木) 15:40:15 ID:???] 同時アクセス「ゆえに」漏洩発覚というロジックはむちゃくちゃだから どうでもいいじゃん。同時アクセスキックできる方法だけ話してればいい。
798 名前:711 mailto:sage [2007/03/15(木) 17:59:45 ID:???] 元質問者です。 両方再ログイン促すので十分です。 それで漏洩か運用で分かると思うので。 なんだかいろいろと考えることが多いのですね ^^; どこかにいい実装例はないでしょうか。 ( コードがあると嬉しいです )
799 名前:nobodyさん mailto:sage [2007/03/15(木) 18:50:39 ID:???] >>798 仮に漏洩してたとして、同時アクセスと思える範疇でアクセスがある、漏洩と判断できる確率って少ないんじゃね。 あれこれ仕掛けてユーザビリティ低下でクレームが発生するほうが高そうに思えるのだが。 まぁどこまでコストをかけるかは措いといて、 >>775 で「どうやってログアウトを...」って書いたけど、Cometならできるかもしんない。 Cometシステムを構築したことどころか、lingrさえしたことないので、 どこまで実用的に漏洩を察知できるシステムができるどうかは知らんが。 これでも、ユーザが会社でブラウザを開いたまま帰宅、自宅でログイン出来ねーって言うかもな。
800 名前:nobodyさん [2007/03/15(木) 21:24:01 ID:fuFXgue7] >ユーザが会社でブラウザを開いたまま帰宅、自宅でログイン出来ねー イントラ想定してしながらそうじゃないケース想定してるのが痛い