【PHP】下らねぇ質問はID出して書き込みやがれ 127
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2013/03/19(火) 22:13:49.76ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 126
http://kohada.2ch.net/test/read.cgi/php/1359808868/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0137135
2013/03/25(月) 18:04:26.97ID:???いえ、Bサーバー側ですべての処理が終わっても、クライアント側のPHP
はずっと動作したままブラウザは接続中になっています。
Bサーバーのtcpdumpではackをずっと飛ばしてるのですが、Aサーバーの
tcpdumpログに動きがないので、Bサーバーは強制切断になってます。
0139nobodyさん
2013/03/25(月) 18:09:03.98ID:Xg0aZ+mi間違えてsage入れてました。
この質問は取り下げます。
0140nobodyさん
2013/03/25(月) 18:21:17.35ID:zKokAmn+ブラウザやFTPクライアントはアップロードする時も%表示やプログレスバーが表示されますけど
phpでは表示出来ないという何か事情があるのでしょうか
0141nobodyさん
2013/03/25(月) 18:25:56.14ID:???curlで送ってるんじゃないの?
phpでcurlの関数に渡してはいおしまい、だと取れないだろって言ってるの
ダウンロードのコード晒してたから、そのまま使ったんじゃそうなるって話。
コールバックとか調べてみ。
0142nobodyさん
2013/03/25(月) 19:09:28.56ID:???コネクション張れてるならB→AへのACKがAに到達しないのはおかしいなぁとおもう。
nagleが絡んでるわけでもないんだよね
0143nobodyさん
2013/03/25(月) 19:13:45.73ID:???http://stackoverflow.com/questions/10946075/libcurl-c-curlopt-progressfunction
0144133
2013/03/25(月) 19:48:46.69ID:CCFS7U7gありがとうございました。
$_SERVER['REMOTE_ADDR'] の値が改竄される危険性については、
あまり心配しなくて良さそうですね。
0145nobodyさん
2013/03/25(月) 22:22:50.37ID:???0146nobodyさん
2013/03/25(月) 22:39:40.23ID:???0147nobodyさん
2013/03/25(月) 22:40:28.08ID:???0149nobodyさん
2013/03/26(火) 03:29:34.65ID:???0150nobodyさん
2013/03/26(火) 04:44:42.31ID:???常に煽りあってるよな
0151nobodyさん
2013/03/26(火) 04:59:50.77ID:???0152nobodyさん
2013/03/26(火) 05:05:58.04ID:???0153nobodyさん
2013/03/26(火) 05:13:23.28ID:???たまに煽り合いもあるけど基本平和そのものだぞ
言語使用者の民度は2chのスレッドにも表れる
0154nobodyさん
2013/03/26(火) 09:03:11.23ID:???0155nobodyさん
2013/03/26(火) 10:20:58.89ID:???0156135
2013/03/26(火) 11:09:54.49ID:mRDPS0mY返信ありがとうございます。
RSTはBサーバーではやってますが、Aのほうでは全く反応ない状態で
ackも送ってません。
nagleはちょっと調べてみないとわかりません。
0157135
2013/03/26(火) 12:16:11.31ID:mRDPS0mYcurlの
CURLOPT_TCP_NODELAYで無効にして試してみます。
ヒントありがとうございました。
0158nobodyさん
2013/03/26(火) 15:23:43.17ID:???嘘つきは消えろ
0159nobodyさん
2013/03/26(火) 16:05:01.31ID:???単純に文字を100回だすとかならまあ分かるんですけど
データベースとか絡んでくるとわけわからなくなってきます
0160nobodyさん
2013/03/26(火) 16:47:05.53ID:???本当にここは犯罪者予備軍のスレだな
0162nobodyさん
2013/03/26(火) 18:17:40.52ID:???0163nobodyさん
2013/03/26(火) 18:20:51.69ID:???0164nobodyさん
2013/03/26(火) 18:55:08.33ID:p9pFyvrs0165135
2013/03/26(火) 19:00:48.07ID:???だってプログラマーでしょ
0166nobodyさん
2013/03/26(火) 19:32:24.58ID:???for(int i =0; i < 10; i++){
for(int j = 0; j < 10; i++){
}
}
0167nobodyさん
2013/03/26(火) 19:41:13.66ID:p9pFyvrsループとイフの組み合わせを教えてください
0168nobodyさん
2013/03/26(火) 20:28:52.75ID:???その程度のこと知った所で何もプログラム組めないぞ
初心者向けのサイトでも見て学べ
0173nobodyさん
2013/03/26(火) 21:07:53.64ID:???はぁ?なにこいつ
最初出てなかっただろうが
万引きで捕まってから
お金払えばいいんでしょ!とか逆ギレするDQNと同じ精神構造
>>166共々消えろ
0178nobodyさん
2013/03/26(火) 21:41:24.07ID:p9pFyvrsみんなで仲良くPHPしましょう
0179nobodyさん
2013/03/26(火) 21:44:07.30ID:???0180nobodyさん
2013/03/26(火) 21:52:43.45ID:kZMtE//2初めてやったのがphpで、それで事足りてるからほかの言語をやるきになれない...
サーバサイドで使ってるのはPHPだけだと思う。
MySQLとの連携とかはあるけど。
0181nobodyさん
2013/03/26(火) 21:59:36.70ID:???http://www.youtube.com/watch?v=VBm5m1-Eonw
0183nobodyさん
2013/03/26(火) 22:15:55.27ID:kZMtE//2フレームワークあれば開発速度ものすごい上がるしな。
0184nobodyさん
2013/03/27(水) 04:49:18.79ID:???echo "こんにちは";
?>
として、test.phpを保存しても、
ブラウザで読み込むとそのまま出てしまうんですが、コンパイル的なのが必要なんですか?
0185nobodyさん
2013/03/27(水) 05:07:28.83ID:???0186nobodyさん
2013/03/27(水) 07:44:23.93ID:???その test.php はどこに保存されてて、ブラウザはどうやって開いているのかな?
ローカルに保存してローカルで開いたらそうなるけど。
ブラウザは PHP解釈しないから。
php解釈するモジュールを組み込める Apache などの Webサーバーにアップロードしておくか、
phpをcgiで実行できるようにWebサーバーに設定して同じくアップロードする。
そんでブラウザから Webサーバーを通じてアップロードしたしたファイルにアクセス。
というのがニワカの俺の知識。
0187nobodyさん
2013/03/27(水) 09:02:47.30ID:???0189nobodyさん
2013/03/27(水) 10:16:02.44ID:KYdi+aYHドメインが違っても出来てしまいますか?
0190nobodyさん
2013/03/27(水) 10:17:53.52ID:???0193nobodyさん
2013/03/27(水) 11:04:48.30ID:KYdi+aYHつまり相対パスで呼び出さない限りincludeは出来ないということで良いのですね
安心しましたありがとうございます
0194nobodyさん
2013/03/27(水) 11:22:45.13ID:o3YcYIdidataCheck($b,"txtB");
function dataCheck($str,$name){
if(strlen($str) == 0 || !preg_match('/^[0-9]$/',$str)){
print("<html><head><title>入力エラー</title></head><body>");
print($name." は半角数字を入力してください。<br /><br />\n");
print("<a href=\"#\" onClick=\"history.back(); return false;\">再入力</a>\n");
print("</body></html>");
exit;
}
}
txtAとtxtBの両方がfalseの場合、両方のエラーを表示させたいのですが
この場合だとどちらか片方しか表示されません。
両方表示できる方法をお願いします。
0196nobodyさん
2013/03/27(水) 13:50:15.93ID:???PHPだけのファイルの場合は付けない方が良く、その理由は明確。
PHPだけのファイルはrequireされるが、そのときそのファイルに?>に続くスペースなどがあると、
それが出力に影響を及ぼす場合がある。
また、PHPのコードでHTTPヘッダを出力するとき、requireしたファイルに?>に続く余分なスペース
や改行などがあると、もうHTTPヘッダは出力できなくなる。
そのため、?>は省略した方が良い。
ちなみに、PSR-2というコーディングガイド(PSRが何者かは要google)では、?>は省略が必須と
なっており、( http://www.infiniteloop.co.jp/docs/psr/psr-2-coding-style-guide.html )、
コーディングルールを静的にチェックするツールでは、エラーとして報告されるだろう。
0197nobodyさん
2013/03/27(水) 14:00:57.53ID:???dataCheck2($b,"txtB");
print("<html><head><title>入力エラー</title></head><body>");
print("</body></html>");
function dataCheck($str,$name){
if(strlen($str) == 0 || !preg_match('/^[0-9]$/',$str)){
print($name." は半角数字を入力してください。<br /><br />\n");
print("<a href=\"#\" onClick=\"history.back(); return false;\">再入力</a>\n");
}
}
function dataCheck2($str,$name){
if(strlen($str) == 0 || !preg_match('/^[0-9]$/',$str)){
print($name." は半角数字を入力してください。<br /><br />\n");
print("<a href=\"#\" onClick=\"history.back(); return false;\">再入力</a>\n");
}
}
適当にやったらなんとなく目的の動作に使づきましたが、「再入力」というのが2つ表示されたりと
なんとなくもっと簡単にできると思うんだが・・・
もし両方入力が不正の場合は、
「txtA txtBは半角数字を入力してください。」
と表示されるのが理想。$nameにtxtA txtBが代入されてるんだけど
それを配列で取り出す方法がわかりません。
0198nobodyさん
2013/03/27(水) 14:06:09.03ID:GIbhyuNjデータベースから100件のデータを取得して、PHP側にて、whileで処理する場合、
そのwhileループ内で、更に、5回ずつデータベースに問い合わせると、
合計500回データベースにアクセスすることになってしまいます。
こういう場合には、どうするのがベストですか?
テーブルを結合して取得すればよいかとも思うのですが、
問い合わせが、5回、10回と多くなるとテーブルの結合も難しいです。
0199nobodyさん
2013/03/27(水) 14:11:15.14ID:???PHP以前の問題だ。
function validate($str){
// 妥当なデータならtrueを、そうでない場合はfalseを戻す
return strlen($str) !== 0 && preg_match('/^[0-9]$/', $str);
}
$buf = '';
if (!validate($a)) {
$buf = "txtA,";
}
if (!validate($b)) {
$buf .= "txtB";
}
if (strlen($msg) > 0) {
$html = <<<EOB
<html><head><title>入力エラー</title></head><body>
$buf は半角数字を入力してください。<br /><br />
<a href="#" onClick="history.back(); return false;">再入力</a>
</body></html>
EOB;
}
0200nobodyさん
2013/03/27(水) 14:12:42.17ID:???> こういう場合には、どうするのがベストですか?
> テーブルを結合して取得すればよいかとも思うのですが、
それしかない。
> 問い合わせが、5回、10回と多くなるとテーブルの結合も難しいです。
難しくてもやれ。
0201nobodyさん
2013/03/27(水) 14:13:28.39ID:???誤:if (strlen($msg) > 0) {
正:if (strlen($buf) > 0) {
0202198
2013/03/27(水) 18:47:39.02ID:MD7cwBMvなにか、他にテクニックがあるかとも思ったのですが、
やはり、テーブルの結合をするしかないようですね。
有難うございました。
0203nobodyさん
2013/03/27(水) 19:02:19.68ID:???出しようが無いだろw
必要な呼び出しなら何回だろうが必要なだけ呼ぶしかないと言うだけのこと。
0204nobodyさん
2013/03/27(水) 19:12:48.33ID:???> そのwhileループ内で、更に、5回ずつデータベースに問い合わせる
これがそもそもなくなるんじゃないかっていうのが回答者の意見だと思う
でも
> テーブルを結合して取得すればよいかとも思うのですが、
> 問い合わせが、5回、10回と多くなるとテーブルの結合も難しいです。
これがわからない
もうちょっと詳しく頼むわ
0205198
2013/03/27(水) 19:26:24.23ID:MD7cwBMv不明瞭な点が有り、すみません。
意図していることは、結合するテーブルが5個、10個と多くなると、
SQLが複雑化するということです。
また、DBの設計上、結合が無理な場合も有り得るということです。
0206nobodyさん
2013/03/27(水) 19:28:37.44ID:???0207nobodyさん
2013/03/27(水) 19:34:59.92ID:???Sqliteメインからかもしれないが、分けるなら別ファイルにする。
0208nobodyさん
2013/03/27(水) 20:19:03.85ID:r73Jwrfnそうなってくると、DB設計見直してもいい気がします。
0209nobodyさん
2013/03/27(水) 20:36:36.55ID:???今スマホなんでURLは示せないけど、Oracle SQLパズルってサイト検索してみて。
一個のクエリで驚くほどいろんなことできるから。
ループ内のクエリは絶対だめ。
0210nobodyさん
2013/03/27(水) 20:38:31.67ID:2iOdM1fpイマイチ練習法がわかんなくて
0211198
2013/03/27(水) 20:55:59.05ID:I26BQZQ8DB設計についても再考してみます。
>>209
http://www.geocities.jp/oraclesqlpuzzle/
これですね。かなり高度のようですが勉強してみます。
>ループ内のクエリは絶対だめ。
肝に銘じます。有難うございました。
0212nobodyさん
2013/03/27(水) 21:39:21.74ID:???昨日まで平和に進行してたスレが1日で50レス近く荒れてるんですよ
かなり迷惑なので他のスレにお願いします
0213nobodyさん
2013/03/27(水) 21:49:56.92ID:???0215nobodyさん
2013/03/28(木) 09:21:24.03ID:???0217nobodyさん
2013/03/28(木) 12:53:36.30ID:???> これなんでダメなん?
実行時間が長くなり、サーバにも負担がかかるので。
例えば1000行戻ってくるクエリをループして、それぞれの行で5回検索をしたとすると、
ループ内では合計5000回のクエリ実行が必要。
対ローカルでもクエリの実行は数ms程度かかる。
1回のクエリにつき1msかかるとすると、このループの実行時間は5秒。
ネットワーク経由だと、10ms以上かかったりするので、数十秒〜数分のオーダーになるかもしれない。
一方、全部JOINして1回のクエリで終わらせられれば、数十〜数百msくらいで終わる。
> PDOなんかだとループ前提の仕組みもあるよね。
MDB2しか使ったことないんだけど、PDOのその仕組みってどういう奴なの?
0218nobodyさん
2013/03/28(木) 12:55:27.85ID:???hashを参照する方法もある。
が、大抵はJOINした1回のクエリより遅い。
0219nobodyさん
2013/03/28(木) 13:33:51.38ID:Cp6GJ5bL【PHPのバージョン】5.3.10
【連携ソフトウェア】MySQL
phpでPDO使ってMySQLいじってる初心者です
指定の行の取得ってどうやるんでしょうか
$stmt = $dbh->prepare('select xxx from xx', array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, $num);
ってやっても最初の行しか取れなくて困ってます
0220nobodyさん
2013/03/28(木) 13:42:08.01ID:???0221nobodyさん
2013/03/28(木) 13:50:16.41ID:???fetchAll使って解決しました
0222nobodyさん
2013/03/28(木) 13:51:36.21ID:???マルチwwwwwww
http://toro.2ch.net/test/read.cgi/tech/1363522503/224
0223nobodyさん
2013/03/28(木) 13:54:46.08ID:???これでいけないか?
PDO limit句
http://phpgo.info/?PDO%20limit%E5%8F%A5
0224nobodyさん
2013/03/28(木) 14:09:19.06ID:???そこまでして自己顕示欲を満たしたいの?
0225nobodyさん
2013/03/28(木) 14:16:34.23ID:???0226nobodyさん
2013/03/28(木) 14:17:01.51ID:???0227nobodyさん
2013/03/28(木) 14:21:40.28ID:???俺がマ板からこの板に誘導したから。
が、よく>>222をみたらム板にもマルチしてたのか。どうでもいいけど。
0228nobodyさん
2013/03/28(木) 14:27:57.85ID:???0231nobodyさん
2013/03/28(木) 16:33:27.95ID:???言い合えるってだけで羨ましいス…
別に何も無いヨ…
0232nobodyさん
2013/03/28(木) 22:53:42.51ID:???> PDOなんかだとループ前提の仕組みもあるよね。
PDOでそういう仕組みは見たことないけど。
これと勘違いしてるんじゃない。
http://www.php.net/manual/ja/pdo.prepared-statements.php
プリペアドステートメントを使用して、繰り返し挿入処理を行う
0233nobodyさん
2013/03/29(金) 00:31:56.83ID:???使えないんですけど何でですか?
0234nobodyさん
2013/03/29(金) 00:53:54.84ID:G7mP7j2Chtmlspecialchars()とか前に使ってない?
'>' (大なり) は '&gt;' になります。
■ このスレッドは過去ログ倉庫に格納されています