1 名前:nobodyさん mailto:sage [2012/01/20(金) 05:43:23.62 ID:???] 質問者はまず>>1 を良く読むこと(必須!) 過去スレ、関連スレ、FAQなどは>>2-10 辺り 次スレは>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。 ◆前スレ 【PHP】下らねぇ質問はID出して書き込みやがれ 114 kohada.2ch.net/test/read.cgi/php/1325437405/ ◆質問用テンプレ 【OS名】CentOS 【PHPのバージョン】5.3 【連携ソフトウェア】MySQL ImageMagick 【質問内容】 ◆質問する時の注意 ・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す) ・ 己の行った操作、変更などを詳しく明記すること。 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 ・ 質問者として、態度をわきまえること。 ・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。 (PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。) ◆質問後の注意 ・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。 ・解決しなくても回答をもらった場合はお礼を言うこと。 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。) ◆回答者への注意 ・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。 【その他諸注意】 ・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
851 名前:nobodyさん mailto:sage [2012/02/22(水) 09:13:27.28 ID:???] >>850 当然。だからphpではコネプール不可。
852 名前:nobodyさん mailto:sage [2012/02/22(水) 09:15:30.80 ID:???] セッションの話はどうでもいいが、openpneが激重なのは同意。 かなりヤバイレベル。バージョン2の時代はマシだった。
853 名前:nobodyさん mailto:sage [2012/02/22(水) 09:17:48.11 ID:???] んでコネクションプーリングを実現するのにセッションが必要なんて そんなヴァカな話があるのか
854 名前:nobodyさん mailto:sage [2012/02/22(水) 09:24:03.91 ID:???] >>853 たしかに、唐突にコネクションプーリングの話は変だとは思った。 その逆も必要ないかと。 話の流れとは関係ないw
855 名前:nobodyさん mailto:sage [2012/02/22(水) 10:49:21.91 ID:???] >>852 可能です。 以上。 ↓次どうぞ
856 名前:nobodyさん [2012/02/22(水) 11:04:16.02 ID:yvJnpOho] >>783 CGIじゃなくてモジュールで動作させれば早いと書いてあった。 今のところはCGIで動作の仕様になってる。
857 名前:nobodyさん mailto:sage [2012/02/22(水) 11:17:37.00 ID:???] 頭大丈夫 ?
858 名前:nobodyさん mailto:sage [2012/02/22(水) 11:27:57.48 ID:???] もう手遅れかと
859 名前:nobodyさん mailto:sage [2012/02/22(水) 15:35:04.94 ID:???] コネクションプーリングは言語レベルのサポートは無い。
860 名前:nobodyさん mailto:sage [2012/02/22(水) 15:37:33.90 ID:???] Javaのようなオブジェクト指向言語では普通にオブジェクトをセッションへ格納する。
861 名前:nobodyさん mailto:sage [2012/02/22(水) 17:05:21.76 ID:???] いいえアプリケーションで管理するのが普通です
862 名前:nobodyさん mailto:sage [2012/02/22(水) 17:34:31.83 ID:???] setcookie();の挙動について悩んでいます a.phpで echo $_COOKIE['testvar1']; var_dump($_COOKIE); --- b.phpで setcookie('testvar1', 'bbb') //a.phpでbbbが出力される --- c.phpで setcookie('testvar1', 'ccc') //a.phpでcccが出力されない setcookie('testvar2', 'xxx') //a.phpでtestvar2自体が確認出来ない と、以上のようにしてる時、b.php → a.php の順番でアクセスするとechoもvar_dumpも正常な結果を返すんですが、その後 c.php → a.php の順番でアクセスするとechoはbbbを返し、var_dumpは追加したtestvar2自体を返さずtestvar1のみbbbとして返します ※c.php自体の中で echo $_COOKIE['testvar1'];すればcccを返します。また、c.phpのsetcookie();の返り値は1です ※また、b.phpの中でクッキーに入れる値を変更した場合はa.phpで変更後の値が確認出来ますが c.phpの中で値を変更しても上書きされません(c.phpの中での確認です) ドメインは全て同じで、原因が全くわかりません 何か考えられる対処法やチェック箇所あるでしょうか? 申し訳ないですが、どなたかご意見お願いします
863 名前:nobodyさん mailto:sage [2012/02/22(水) 19:09:47.20 ID:???] ブラウザを初期化する
864 名前:nobodyさん mailto:sage [2012/02/22(水) 19:28:43.76 ID:???] ありがとうございました!
865 名前:nobodyさん mailto:sage [2012/02/22(水) 19:35:22.61 ID:???] 最近は、ID出さなくても答えて貰える様になったのか。 これがゆとりか。
866 名前:nobodyさん mailto:sage [2012/02/22(水) 19:44:07.26 ID:???] ID指摘したかったら、回答しつつ、ID出すように促せよ。 IDID言うやつ、回答しないんだよな。
867 名前:nobodyさん mailto:sage [2012/02/22(水) 19:46:05.87 ID:???] >>1
868 名前:nobodyさん mailto:sage [2012/02/22(水) 19:46:44.23 ID:???] 昨日のチェリーボーイが居ますね
869 名前:862 [2012/02/22(水) 20:41:14.26 ID:culdIBNJ] すみません、今気づきましたID出してなかったです。すみませんでした その後もブラウザ再起動などしてやったんですが やはりc.phpでsetcookie();した値はc.php以外で確認出来ません なんなんでしょうか?
870 名前:nobodyさん mailto:sage [2012/02/22(水) 20:44:30.18 ID:???] >>869 問題が再現するコード出して
871 名前:nobodyさん mailto:sage [2012/02/22(水) 20:50:21.88 ID:???] >>869 たぶんpath
872 名前:nobodyさん mailto:sage [2012/02/22(水) 21:49:26.94 ID:???] HTTPのヘッダも確認してみれば
873 名前:nobodyさん mailto:sage [2012/02/22(水) 22:14:17.30 ID:???] fastcgiの動作確認なのですが php-cgi -b 127.0.0.1:9000 & として telnet 127.0.0.1 9000 とかでなんか叩いて動作チェックって出来るものでしょうか?
874 名前:862 [2012/02/22(水) 22:42:10.50 ID:culdIBNJ] >>870-872 その後、全てのsetcookie()を setcookie('time', date('Y-m-d H:i:s'), 0, '/', 'example.com');として 有効時間、パス、ドメインを指定したところ解決しました 質問して良かったです、助かりました 本当にありがとうございました
875 名前:nobodyさん mailto:sage [2012/02/22(水) 22:51:44.23 ID:???] いいってことよ
876 名前:nobodyさん mailto:sage [2012/02/22(水) 22:55:02.14 ID:???] ほい
877 名前:nobodyさん [2012/02/22(水) 23:24:44.58 ID:qmf6D6+H] get_included_files()に含まれてないファイルがrequire_onceで読み込まれないんですが、 原因としては何が考えられますか?
878 名前:nobodyさん mailto:sage [2012/02/23(木) 00:42:33.05 ID:???] >>877 パス間違ってるとかパーミッションがマズイとか。 ちょっと情報少なすぎ。 warningかnoticeも出てないの?
879 名前:553 mailto:sage [2012/02/23(木) 01:24:46.92 ID:???] 含まれていないんだから、読み込まれないのは問題無いだろw
880 名前:nobodyさん mailto:sage [2012/02/23(木) 02:36:14.38 ID:???] CakePHPは重いですね
881 名前:nobodyさん mailto:sage [2012/02/23(木) 02:52:55.61 ID:???] マシンパワーアップしようぜ i7っでサックサクにしようぜ
882 名前:nobodyさん mailto:sage [2012/02/23(木) 07:04:30.49 ID:???] >>879 ん?
883 名前:nobodyさん mailto:sage [2012/02/23(木) 11:23:14.79 ID:???] >>880 同意。WordPressも激重。
884 名前:nobodyさん mailto:sage [2012/02/23(木) 11:28:18.18 ID:???] スレチ
885 名前:nobodyさん mailto:sage [2012/02/23(木) 11:29:42.88 ID:???] チッ
886 名前:nobodyさん [2012/02/23(木) 11:35:04.06 ID:GMJguUp1] セッションを利用したログイン認証について質問です。 ログインページでは、ID(メアド)とパスワードの一致をもって、認証OKとしています。 その後、各ページでは何をもって認証OKとすれば良いのでしょうか? 入門書では、 1.ログイン時に、各ユーザー情報をセッションに保持し、各ページでは、それがあれば認証OKとする。 2.ログイン時に、暗号化した認証キーを作成してセッションに保持し、各ページで再度、認証キーを作成し、セッションの認証キーと照会する。 3.ログイン時に、セッションID(session_id())をセッションに保持し、各ページでは、そのページでのsession_id()と照会する。 などの方法を確認しました。個人的には、1の方法で足りると思うのですが、2や3の方法のほうがセキュリティーは高まるのでしょうか?
887 名前:nobodyさん mailto:sage [2012/02/23(木) 12:26:00.63 ID:???] ログインフラグだけで十分
888 名前:877 [2012/02/23(木) 13:56:23.63 ID:QQ9YytJp] >>878 パスは間違ってないようです パーミッションもちゃんと644になってます 直接関わるwarning・noticeは出ていないようです 情報が少なすぎるとのことなので問題の背景を説明します レンタルサーバでXOOPSを使いサイトを運用しています ある日すべてのページが500 Internal Server Errorになるようになりました "php_flag magic_quotes_gpc Off"とだけ書かれたXOOPS_ROOT_PATH/.htaccessがあったのでこれを削除したところ、 だいたいのページは元通り見られるようになりました しかし、管理メニューの互換モジュールで Fatal error: Class 'Legacy_ActionFrame' not found in XOOPS_ROOT_PATH/modules/legacy/admin/index.php とエラーが発生します 該当する.phpファイルではそのクラスを定義しているXOOPS_ROOT_PATH/modules/legacy/class/ActionFrame.class.phpをrequire_onceしているようなので、 このファイルにでたらめな文字列を書き足してSyntax errorを期待したのですが結果は変わりませんでした また、require_onceの下にvar_dump(get_included_files());を書き足しても、このファイルは含まれていませんでした 以上にもかかわらず、require_onceの戻り値は1( != FALSE)でした どうすればこのファイルはrequire_onceで読み込まれるようになるでしょうか? よろしくお願いします
889 名前:nobodyさん mailto:sage [2012/02/23(木) 14:11:01.61 ID:???] >>886 どんな入門書読んだのか知らんが、2と3は明らかにおかしなこと言ってるぞ。 もう一回しっかり読め。 セッションとクッキーは別物だということを頭に置いてな。
890 名前:nobodyさん [2012/02/23(木) 15:06:37.39 ID:pOv6kBFH] smp.tsv あああ\\t2012.01.23\\tききき\\n いいい\\t2012.01.23\\tくくく\\n ううう\\t2012.01.23\\tけけけ\\n えええ\\t2012.01.22\\tこここ\\n おおお\\t2012.01.22\\tさささ\\n かかか\\t2012.01.21\\tししし\\n 今日 = 3 昨日 = 2 一昨日 = 1 このような値を取り出したい場合はどのような手順になるのでしょうか? よろしくおねがいします。
891 名前:886 [2012/02/23(木) 15:11:52.08 ID:AL17q7mx] >>887 889 レスありがとうございます。 3.のコードです。関数化されてます。 これは間違いなのでしょうか? <?php ##### セッションの開始 function session_idset() { session_start(); $_SESSION['auth'] = session_id(); } ##### セッションのチェック function session_check() { session_start(); $rtn = TRUE; if($_SESSION['auth'] != session_id()) { $rtn = FALSE; } return $rtn; } ?>
892 名前:886 [2012/02/23(木) 15:23:33.04 ID:AL17q7mx] 2.のコードです。これもおかしいですか? //セッションの開始 $_SESSION['login_id'] = $_POST['login_id'] ; $_SESSION['auth'] = md5($salt . $_POST['login_id']) ; //セッションの確認 function auth() { global $salt; if (md5($salt . $_SESSION['login_id']) == $_SESSION['auth'] ) { return TRUE; } else { return FALSE; } }
893 名前:nobodyさん mailto:sage [2012/02/23(木) 16:00:34.17 ID:???] 1〜3は比較する情報が違うだけでやってること同じじゃん
894 名前:nobodyさん mailto:sage [2012/02/23(木) 16:26:52.69 ID:???] おかしいというか、扉に同じ鍵で開く鍵穴が2つあるみたいなもん。 やるんであれば、例えば、ランダム文字列を生成してクッキーに保存 その文字列をハッシュかけてセッションに保存 確認のときはクッキーのデータにハッシュかけたものとセッションのデータが一致するか ってやればセッションハイジャックに対して少しは強くなりそう。
895 名前:nobodyさん mailto:sage [2012/02/23(木) 16:36:47.58 ID:???] >>891 本当にその入門書がその通りに書いているなら今すぐ燃やして他の本から学ぶべきだな >>894 効果のないものを初心者に教えるな
896 名前:nobodyさん mailto:sage [2012/02/23(木) 16:40:30.49 ID:???] >>888 requireでは読み込めるってこと?
897 名前:894 mailto:sage [2012/02/23(木) 17:08:07.42 ID:???] >>895 何で効果がないのか教えてくれ
898 名前:nobodyさん mailto:sage [2012/02/23(木) 17:22:52.85 ID:???] >>897 もしかして、セッションファイルを一般ユーザが見られる場所に 保存するシステムを前提に、ローカルユーザからの攻撃対策の話をしてる? それだと、サーバの設定を見直した方がいいような……
899 名前:nobodyさん mailto:sage [2012/02/23(木) 17:29:45.68 ID:???] >>897 sidについて触れない時点でハイジャックには何の効果もないんじゃないの?それ
900 名前:nobodyさん [2012/02/23(木) 17:31:23.55 ID:sgcZLa3B] >>899 セッション固定攻撃に対しては効果があると思うけど。
901 名前:nobodyさん mailto:sage [2012/02/23(木) 17:38:14.99 ID:???] 何で効果があるのか教えてくれ
902 名前:nobodyさん mailto:sage [2012/02/23(木) 17:39:09.99 ID:???] >>890 一行読んで、\tで分けて、二つ目の要素の日付調べて、該当する日のカウント増やす
903 名前:886 [2012/02/23(木) 17:59:29.91 ID:+MEbH08X] 1.のコードです。遅れてすみません。 やはり、このシンプルなコードが妥当なのでしょうか? //$rowにDB取得データ代入済み // ログイン情報を記録 $_SESSION["login"] = array("user_id" => $row["user_id"]," login_time" => time()) // ログインしているかどうか調べる関数 function is_logined() { return isset($_SESSION["login"]); }
904 名前:nobodyさん mailto:sage [2012/02/23(木) 18:09:26.05 ID:???] >>890 fgetcsv array_count_values
905 名前:894 mailto:sage [2012/02/23(木) 18:21:05.98 ID:???] >>898 仮にセッションIDが漏れた場合とか想定してるんだけど。 セッションIDだけじゃなくて、発行時のクライアントのチェックとして有効じゃない? 886の対案として出してるだけだから、ベストの方法とは思わんけど。 >>899 論点がぜんぜん違う
906 名前:nobodyさん [2012/02/23(木) 18:24:58.57 ID:pOv6kBFH] $lines = file($tsv); for($i = 0; $i < count($lines); $i++){ list(,$day,,)=explode("\t",$lines[$i]); $today = date("Y.m.d"); $match_tday = preg_match("/$today/",$day); } 今一歩前へ進めません。次のヒントお願いします。
907 名前:nobodyさん mailto:sage [2012/02/23(木) 18:41:27.89 ID:???] PHPSESSID決め打ちでそれだけが盗まれたら〜ってこと?
908 名前:nobodyさん mailto:sage [2012/02/23(木) 18:42:59.47 ID:???] >>900 session_regenerate_id(true)で済む話だろJK…
909 名前:nobodyさん mailto:sage [2012/02/23(木) 18:49:26.85 ID:???] >>906 $lines = file($tsv); for($i = 0; $i < count($lines); $i++){ list(,$days[],,)=str_getcsv($lines[$i],"\t"); } print_r(array_count_values($days));
910 名前:877 [2012/02/23(木) 20:38:51.67 ID:QQ9YytJp] >>896 試してみました requireに書き換えると、多少崩れたページが表示され、 Fatal errorではなくなりました
911 名前:nobodyさん mailto:sega [2012/02/23(木) 20:40:13.32 ID:???] session_registerって使っちゃまずいらしいけど じゃあ代わりに何を使えばいいの?
912 名前:nobodyさん mailto:sage [2012/02/23(木) 20:54:09.81 ID:???] >>911 非推奨なのを知ってるということは マニュアルを途中まで読んだな? もっと下まで読めば書いてあるだろw
913 名前:nobodyさん mailto:sage [2012/02/23(木) 20:57:03.04 ID:???] 最近は、ID出さなくても答えて貰える様になったのか。 これがゆとりか。
914 名前:nobodyさん mailto:sage [2012/02/23(木) 21:00:17.68 ID:???] 回答しない自治気取り君お疲れ様です。 俺、アンタみたいな人嫌いですw
915 名前:nobodyさん mailto:sage [2012/02/23(木) 21:10:37.40 ID:???] お前が言うな
916 名前:nobodyさん [2012/02/23(木) 21:44:28.17 ID:P+2F5uLF] 正規表現で既に取得しているものは取らない方法はありますか? <?php $data= ABCDABCD; $match='/A|B/'; preg_match_all($match, $data, $matches[0]); print_r($matches[0]); ?> 結果 Array ( [0] => Array ( [0] => A [1] => B [2] => A [3] => B ) ) これを、AとBをそれぞれ一つだけ取得したいです。 1回取得したものと同一のものは取得しない方法はありませんか? preg_matchを2回使うと一応できるのですが、それだと 結果 Array ( [0] => A ) Array ( [0] => B ) このようにそれぞれ別になってしまいます。 何かやり方はないでしょうか?
917 名前:nobodyさん mailto:sage [2012/02/23(木) 22:13:07.95 ID:???] print_r(array_keys(array_flip($matches[0][0]))); print_r(array_unique($matches[0][0]));
918 名前:nobodyさん mailto:sage [2012/02/23(木) 22:28:16.08 ID:???] >>913 主気取り乙。ずっとこんなところにばかりいないで他いくといいとおもう
919 名前:nobodyさん mailto:sage [2012/02/23(木) 22:44:37.14 ID:???] 自己紹介おつ
920 名前:nobodyさん mailto:sage [2012/02/23(木) 22:48:53.56 ID:???] >>866 です。レスありがとうございました。 >>894 さんの「おかしいというか、扉に同じ鍵で開く鍵穴が2つあるみたいなもん」 というご指摘で、2.3.のおかしな点がよく理解できました。 ランダム文字列クッキーを認証に利用する方法は、自分も考えたのですが、 XSSでJSによりクッキーを盗まれる場合には、セッションクッキーとともに そのランダムクッキーも盗まれるので効果が無いと思いました。 また、セッション固定化攻撃には、>>908 さんのいうsession_regenerate_id(true)が 適切だと考えます。それとともに、php.ini、.htaccessでセッション付きリンクを 使用不可にするのがよいのかなと。
921 名前:nobodyさん mailto:sage [2012/02/23(木) 22:51:08.67 ID:???] >>920 スレのルールは守ろうな
922 名前:886 [2012/02/23(木) 23:14:53.15 ID:NC9JkONA] >>921 失礼しました。>>920 は886です。
923 名前:nobodyさん [2012/02/23(木) 23:58:21.36 ID:P+2F5uLF] >>917 ありがとうございます、できました。
924 名前:nobodyさん mailto:sage [2012/02/24(金) 00:05:55.32 ID:???] ルール厨うぜー
925 名前:nobodyさん mailto:sage [2012/02/24(金) 00:12:55.29 ID:???] >>924 スレのルールは守ろうな
926 名前:nobodyさん mailto:sage [2012/02/24(金) 00:25:39.45 ID:???] おまえがいうな
927 名前:nobodyさん mailto:sage [2012/02/24(金) 07:08:08.38 ID:???] 守ってるじゃん
928 名前:nobodyさん mailto:sage [2012/02/24(金) 08:26:18.43 ID:???] >>894 それ意味ないじゃん ハッシュ化したところでクライアントの情報(そのハッシュ化したランダムな文字列)が盗まれれば意味がない あとその処理自体にセッションハイジャックに強くなる要素が見当たらない サーバ側でセッションハイジャックされないような対策を考える場合XSSだけに気をつければいい 結局ハイジャックされるかどうかはクライアント側の行動次第 リンクにセッション情報を含めないほうがいいのはクライアント側の行動次第では漏れる可能性が高いから クライアント側がそれなりの知識を持ってるならリンクにセッション情報を含めても問題ない
929 名前:nobodyさん mailto:sage [2012/02/24(金) 08:36:25.74 ID:???] >>873 自己解決しますた。 telnetじゃムリでした。 <? phpinfo(); ?>がスルーされたのがそもそもの発端だったんだけど、5.3.8と5.2.13ではshort_open_tagが違うんですね。 pukiwikiとかwordpressって律儀に<?php 〜 ?>ってやってるのかな?
930 名前:894 mailto:sage [2012/02/24(金) 09:27:38.22 ID:???] >>928 前半の >>ハッシュ化したところでクライアントの情報(そのハッシュ化したランダムな文字列)が盗まれれば意味がない に関しては同意だけど、セッションIDとクライアントの情報を合わせて 盗まれなければ意味があるじゃん。 セッションIDだけ盗まれるってケースは意外とあると思うぞ。 >>920 の言うようにクッキーまるごと盗まれたらしょうがないけど。 後半は同意できない。
931 名前:nobodyさん mailto:sage [2012/02/24(金) 09:38:18.08 ID:???] 実質的にセッションIDが漏れるってことはクッキーが漏れることと同義だろ どこの実装もほぼ100%クッキーでやってるんだから
932 名前:nobodyさん [2012/02/24(金) 10:29:02.94 ID:BAbDqRA5] eclipse3.7のphpで開発しているのですが、CVSからファイルを持ってきた時に文字化けをしてしまいます。 その為、使用するファイル(Sfit-JIS)を一つずつ選択し、プロパティーから文字化けしないUTF-8に変換しているのですが、 一括ですべてUTF-8にする方法はあるのでしょうか。 使用するフォルダ選択⇒プロパティー⇒リソース⇒テキスト・ファイルのエンコードから修正しても だめでした。
933 名前:nobodyさん mailto:sage [2012/02/24(金) 11:10:06.07 ID:???] >>930 それ同じこと思った。 なんでクッキーとセッションが別腹的な考え方なんだろ。 素人の俺にはわからん。 TLSかけるなりしてクライアントとPCの通信の盗聴防がなきゃ意味ない気が。
934 名前:nobodyさん mailto:sage [2012/02/24(金) 11:18:03.05 ID:???] 最新式の複雑な鍵を使ったとしても、 鍵盗まれたら困るってことの対策にはならんもんね。
935 名前:877 [2012/02/24(金) 12:51:09.28 ID:i01HfJfE] >>877 ,888,910です 解決策ありませんか?
936 名前:nobodyさん mailto:sage [2012/02/24(金) 14:00:59.55 ID:???] >>935 requireで読めたんならそれでいいだろ 2回以上読み込むファイルをrequire_onceで読み込むのがおかしい
937 名前:nobodyさん mailto:sage [2012/02/24(金) 17:03:51.32 ID:???] >>932 >使用するフォルダ選択⇒プロパティー⇒リソース⇒テキスト・ファイルのエンコードから修正しても だめでした。 それエクリプスの設定をUTFにしてるだけだし… PHPでそのPHPファイルをfile_get_contentsで読み込んでエンコード変えて同じファイルに書き出すくらいじゃね?
938 名前:nobodyさん mailto:sage [2012/02/24(金) 18:34:59.75 ID:???] ほ
939 名前:nobodyさん mailto:sage [2012/02/24(金) 20:44:15.85 ID:???] >>929 毎回<?php って書いてるよ。 <?= とか便利かもって思ったこともあったけど、それが便利だと思える場面に遭遇しなくなった
940 名前:nobodyさん mailto:sage [2012/02/24(金) 20:51:14.32 ID:???] コードアシストで解決
941 名前:nobodyさん mailto:sage [2012/02/24(金) 22:22:57.58 ID:???] >>932 nkf使うとか。
942 名前:nobodyさん mailto:sage [2012/02/24(金) 23:20:35.88 ID:???] $file_name="p/1.html"となってる時、 p/の部分だけを取り除いて、 $file_name2="1.html"とすることはphpでは可能ですか?
943 名前:nobodyさん [2012/02/24(金) 23:23:49.74 ID:gMrEIIb2] $file_name="p/1.html"となってる時、 p/の部分だけを取り除いて、 $file_name2="1.html"とすることはphpでは可能ですか? すいません、上げてました。
944 名前:nobodyさん mailto:sage [2012/02/24(金) 23:34:42.08 ID:???] >>943 basename()がある
945 名前:nobodyさん mailto:sage [2012/02/24(金) 23:34:43.65 ID:???] 実際はディレクトリをのぞいてファイル名だけにしたいとかなんだろうけど そんな質問の仕方だと substrで三文字目以降を切り出せとか p/を空文字に置き換えろとかいう答えが返ってくるぞ
946 名前:877 [2012/02/24(金) 23:48:54.24 ID:i01HfJfE] >>936 requireで読むとFatal errorはなくなりますが、ページの表示が正常ではありません 2回以上読まれるかどうかは未検証ですが、 require_onceの前後のどちらでも、get_included_files()に該当するファイルが含まれないのは問題だと思います
947 名前:nobodyさん [2012/02/24(金) 23:51:09.90 ID:kLSGsgF4] phpから現在動いているmtaが何か取得する方法ってありますか? sendmailか否かさえ分かればいいのですが。
948 名前:nobodyさん [2012/02/24(金) 23:54:48.93 ID:gMrEIIb2] >>944 ありがとうございました。 >>945 そうです、ディレクトリ名だけとっぱらいたかったんです。 なんか、適当に作ってたら、mysqlに入れた値が"p/1234.html" となっていたんです。これはこれで表示されないデータなら 扱いやすいのですが、表示されるデータにディレクトリ名って 欲しいのか?という疑問にぶつかりました。basename()って便利な 関数ですね。
949 名前:nobodyさん mailto:sage [2012/02/25(土) 00:21:03.84 ID:???] >>946 requireで読めて、require_onceで読めないファイルがあるってことだよね。 それがわかっているなら後は何が原因なのか、どんどんコードを削っていけばたどり着くと思うんだけど
950 名前:nobodyさん mailto:sage [2012/02/25(土) 00:55:13.78 ID:???] >>947 Linuxなら、exec関数で "ps ax | grep sendmail" を実行して、その出力をチェックする
951 名前:nobodyさん [2012/02/25(土) 01:14:42.48 ID:a/GXX7hd] メールを連続で送信する場合、マニュアルには、 >mail() 関数は、大量のメールをループ内で送信するには 向いていないことに注意しましょう。 >この関数は 1 通のメールを送信するたびに SMTP ソケットをいったん閉じて開きなおします。これは非効率的です。 >大量のメールを送信する場合は、 ≫ PEAR::Mail および ≫ PEAR::Mail_Queue パッケージを参照ください。 と記述してありますが、PEARを使いたくない場合、 ソケット関数で自分でSMTP処理を書くしか無いですよね?
952 名前:nobodyさん mailto:sage [2012/02/25(土) 02:43:21.75 ID:???] 実現できる方法でどうぞ。 「しか無い」ってのはよほどのことが無い限り無いと思ったほうが。
953 名前:nobodyさん mailto:sage [2012/02/25(土) 02:47:59.67 ID:???] PEAR::Mail および PEAR::Mail_Queue で必要な箇所を参考・コピペする。
954 名前:nobodyさん mailto:sage [2012/02/25(土) 18:02:10.27 ID:???] >>912 session_register()使う代わりに $_SESSION に値をぶっこむのね ありがとう!
955 名前:nobodyさん [2012/02/25(土) 18:56:47.63 ID:1lZdYX8R] たとえばですが、 wire.jpというサイトがあります。 内容的には好きなんですが、相当重いサイトです。 こういったPHPで作られたサイトのパフォーマンスを 上げるためにはどうしたらよろしいでしょうか?
956 名前:nobodyさん mailto:sage [2012/02/25(土) 19:08:41.43 ID:???] キャッシュでも作れば?
957 名前:nobodyさん [2012/02/25(土) 19:09:58.04 ID:r6BFdbus] RSSからforeachで値を取得したのですが、それをループの外で一つの変数として扱いたいのですが、どうしたらいいでしょうか? <?php $array=array(1,2,3,4,5,); foreach ($array as $value) { $a=$value; } echo $a; ?> 例えばこのようにすると、当たり前ですが結果はループで上書きされて5と表示されます。 foreachで取得したものを一つの変数に入れることは出来ませんか?
958 名前:nobodyさん mailto:sage [2012/02/25(土) 19:25:22.22 ID:???] >>957 よく分からんけど仮に3つ目の値が取りたいなら echo $array[2];
959 名前:nobodyさん mailto:sage [2012/02/25(土) 19:53:18.83 ID:???] >>957 print_r($array); して表示結果を見てみなはれ その上で$array[x] ←xのところに対応した数字をいれる。 で出てくる。
960 名前:nobodyさん mailto:sage [2012/02/25(土) 20:48:35.56 ID:???] $a=$value;を $a[] = $value;
961 名前:nobodyさん [2012/02/25(土) 21:26:32.82 ID:r6BFdbus] >>960 ありがとうございます。
962 名前:nobodyさん mailto:sage [2012/02/26(日) 00:47:29.55 ID:???] いいってことよ
963 名前:nobodyさん mailto:sage [2012/02/26(日) 00:48:27.77 ID:???] ほい
964 名前:nobodyさん [2012/02/26(日) 00:52:26.79 ID:nCX4lbdW] >>956 キャッシュとはどのようなキャッシュですか?
965 名前:nobodyさん [2012/02/26(日) 01:35:13.43 ID:nCX4lbdW] キャッシュとは言語レベルのサポートですか? wire.jpはWordPressみたいですから WP Super Cacheプラグインみたいなプログラムレベルの キャッシュのことを意味していますか?
966 名前:nobodyさん mailto:sage [2012/02/26(日) 01:42:08.72 ID:???] ( >д<)、;'.・ キャッシュン
967 名前:nobodyさん [2012/02/26(日) 01:47:59.96 ID:nCX4lbdW] >>956 例としてあげてwired.jpはW3 Total Cacheが入っているようです。 それでも遅い場合はどうしたらよろしいのでしょうか?
968 名前:nobodyさん mailto:sage [2012/02/26(日) 01:48:34.31 ID:???] >>966 bless you
969 名前:nobodyさん mailto:sage [2012/02/26(日) 01:53:36.51 ID:???] Thank you!
970 名前:nobodyさん mailto:sage [2012/02/26(日) 01:58:30.12 ID:???] phpでデータベースを扱うには、何かと方法がありますが エクセルのシートで外部参照するみたいに、この列はこっちの データベースから引っ張って、この列はこっちから というように複数のデータベースから情報を引っ張って 統合して表示、または登録変更をするためには、どんな 方法を使うのが最も適しているのでしょうか?
971 名前:nobodyさん mailto:sage [2012/02/26(日) 02:07:02.73 ID:???] >>967 オーバークロックしかないな
972 名前:nobodyさん [2012/02/26(日) 02:16:44.23 ID:oisclph1] 質問させてください。 自動返信メールの内容に値を持たせたいんですが 値の入っていないものは表示させないようにしたいです。 <?php $MESSAGE = " 注文がありました。 商品 個数 [[りんご]] [[1]] [[みかん]] [[0]] [[ぶどう]] [[3]] ";?> 実行すると りんご1個 ーー(みかんの注文が0なので表示されず空白だけできてしまう)ーー ぶどう3個 というメールが来てしまうで、みかんの部分を上に詰めさせたいです。 メールが来る仕組みなどは人がしたものなのでよく分かってません。 よろしくお願いします。
973 名前:nobodyさん mailto:sage [2012/02/26(日) 03:04:07.86 ID:???] >>972 $cart=array("りんご"=>"1","みかん"=>"0","ぶどう"=>"3") $MESSAGE = "注文がありました。\n\n商品 個数\n" foreach($cart as $key => $val){ if ($val>0){ //$valが0以下の時は処理しない $MESSAGE.="[[$key]] [[$val]] \n" } } 備考 POST情報はクライアント側で詐称できるので 値段を表示させる場合はPOSTさせないでDBに取りに行ったほうがいいと思うよ
974 名前:nobodyさん [2012/02/26(日) 03:34:02.05 ID:oyzRHeH9] 俺は自分でも結構オブジェクト指向イケてるんじゃないかと思ってたんだが、 今日クラスを作成していたときにクラス名に悩んで、 候補のものをググってたら、C#の同名のクラスが出てきたんだ。 どんなメソッドがあるのかな?とチラっとみてみたら、 俺がクラスに含める予定だった処理が別クラスで処理されていた。 徹底的に細かくオブジェクトを分けていることに俺はショックを受けて絶望した。 これが本当のオブジェクト指向なのかと。 自信が一気になくなった俺はこれからやっていけるでしょうか?
975 名前:nobodyさん mailto:sage [2012/02/26(日) 04:34:33.44 ID:???] 細かく分けることがオブジェクト指向・・・?
976 名前:sage mailto:sage [2012/02/26(日) 09:48:27.16 ID:???] >>974 そもそも論として phpでオブジェクト指向実装は後付けの中途半端だし、 最適化されていないのでパフォーマンス悪いよ。 それだったらJava、C#みたいな強制的オブジェクト指向言語で 勉強して方がいい。他の言語で役に立つから。
977 名前:sage mailto:sage [2012/02/26(日) 09:49:49.71 ID:???] >>975 PHPerから見ると、 オブジェクト指向言語のクラス設計はすべてが細かく見えるかと。
978 名前:nobodyさん mailto:sage [2012/02/26(日) 10:03:42.64 ID:???] 他の言語って、これからいくつ覚えるつもりだよ 一生勉強ってかw
979 名前:sage mailto:sage [2012/02/26(日) 10:15:37.18 ID:???] >>978 これからもphpオンリー? スマホアプリとか大丈夫? サーバーサイドオンリーの人だとしても、 phpだけだったら守備範囲が狭くならないかい? たとえばfacebookみたいに phpで作りました。 ↓ でもユーザー増えて負荷に耐えられなくなりました。 ↓ 基幹をC++やJavaに切り替えました。 というケースは無いの?
980 名前:nobodyさん mailto:sage [2012/02/26(日) 10:22:20.60 ID:???] >>977 そこが本質じゃないのにね
981 名前:nobodyさん mailto:sage [2012/02/26(日) 10:29:56.54 ID:???] 一生勉強って当たり前だろ
982 名前:nobodyさん mailto:sage [2012/02/26(日) 10:34:22.17 ID:???] いや本質だろ。 継承や再利用を考えると重要。 それより次スレ
983 名前:sage mailto:sage [2012/02/26(日) 10:38:06.83 ID:???] そもそも論として、 細かく設計するとPHPの場合すぐパフォーマンスが悪くなる。 いずれにしてもPHPのオブジェクト指向は中途半端で使いにくい。
984 名前:nobodyさん mailto:sage [2012/02/26(日) 10:39:22.25 ID:???] 例えばチャットクラスで 書き込みを行うwriteというメソッドがあったとする PHPerの場合 ここに渡す引数はString型の$messageである C#erの場合 ここに渡す引数は別クラスで作成したメッセージオブジェクトである
985 名前:nobodyさん [2012/02/26(日) 11:12:49.13 ID:yp5CCX+k] メールアドレスの「@」より前を取得したいんですけど、自分では $tmp = explode('@', $email); $name = $tmp[0]; という書き方しか思い浮かびません。 もっと簡単にできる方法があれば教えて頂きたいです。
986 名前:nobodyさん mailto:sage [2012/02/26(日) 11:18:26.38 ID:???] echo substr($email, 0, strpos($email, "@")); 複数行になるのが簡単ではないと考えてるなら考えを改めるべし
987 名前:nobodyさん mailto:sage [2012/02/26(日) 11:28:57.23 ID:???] 四年前の爺さんの背広からメガビックボーイが出てきたんだが 一生現役ってことを考えると一生勉強くらい普通だと思った。
988 名前:nobodyさん mailto:sage [2012/02/26(日) 11:31:05.44 ID:???] preg_replace("/(?=@).*/","",$mail); とか explodeでいいと思うけどな
989 名前:nobodyさん mailto:sage [2012/02/26(日) 11:34:48.98 ID:???] replaceだと元データのメアド使えなくなるやん
990 名前:sage mailto:sage [2012/02/26(日) 11:35:02.59 ID:???] 勉強したくないなら なぜ潰しが効かない、汎用性が低いphpなのか不思議。 汎用性が高い言語選べばよかったのに。
991 名前:nobodyさん mailto:sage [2012/02/26(日) 11:39:39.13 ID:???] どの言語でもできることとできないことがある 1つの言語習得すれば金輪際勉強せずに済む言語なんて皆無
992 名前:nobodyさん mailto:sage [2012/02/26(日) 11:46:01.70 ID:???] >>980 >>1
993 名前:nobodyさん mailto:sage [2012/02/26(日) 11:49:03.94 ID:???] しょうがないから建ててくるか
994 名前:nobodyさん mailto:sage [2012/02/26(日) 11:52:02.39 ID:???] kohada.2ch.net/test/read.cgi/php/1330224598/
995 名前:nobodyさん [2012/02/26(日) 11:56:49.85 ID:yp5CCX+k] >>986 ありがとうございます。助かりました。 複数行というより、わざわざ配列にするのが気持ち悪くて…。
996 名前:sage mailto:sage [2012/02/26(日) 12:01:13.12 ID:???] >>974 phpのオブジェクト指向はなんちゃってレベルだから。 他の言語ではphpの経験は生かせないよ。
997 名前:nobodyさん mailto:sage [2012/02/26(日) 12:03:36.76 ID:???] そいういうこと書いてるようじゃ 大してオブジェクト指向の考えというのを理解できてないな
998 名前:nobodyさん mailto:sage [2012/02/26(日) 12:08:49.02 ID:???] >>996 >phpのオブジェクト指向 どれだけあほなこと言ってるかわかるか?もっと勉強しろ。
999 名前:sage mailto:sage [2012/02/26(日) 12:24:07.98 ID:???] phpのオブジェクト指向機能の実装
1000 名前:sage mailto:sage [2012/02/26(日) 12:25:05.67 ID:???] PHPer、ダメポ。
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。