【PHP】下らねぇ質問はID出して書き込みやがれ 77
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/12/08(月) 01:27:39ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 76
http://pc11.2ch.net/test/read.cgi/php/1226517332/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0183nobodyさん
2008/12/12(金) 02:00:06ID:8m0qh2cG一時間当たりのどれくらい処理できるかを考えるとき、
3600÷0.07=51,429PV処理できると考えて、ほぼ間違いないでしょうか?
どれだけの処理能力があるかが分かると、どれくらいの負荷の時に、
サーバーを増やす必要があるかどうか分かるので、参考になります。
アドバイス下さい。
0184nobodyさん
2008/12/12(金) 02:03:32ID:???0186nobodyさん
2008/12/12(金) 02:11:48ID:8m0qh2cG色々情報を書きすぎてすみません。
知りたいことは、一時間あたり「待ち時間なく」どれくらい処理できるか、ということでした。
そう考えたときに、51,429PVまでなら、待ち時間なく0.07秒で処理できるという認識で正しかったでしょうか?
0187nobodyさん
2008/12/12(金) 02:27:34ID:???0188nobodyさん
2008/12/12(金) 02:29:55ID:???PVとかあんまり参考にするものじゃない
0189nobodyさん
2008/12/12(金) 02:31:04ID:8m0qh2cGはい。0.07秒は、リクエストを最初に受け取った直後から、
リクエストを返却してスクリプトを終了する直前までの時間です。
5万回リクエストテストをして得た数値です。
DB処理も絡むシステムなので、待ち時間が発生すると、DBのデータ不整合が発生する場合があるので、
できる限り待ち時間を発生させないのが課題です。
0190nobodyさん
2008/12/12(金) 02:34:19ID:???0191nobodyさん
2008/12/12(金) 02:34:21ID:???いやいやいや・・・
トランザクション処理も知らないのか?
0192nobodyさん
2008/12/12(金) 02:41:15ID:???データーの不整合が発生しないように
組むのが普通だよね?
0193nobodyさん
2008/12/12(金) 02:45:54ID:8m0qh2cGトランザクションは、結構多いです。ですから、それで困っています。
そうなると、たまたま同じデータに更新処理しようとしたときに、微妙なタイミングでデータが破損することが分かっています。
これが原因だということを突き止めるのに結構時間も掛かりました。
以上の経緯から、システムを安全に運用するために、待ち時間を発生させる前にサーバー増設のタイミングを計ろうと考えているところです。
そのためのデータとして、一時間当たりの処理能力を測ることはできないでしょうか?
0194nobodyさん
2008/12/12(金) 02:47:29ID:???0195nobodyさん
2008/12/12(金) 03:00:16ID:???0197nobodyさん
2008/12/12(金) 03:12:52ID:???排他処理をすればいいでしょ。
処理能力を上げて待ち時間を無くして、DBを守るなんて無理。
昔、いい加減なCGIで作られた、超過疎のBBSでもログを飛ば
すことがしょっちゅうあった。
っていうか、何釣り?
0198nobodyさん
2008/12/12(金) 03:19:22ID:???努力する方向を間違ってる人っているよな。
0199nobodyさん
2008/12/12(金) 03:28:03ID:???0200nobodyさん
2008/12/12(金) 03:31:05ID:???0201nobodyさん
2008/12/12(金) 03:42:21ID:8m0qh2cG確かに、>>200さんが仰られているとおり完全に同時にアクセスされたら終わりです。
ただ、それは仕様として諦めるとしても、できるだけそのような状況を回避することはできないでしょうか?
たとえば、現実の話に喩えますと、店のレジが一個しかなくてレジ係の人が1時間で100人しか人をさばけないとします。
その時、一時間平均100人を超える人が並ぶことが予め想定されるならば、レジを増やすなりの必要があるのではと考えています。
単純に、一時間200人の客がくれば、一時間で100人の待ちが発生し、10時間後には1000人の待ちが発生します。
もし、この店が24時間営業ならば、この待ちは永遠に解消されません。
サーバーの話に戻しますと、永遠に解消されない待ちは、いずれシステムダウンに繋がるのではと思っています。
どのような動作になるのかは、知識不足で分かりませんが、そのような状況を回避するために一時間当たりの処理能力を測る手立てというものはありませんでしょうか?
長文ですみません。
0202nobodyさん
2008/12/12(金) 03:45:58ID:???ファイルロックとかしてないの?
0204nobodyさん
2008/12/12(金) 03:49:15ID:???有料にすればいいのに。
0205nobodyさん
2008/12/12(金) 03:57:29ID:8m0qh2cGphpの話というよりweb全体の話ということで、スレ違いなのでしょうか?
ちなみに、話題にあがっているロックや客の数を減らすというのは、
根本的な解決には全然ならないと思うのですが。
上のたとえで言えば、レジが処理できないので、客を外で待たせる、客を追い出すって話ですよね。
それはちょっと方法論として違うかと思います。
0206nobodyさん
2008/12/12(金) 04:21:32ID:???0207nobodyさん
2008/12/12(金) 05:49:01ID:???話がかみ合わないんじゃなくて、わかった上でおかしいんじゃない?
ってみんな言ってるんだと思うけど・・・
さてと、その変なところをおいといたとして。
>>189
> はい。0.07秒は、リクエストを最初に受け取った直後から、
> リクエストを返却してスクリプトを終了する直前までの時間です。
> 5万回リクエストテストをして得た数値です。
その5万回を入れた単位時間は?
1リクエストで付随的に発生する関連リクエストはないの?
で、同時アクセスの偏りはどの程度と見積もってるの?
で、業務のクリティカル度は?
とまぁ、いろいろ考えてからベンチを取らんとねぇ。
低負荷状態の処理時間なんて飾りです。
同時アクセスが継続した場合にどうなるかをチェック汁。
というわけで、
>>183
> 3600÷0.07=51,429PV処理できると考えて、ほぼ間違いないでしょうか?
ほぼ、間違いです。
リクエストが均一に来るわけないし、
ちょっと重くなるとF5アタック来るし、
0208nobodyさん
2008/12/12(金) 06:13:41ID:???掲示板で解決しようってのがそもそもの間違い
0209nobodyさん
2008/12/12(金) 07:41:10ID:???裏でDBを動かして、PHPでアンケート画面を作るとします。
アンケートの項目が多くて1つの画面で収まらない場合があるけど、
一覧性というか視認性を下げたくないからスクロールは使わないと
します。
当然アンケートが複数のページにまたがる形になりますが、こういう
場合はcookieで、前のページの情報を持つのが普通なのでしょうか?
あまり調べては居ませんが、PHPでテンポラリファイルを作成、或いは
cookieでアンケートのデータを保持するなどして、アンケートのいずれ
かのページにある登録ボタンが押されたらDBにデータを書き込む、
別のページに移動しようとしたら、キャンセルするかどうかの確認
ページを出す、ようにすることが可能でしょうか?
参考になるサンプルページがあるとよいのですが。
javaでクライアント側を作り込んだほうがよいのかもしれません。
0211209
2008/12/12(金) 08:09:31ID:???せいぜい数クライアントしか繋がないので、応答速度重視ではありません。
開発速度は必要です。
テキストを結構含むことになるので、クッキーだけでは追いつかない
かもしれず、PHPでテンポラリファイルを使うことになるのかなー、と
思ったのです。
0212nobodyさん
2008/12/12(金) 09:25:43ID:???テンポラリファイルでもできるんじゃね?
つうか、スレチかもよ。
つ ttp://pc11.2ch.net/test/read.cgi/php/1227303362/l50
0213nobodyさん
2008/12/12(金) 14:32:13ID:3H8K5DfDfopenでファイルを開いてwhileで回しながら
fgetsで1行ずつ取得できます。
それで質問ですが、指定行を読み込む事って出来ないのでしょうか?
全ファイルを出力するとファイルサイズによっては処理が遅くなるので
特定の文字列が一致する行だけ取得できればと思っています。
0216nobodyさん
2008/12/12(金) 20:33:31ID:???PHP一番給料安いwww
0218nobodyさん
2008/12/12(金) 21:09:44ID:N5GIYx97教科書を読んでたら、
「ファイルを読み込む処理をするときには、
is-readable関数を使って、
そのファイルが本当に存在するかどうか、
あらかじめ確かめないといけません。
この処理を忘れたときには、noticeが出ます」
って書いてあるんだけど、自分で書いたプログラムで、
テキストファイルをf_openで読み込む部分があるんだけど、
そこで別に、is_readableとかで、ファイルの存在とか、確かめなかったんだけど、
それで別にNoticeとか出なかったんだけど、これでいいのかな?
それとも、通常実行時には何もエラーが出なくて、
ファイルが存在しなかったときにだけ、エラーが出るって意味なの?
0220nobodyさん
2008/12/12(金) 21:24:04ID:N5GIYx97requireとかincludeとかの関連の質問です。
読み込むファイルの拡張子を.phpにしていると、
そのファイル単体を実行されてしまうかもしれないので、
拡張子を.incとかにしておくように、と
教科書に書いてあるのですが、そうなのですか?
0222nobodyさん
2008/12/12(金) 22:14:09ID:cYuXCaJp$this-> abc =
このときの -> はどういう意味でしょうか?
連想配列ではないと思うのですが
0223nobodyさん
2008/12/12(金) 22:15:41ID:cYuXCaJpコードを見ていると、
$this-> abc は $abc と同じではないかと考えているのですが
まちがいでしょうか。
0224nobodyさん
2008/12/12(金) 22:16:10ID:???http://jp2.php.net/manual/ja/language.oop5.basic.php
0225nobodyさん
2008/12/12(金) 22:43:09ID:N5GIYx97htmlentities と htmlspecialchars の違いだけど、
htmlentitiesはバグがあって、シフトJISの半角かなを入れると、
本来変換すべきでない文字なのに変換してしまって
プログラムが破壊される、という。
よってhtmlspecialcharsを使うべきである、
この理解であってる?
0226nobodyさん
2008/12/12(金) 22:56:48ID:cYuXCaJpむずかしくてわかりません。
もっとわかりやすいのはないでしょうか。
0227nobodyさん
2008/12/12(金) 23:00:38ID:N5GIYx97「PHP 5以降、デフォルトで値はリファレンス渡しとなります。」
と書いてあるのだが、自分で実際に実験してみたら、
値渡しになっているのだが、これってどっちが正しいの?
0228nobodyさん
2008/12/12(金) 23:02:18ID:N5GIYx97デリヘル「おまんこクラブ」って店があったとして、
そこに登録している女の子が「みよちゃん」「あすかちゃん」「かなえちゃん」
だったとして、
「みよちゃん」を指名するのが、
$おまんこクラブ-> みよちゃん
0229nobodyさん
2008/12/12(金) 23:04:54ID:N5GIYx97ごめん、意味がわかった。
本来書くべき引数を、省略した場合に
どちらが使われるか、という意味なのね。
0230nobodyさん
2008/12/12(金) 23:14:45ID:???べつにis_readableしなくてもfopenにエラー制御付けてdieすればいいじゃない
.incにするというより外部からアクセスできなくする方がいい。
読み込みさせたくないファイルをexample.inc.phpとかにして.htaccessとかで
<FilesMatch "\.inc\.php$">
Order allow,deny
Deny from all
</FilesMatch>
って書いてあげればおk
つーか教科書ってなによ
0231nobodyさん
2008/12/12(金) 23:17:42ID:N5GIYx97「incフォルダ」というのを作って、
そこにincを全部押し込めて、そんで
そのフォルダのパーミッションごと、
ユーザーからは000にすればいいかな。
そんで、オーナーからのみ利用可能と。
0232nobodyさん
2008/12/12(金) 23:30:45ID:???0233nobodyさん
2008/12/13(土) 01:00:18ID:6CbaLDLd「メタタグで、ページのコードを指定しないと
セキュリティ的に危険」
という記述を見つけたんだけど、そうなの?
0234nobodyさん
2008/12/13(土) 01:04:08ID:6CbaLDLdhtmlspecialchars で、
第三引数に、
mb_internal_encodingを指定するやり方と、
utf-8 を指定するやり方と、
2種類あるようなんだが、
これの違いはなに?
0235nobodyさん
2008/12/13(土) 01:08:01ID:6CbaLDLdユーザーが何か文字を入力するような
フォームは一切置いてなくて、ただボタンを押す
だけのプログラムなんだが、この場合でも
htmlspecialchars等でサニタイズはしたほうがいいの?
「変数を画面に出力する場合には、
すべてサニタイズしたほうがよい」
って解説サイトに書いてあったので。
あと
「POSTでも攻撃はできる」
との記述もありました。
0236nobodyさん
2008/12/13(土) 02:21:17ID:RdWJvdiT「POSTでも攻撃はできる」は確かにできるけど、
それはあくまで変数を取得したときだから
0237nobodyさん
2008/12/13(土) 02:49:23ID:???0239nobodyさん
2008/12/13(土) 03:05:34ID:???perlのエンジニアの給料が高いのは、内容の難易度とは何の関係もなく
単に人がいないから市場原理で上がっているんだろうな。
0240nobodyさん
2008/12/13(土) 04:22:46ID:???$a=10;
function Test()
{
print "hello";
$a=$a-1;
Test();
}
Test();
?>
これを実行したらアパッチが死んだ。一瞬で。
怖いプログラムや。
0241nobodyさん
2008/12/13(土) 04:55:25ID:???ざらにいるだろう?不思議だね
0242nobodyさん
2008/12/13(土) 06:07:09ID:???何を真剣に議論してるんだ
Perlやってまーす今月のお給料は30万円でした!→Perl 給料 30万円
今回のプロジェクトはPHPです。今日は給料日でお昼にトンカツを食べたよ。600円だった。→PHP 給料 600円
0243nobodyさん
2008/12/13(土) 06:20:39ID:6CbaLDLdこれ誰か教えてよ
0244nobodyさん
2008/12/13(土) 06:30:35ID:???コーダーに毛が生えたレベルでできる案件でもPHPプログラマー募集だからな。
例のURLは米だが、
日本だと、本当にできるやつは限られてて、いくら積んでもあつまらないからね。
実力を証明できれば、月150は普通に行ける。
0245nobodyさん
2008/12/13(土) 06:37:22ID:???だめだめだね。
>>234
質問が不完全なのでマニュアルを読んで、どっちの引数に指定なのかぐらい書いてください。
>>235-236
「変数を画面に出力する場合には、
すべてサニタイズしたほうがよい」
表示するときにするのはサニタイズじゃなくてエスケープな。
XSSされてマルウエア撒く土台になっても問題ない、
何を実行されても変更するコードを含まないサイトじゃないかぎりアウト。
>>236は釣りだろ。POSTだって全然だめこ。
0246nobodyさん
2008/12/13(土) 06:38:06ID:???0247nobodyさん
2008/12/13(土) 06:46:24ID:6CbaLDLdこのサイトで、
「よくhtmlspecialchars関数が使われていたり、
htmlentities関数を使っていても第1引数しか
指定されていなかったりしますが、これでは穴
が残ることになります。」
って、断言しちゃってるんだが、
htmlspecialcharsはそんなにダメな子なの?
0248nobodyさん
2008/12/13(土) 06:52:11ID:???0249nobodyさん
2008/12/13(土) 07:12:10ID:6CbaLDLdこのページに
「また、第3引数に文字コードも指定した方が無難です。
$fixed = htmlspecialchars($str, ENT_QUOTES, UTF-8);
「UTF-8」と書いた部分には、自分の使っている文字コード
を書きます。mb_internal_encoding()と書いておくのもありです。
と書いてあるのだが、「UTF-8」と「mb_internal_encoding()」と
どっちを書けばいいのだ?
0250nobodyさん
2008/12/13(土) 07:33:57ID:???日本語勉強汁
書いてあるまんまだろ
処理対象が内部エンコードじゃなかったら自分で指定しなきゃいかんわけだし。
0251nobodyさん
2008/12/13(土) 07:37:09ID:???第2引数が省略されて、アトリビュートをシングルクォートで出力すると
XSSが可能になる
文字コードを指定しないと、文字コードが違った場合に変換されない文字がある。
処理対象文字列が出力文字列と違う場合など、処理方法はケースバイケース
定式の対策ってのはサンプルでしかないって常識だから(カス以外)
0252nobodyさん
2008/12/13(土) 08:41:32ID:???0253nobodyさん
2008/12/13(土) 08:58:20ID:6CbaLDLdDBはもう古くて、
MDB2を使わないとだめなの?
0255nobodyさん
2008/12/13(土) 11:57:09ID:???さて、スパム質問がんがん続けてもらって結構だが、
>>1を守って、最低限の情報は提示したらどうかね。
>>253
DB MDB2? 正確に何の何って書いてくれ。
PEARのことか、標準関数か、PDOかさっぱりわからねぇ
0256nobodyさん
2008/12/13(土) 14:07:48ID:???就職のとき、どの程度のスキルがあればいいのかなどを教えていただけないでしょうか
0257nobodyさん
2008/12/13(土) 14:20:52ID:???各種フレームワークを使いこなす
ある程度のDBチューニング、DHTML、Ajax技術の取得
くらい
0258nobodyさん
2008/12/13(土) 15:01:29ID:eAoN+Tsu【PHPのバージョン】php5
【連携ソフトウェア】
【質問内容】
PHPでアクセス解析ツールを自作しています。
その際アクセスしてきた端末のIPアドレスが、リストであらかじめ指定しておいた
特定の範囲のIPアドレスに該当する場合は記録に残さないよう除外機能を
設けようと思っています。
ところがIPアドレスの範囲表記といっても表現の仕方は様々で、たとえば
a) 192.168.1.1/255.255.0.0 サブネットマスク
b) 192.168.1.1/12 ビットマスク
c) 192.168.1.1-192.168.1.255 範囲指定1
d) 192.168.1.1-255 範囲指定2
と種種雑多あります。おのおののケースに関して場合分けして一つ一つしらみつぶしに
対応させていく方法もありますがかなり面倒です。
PHPの標準関数の中に上記の表記方法の違いを吸収してくれるものは無いでしょうか?
0259nobodyさん
2008/12/13(土) 15:06:01ID:???0260258
2008/12/13(土) 15:11:32ID:eAoN+Tsuはい、たとえば禁止リストの中に>>258のa)〜d)の表記が混在していても問題なく
対応できるコードを書きたいと思っています。標準関数等でその違いを吸収して
くれるものがあれば実装はぐっと楽になりますが、なければa)〜d)に関してこちら
で場合分けしてやらなければならなくなるわけです。
0261nobodyさん
2008/12/13(土) 15:57:04ID:???http://q.hatena.ne.jp/1123814667
こんな関数とPEARクラスがあったよ
http://jp.php.net/ip2long
http://pear.php.net/package/Net_IPv4
その用途に特化したライブラリはあるのかもしれないけど俺は知らないなー
他のスクリプトのコード見て拝借するか上のクラス使って実装するのがいいんじゃなかな
0263258
2008/12/13(土) 17:58:47ID:eAoN+Tsuどうもです。Net_IPv4をざっと見てみました。
Net_IPv4::ipInNetwork()を使えばCDIR形式(b形式)で指定された範囲のIPアドレスが
特定のIPアドレスに該当するかチェックできそうです。
ただいずれにせよNet_IPv4自体はa, b, c, dの区別まではつくてくれるわけではないので
場合分けは他の方法を考案しないといけないようです。
0264nobodyさん
2008/12/13(土) 19:16:22ID:YPhOdbZ41個の処理が終わって、画面表示されるときはいいのですが、
そうでなく、どこかへ飛ばしたいとき、どうするのでしょうか。
PERLのようにGOTOは使っていないみたいですが、
どうすればいいのかわかりません。
初心者ですみません
0265nobodyさん
2008/12/13(土) 19:18:30ID:???0266nobodyさん
2008/12/13(土) 19:19:19ID:???</初心者>
0267nobodyさん
2008/12/13(土) 19:22:09ID:???0268nobodyさん
2008/12/13(土) 21:14:20ID:YPhOdbZ40269nobodyさん
2008/12/13(土) 23:46:10ID:K82uEZY1【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
divでメニューとメインの左右2カラムに分けているのですが、メニューをクリックするとメインに対応したページ(hoge.html)を表示させるようにはできないでしょうか?
0270nobodyさん
2008/12/13(土) 23:47:52ID:???0271296
2008/12/13(土) 23:51:07ID:K82uEZY10272269
2008/12/13(土) 23:54:29ID:???【質問内容】
divでメニューとメインの左右2カラムに分けているのですが、メニューをクリックするとメインに対応したページ(hoge.html)を”メインのカラムに”表示させるようにはできないでしょうか?
0273nobodyさん
2008/12/13(土) 23:55:09ID:???0274269
2008/12/14(日) 00:12:57ID:???0275nobodyさん
2008/12/14(日) 00:20:01ID:???0277nobodyさん
2008/12/14(日) 00:26:23ID:???0278nobodyさん
2008/12/14(日) 00:29:46ID:wo5hksfa【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
顧客情報がMD5のハッシュ化されて保存されてしまいました。
どうやったら顧客名を復元できるか教えてください。
0279nobodyさん
2008/12/14(日) 00:31:30ID:???0280nobodyさん
2008/12/14(日) 00:33:41ID:???0281nobodyさん
2008/12/14(日) 00:42:49ID:???「理解できないほど難しい」
という個所はほとんどなく、
たいていの説明は理解できる。
Cと違ってとてもうれしい。
ストレスがたまらない。
0282nobodyさん
2008/12/14(日) 00:55:12ID:???ストレスがうれしいってマゾ
■ このスレッドは過去ログ倉庫に格納されています