【PHP】下らねぇ質問はID出して書き込みやがれ 114at PHP
【PHP】下らねぇ質問はID出して書き込みやがれ 114 - 暇つぶし2ch330:nobodyさん
12/01/06 12:00:31.39
>>329
__toString()
マジックメソッド php5.2以上

331:nobodyさん
12/01/06 12:00:33.66 9fGZTwoM
>>325
ゆるゆるなCodeIgniterでならつくれます。
他のフレームワークも勉強してみます。

>>326
入門書かフレームワークの解説書かセキュリティの本という感じで
入門書クリアしたレベルの人の為の本が全くと言っていいほどないですよねorz
ちいたんなんて初めて知りました! これを読んで勉強してみようと思います。

>>328
なるほど。フレームワーク自作って面白そうですね。
やってみます。

ありがとうございます!

332:nobodyさん
12/01/06 12:01:12.09
>>329
そのまえにクラスの初歩を勉強しようや

333:nobodyさん
12/01/06 12:01:36.19 9fGZTwoM
>>331
× >>325
>>324
失礼しましたorz

334:nobodyさん
12/01/06 12:24:59.33 DYaNhYpb
>>330
サンクス。このようにできました。

$queue = new QUE;
$queue->push(1,2,3);
$queue->push(5);
$x = $queue->pop();
print_r($queue);


class QUE {
public $queue = array();
function pop() { return array_shift ( $this->queue ); }
function push() { $arr =func_get_args(); foreach($arr as &$x) $this->queue[]=$x; }
function __invoke() { return $this->queue; } }

335:nobodyさん
12/01/06 12:26:53.87 ZICr1WBy
WebPG歴半年の新米です。PG35歳説なんてむかしからありますが、
WebPGて横に幅広い知識が必要だと思いますし、立派な技術職だと思います。
PHPの熟練者(例えばこのスレの回答者の方々)って職にこまらないですか?

336:nobodyさん
12/01/06 12:30:42.42
俺は困ってないが、そんな個人的なこと聞いてどうする。

337:nobodyさん
12/01/06 12:33:55.87 ZICr1WBy
まだ未熟で先が見えないので自分のキャリアプランに不安を感じていまして。
webPGのキャリアモデルて調べてもあまり出てこない(業界の歴史が浅いから当然ですが)
ので聞いてみました

338:334
12/01/06 12:36:08.09 DYaNhYpb
334は、print_r($queue); ⇒ print_r($queue());でした。

339:nobodyさん
12/01/06 12:49:15.17
>>337
言語なんて必要に応じて使えなきゃ、先はないかもね。

340:nobodyさん
12/01/06 13:03:15.39
最近、知恵袋から出張にきてるボンクラ質問者と回答者が居座ってるね

341:nobodyさん
12/01/06 13:05:07.19
web系は古いものに固執しなきゃどうにでもなる。
モバゲーもスマホもSNSも結局大成功したじゃない。
で、そういうのに売れない時代から付き合ってたやつも、相当な利益出してるはずなんだ。
そういうこと。

342:nobodyさん
12/01/06 13:12:27.05
それは経営者の判断で雇われプログラマには関係ない。

343:nobodyさん
12/01/06 13:34:29.26
プログラマなんて40,50になって出来る職業じゃないんだからさっさと自分で稼げる形を作るのが普通
先なんてどうなるかわかりきってることだし
それをやらずに人生折り返し地点まできちゃった人はざまぁとしか言いようがない
諦めて吊るか別の仕事で細々とやっていくしかないでしょ

344:nobodyさん
12/01/06 14:52:28.30
プログラムを生産するのではなく、物理的なものを生産してプログラムで補助(ショッピングカート)するのが出来る男。

345:nobodyさん
12/01/06 14:57:03.63
確かに、元営業で「必要だから勉強した」ってのがいいもの作ったりするんだよね…

346:nobodyさん
12/01/06 15:35:47.70 GMZDyuPm
PHPで今流行のステマは作れますか?

347:nobodyさん
12/01/06 15:44:32.57
>>344
まさに俺。
カスタマイズや保守運営のコスト考えたら自分でやらなきゃしょうがないというだけだが。

348:nobodyさん
12/01/06 19:01:56.16
自分が作ってるものが、ただのソースなのか
なんかのサービスを作ってると思うかで大分違う。

349:nobodyさん
12/01/06 19:59:49.95 ISncG55/
【OS名】CentOS
【PHPのバージョン】5.3
【質問内容】
file_get_contents で任意のページを取得する際、
取得先のページがjavascriptの非同期通信でコンテンツを読みこんでいる場合に
その非同期通信が終わった状態を読みこむにはどうすればいいのでしょうか?
そのまま読み込むとコンテンツ内容が空のソースが返ってきてしまいます。

350:nobodyさん
12/01/06 20:09:24.54
>>349
空のソースでもユーザ側のブラウザが勝手に取りに行ってくれるんでない?
phpで非同期通信コンテンツ読み込みたいなら対象のxml読み込めばいいんじゃない?

351:nobodyさん
12/01/06 20:19:12.10
>>349
そもそもfile_get_contents()でjavascriptが実行できるわけないでしょう
どうしてもそれをやりたいならCentOSでブラウザを立ち上げてブラウザでソースを取得
方法はググったりググったりググッて

>>350
意味が分からないというか、あなたが理解していない

352:349
12/01/06 20:19:50.10 ISncG55/
>>350
取得したソースをいじくってから表示させたいのです。
取得対象はxmlではなく(たぶんphpで吐き出した)htmlです。

353:349
12/01/06 20:21:02.60
>>351
curlを使っても無理ですか?

354:nobodyさん
12/01/06 20:23:13.16
>>353
クライアントサイドスクリプトってなーにってところからググッて

355:nobodyさん
12/01/06 20:26:02.47
ASP.NET最強

356:nobodyさん
12/01/06 20:28:17.32
>>354
そうですよね、言われてみれば。
ブラウザに組み込まれていない生のjavascriptっていうもんがあれば行けそうですが。
現状、方法はないということで了解しました。

357:nobodyさん
12/01/06 20:31:44.53
>>356
>現状、方法はないということで了解しました。
どういうことなの
方法は教えたし


358:349
12/01/06 20:36:54.90
>>357
裏でブラウザを立ち上げるっていう方法しかない、それはいやだな、ということです。
あんまりカリカリしないでください。

359:nobodyさん
12/01/06 20:44:28.89
そか
じゃあ仕方ないな
どうせ人のフンドシでスモウを取るような事を考えてたんだろ
それ相応のスキルを身につけてから考えようぜ

360:nobodyさん
12/01/06 20:58:58.95
>>351
理解してないのはオマエだ

361:nobodyさん
12/01/06 21:01:28.18
自身で非同期通信をやってみれば原理がわかるんじゃない

362:nobodyさん
12/01/06 21:57:09.55
>>360
お前だよ


363:nobodyさん
12/01/06 22:14:44.34
>>362
javascriptを実行するのはクライアントのブラウザだってわかってる?

364:nobodyさん
12/01/06 22:18:39.17
>>363
おまえ>>349の質問の意味わかってねーじゃん
バカなの?ハゲなの?

365:nobodyさん
12/01/06 22:29:23.31
>>363
マジ痛すぎ

366:nobodyさん
12/01/06 22:33:05.28
>>364
とりあえず 「AjaxでxmlかJSONを読み込み表示する」 までやってみよう 話はそれからだ

367:nobodyさん
12/01/06 22:40:28.35
>>366
ほんと痛いなこいつ

368:nobodyさん
12/01/06 22:42:16.99
いつものおっさんじゃねーのw

369:nobodyさん
12/01/06 22:46:18.19
なるほど Ajax使ったことの無い人間がAjaxの質問に答えようとしたのか

370:nobodyさん
12/01/06 22:51:49.81
こっちが恥ずかしくなってきたw
なにこのなんともいえないキブンwww

371:nobodyさん
12/01/06 23:36:53.54
年末から変なの住み着いてこのスレも死んだな

372:nobodyさん
12/01/06 23:37:50.28
>>368
いつものおっさんではない オレはまだ0x二十代だ
いつものおっさんほど詳しくないし FWとかぜんぜん興味ない
どちらかというと 乗り手を選ぶカリカリチューンド悪魔のZ的なスーパーハードコーデイングが大好きです

>>370
大丈夫か? 顔が真っ赤だぞ
先に言っておくが つり宣言は敗北宣言だ もうちょっとがんばれ

373:nobodyさん
12/01/06 23:44:21.72
いや、トンチンカンで全く詳しくないからニートおっさんだと思われた訳で。

374:nobodyさん
12/01/06 23:46:20.18
まちがいないだろうな
かわいそうに思えてきた

375:nobodyさん
12/01/06 23:48:58.30
そもそも今の20代は悪魔のZなんてしらんしな

376:nobodyさん
12/01/06 23:55:22.02
ちなみに 我々はこのデバック方を"フィッシャープリンティング"と呼んでいる が IDが出ないスレではあまり意味が無い
おまえら 0x二十代の意味ばらすなよ

377:nobodyさん
12/01/07 00:00:22.48 CsZsKZfD
PHPでHadoopを作られた方いらっしゃいますか?
ちょっと難しくてお助けを・・・・。

378:nobodyさん
12/01/07 00:05:54.48
おっさんが来たか

379:nobodyさん
12/01/07 00:13:50.68
姉さん出番ですよ

380:nobodyさん
12/01/07 00:14:47.22
ずっとはりついてるよおっさんは

381:nobodyさん
12/01/07 00:41:56.83 CsZsKZfD
PHPでFacebookを作られた方いらっしゃいますか?
ちょっと難しくてお助けを・・・・。

382:nobodyさん
12/01/07 04:09:12.62
超初心者なんですが、Amazonの商品情報を取得したくて、PHPの入門関連の本を見ながら勉強してます。

URLリンク(www.bnote.net)
本や上記サイトをみながらAmazonの特定商品の情報は取得できるようになったのですが
現状ですとphpファイルに取得したい商品のasianをいちいち書き込んで保存して
URLリンク(xxxxxx)で表示しているので手間がかり使い勝手が悪いです。

URLリンク(xxxxxx)「商品のasian」'
のようにして、末尾のasianを変えるだけで、PHPファイルをいちいち弄らずAmazonの任意の商品情報取得したいんですが、
どのようにすればいいですか?

宜しくお願いします。

383:nobodyさん
12/01/07 04:09:55.44 WBJb+YlP
すいません。あげ忘れました。

384:nobodyさん
12/01/07 05:13:49.57
>>382
URLリンク(jp.php.net)

385:nobodyさん
12/01/07 10:13:48.06
>>349
Prototype.js使ってさ、
001.html
<script type="text/javascript">
function sendRequest(){
new Ajax.Updater($('date'),'hello.php');}
window.onload=sendRequest;
</script>
<body>
<span id="date">・・・</span><br/>
</body>

hello.php
<?php
$contents = @file_get_contents("somefile.html");
echo $contents;
?>

somefile.html
<html><head></head><body>
範馬勇次郎
</body></html>

っで、001.htmlに範馬勇次郎って表示させる的なこと聞いてるの?


386:nobodyさん
12/01/07 10:15:50.66
GETを理解してないのにAmazonのAPIが使えたところが謎だけど
その本とやらを窓から投げて1から学習したほうが身につきそうだな

387:nobodyさん
12/01/07 10:19:13.10
>>385
質問よく読めよ
しかもなんでprototype限定なんだよキョウビprototypeなんか使ってるやつほとんどいねーよ

file_get_contents()でURL叩いてそのページにjavascriptの実行結果まで返して欲しいんだけどって質問だろうが
それに対して>>351がfile_get_contents()でjavascriptを実行できるわけないだろって返してるし

388:385
12/01/07 10:19:30.15
>>349
コンテンツ内容が空って、~.phpがfile_get_contentsで~.htmlを取得
するから、この~.phpを非同期ができてないからエラーじゃないの?
つまり、php側でなく、Javascript側でエラーが出てるはず。

389:387
12/01/07 10:21:33.27
ミスった。388は385でなく387です。

390:nobodyさん
12/01/07 10:22:57.30
>>389
おまえなに成りすまししてんだよ
しねよ

391:nobodyさん
12/01/07 10:37:47.48
イ㌔

392:nobodyさん
12/01/07 10:42:39.51
的確な回答でてるしね>>351
バックグラウンドでブラウザとPHPで連携するしかないでしょ
PHPでjavascriptをパースして実行結果を導き出すって方法もあるかもしれないけど出口の見えない途方も無い作業になるし

393:349
12/01/07 10:57:05.96
いろいろありがとうございます。
>>351さんに言われたとおりphpからjavascriptの非同期実行結果込みのページを取得しようとすること自体がそもそも間違っていたので
こちらもjavascriptで取得することにしました。
取得先URLを準備して、iframeのsrcへ突っ込み、見事javascript実行結果状態のページがフレーム内に表示されました(当たり前ですが)。
さてこのiframe内のソースをphpに投げれば余裕じゃんと思ったのですが、別ドメインのiframe内ソースって取れないんですね。
ぬおー、なんだよ、目の前に表示されてるのにソース読めないとか、まじですか、というところで止まっています。
php関係ないですね。できそうでできないです。


394:nobodyさん
12/01/07 11:11:59.39
>>393
クロスドメインで簡単にゴニョゴニョできたらセキュリティ的にマズイでしょ
相当昔はできたけど今は簡単にはできないよ

395:nobodyさん
12/01/07 11:20:47.88
>>393
「攻撃対象サイトのAjaxが取りに言ってるxmlをfile_get_contentsで取得してphpで加工して自分サイトに表示させたい」
ということ?

396:nobodyさん
12/01/07 11:21:10.64
>>394
簡単にはできない、ということは、できるということですか?
iframeを入れ子にして孫から呼ぶみたいな説明も見かけたんですが理解できなかったです。

397:nobodyさん
12/01/07 11:23:45.08
>>395
だからおまえはなんでxml限定なんだよ
おまえが一から学習してこい
レベルが低すぎておまえ会話になってねーんだよハゲ

398:349
12/01/07 11:24:00.96
>>395
いえ、違います。あと攻撃でもないです。
取得対象のサイトは、コンテンツ部分を非同期で持って来ているんです。
普通にブラウザでアクセスすれば、loadingてきなのがクルクルしてて、1秒後くらいにコンテンツが表示されるっていうサイトです。
そのloadingが終わった状態をこちらで取得したいということです。

399:nobodyさん
12/01/07 11:29:03.85
>>398
ブラウザを操るか、ブラウザ動作を再現しろよ。確実にやるならJavaScriptが動作させられないと無理。

400:nobodyさん
12/01/07 11:30:02.72
>>398
対象のURL貼ったほうが早い

401:349
12/01/07 11:32:16.37
>>399
やっぱりそうなりますか。

402:nobodyさん
12/01/07 11:36:52.92
>>397
非同期で取得する対象って XMLとJSON以外で一般的なものってありますか?

403:nobodyさん
12/01/07 11:39:32.36
>>402
馬鹿じゃないの
テキストでもHTMLでもなんでもあるだろが
おっさんもうおまえ人生詰んでるから吊ればいいと思うよ

404:nobodyさん
12/01/07 11:42:04.39
>>403
マジか 名前空間使わない非同期って大変そうなんだけど

405:nobodyさん
12/01/07 11:43:32.26
名前空間がなにに使われてると思ってんの
ほんと頭悪すぎ

406:nobodyさん
12/01/07 11:45:38.12
第18章 PHPUnit と Selenium
URLリンク(www.phpunit.de)



PHPUnit と Selenium を使用したテスト -- NetBeans IDE チュートリアル
URLリンク(netbeans.org)

407:nobodyさん
12/01/07 11:46:28.07
>>349
とりあえずクロスドメインをハックするのは諦めろ
もしその読み込み先がおまえの所有だったら読み込み先に親フレームにソース渡すとか方法はあるし
おまえが人のサイトをハックしようとしてるのはわかりきってるから方法があったとしても教えないよ

408:349
12/01/07 11:54:37.20
>>406
うお、これすげえ。
ブラウザ上の挙動を再現できそうですね、これはイケそうです。
敷居が高そうですがやってみます。

>>406
別に悪いことしようとなんて思ってないですよ。
そもそもfile_get_contentsという関数がphpに用意されているじゃないですか。
たまたま対象が非同期ページだっただけで。

409:349
12/01/07 11:56:54.91
下の方のレスは>>407さん宛でした

410:nobodyさん
12/01/07 12:06:10.89
クロスサイトリクエストフォージェリだっけか 立派な攻撃だな

411:nobodyさん
12/01/07 12:10:25.69
>>408
おまえ自分がどんだけアホなこと言ってるか理解しておいたほうがいいぞ
人を殺して「だって包丁が売ってるじゃないですか、たまたま刺したのが人だっただけで」って言ってるようなもん
しねよ

412:349
12/01/07 12:16:16.48
>>411
じゃあfile_get_contentsってどういう時に使うんですか?
自サイトから引っ張ってくるなら意味ないじゃないですか。
俺はその包丁で野菜を切ろうとしてるだけです。

413:nobodyさん
12/01/07 12:16:44.23
さあ電波度が高まってまいりました

414:nobodyさん
12/01/07 12:17:43.01
>>412
他人の畑の野菜をな

415:nobodyさん
12/01/07 12:20:07.13
>>412
>>414
おまわりさんこっちです>>412こいつです!

416:nobodyさん
12/01/07 12:23:26.07
file_get_contentsでデータ持ってきたら逮捕w

417:nobodyさん
12/01/07 12:23:50.00
岡崎図書館事件もびっくりだな

418:nobodyさん
12/01/07 12:26:09.14
おまえら中国人とかわらねぇ

419:nobodyさん
12/01/07 12:29:52.34
>>417
あれは可愛そうだた 営業力のない技術者はただの道具になるしかないらしい

420:349
12/01/07 12:31:05.88
まじですか。
ブラウザでアクセスすれば普通に表示されるものをphpで取得することっておまわりさん呼ばれちゃうレベルなんですか?
ブラウザでも取得してますが。
ま、それを二次利用してこっちが儲けようとしてるんなら叩かれてもしょうがないですけど、
非公開localhost俺サイト用なんで前向きに質問しました。
スレ汚しごめんなさい。>>406さん、あんがとやんした。


421:nobodyさん
12/01/07 12:41:07.87
いやおまわりさんはネタだろw

422:nobodyさん
12/01/07 12:41:50.25
JavaScript使うサイトは、クライアント側の負荷が高くなる訳で、HTMLだけのクローラーよりアクセス増やしにくいが。

423:nobodyさん
12/01/07 12:48:49.79
人の畑の野菜を勝手に刻んで包丁はそのためにあるんでしょ?と開き直る小僧
プログラマにもなれずプログラマのフリをしてトンチンカンな事を垂れ流し続ける人生詰んだおっさん
このスレレベル高すぎだろ

424:nobodyさん
12/01/07 12:50:56.45
どれがどれに対するツッコミかよくわからんから
誰か一連まとめてくれ

425:nobodyさん
12/01/07 13:01:24.02
>>424
荒らしVS暇人で遊んでただけだ 気にしなくていいと思う

426:nobodyさん
12/01/07 13:17:09.06 4WAxjW+f
質問させてください

PHP + MySQLで初心者らしくWEB投票を作っています
しかしながらF5とか投票ボタンを連打するといくつもカウントされてしまいます
どうしたらF5攻撃を避けられるでしょうか?よろしくお願いします

427:nobodyさん
12/01/07 13:27:40.64
それだけきっちりカウントされてるならよくできてる証拠だ

428:nobodyさん
12/01/07 13:30:43.65
>>426
PHP + MySQLってことなんでその範囲で
とりあえずMySQLは目的に関係ない
PHPでCookieを使うかSESSIONを使え
1回目の投稿で投稿日時を保存
2回目の投稿の時に前の投稿から一定時間が経過していない場合はエラーを返すかDBに登録しない

教えてやったからコーラ買ってこいよ

429:nobodyさん
12/01/07 13:32:01.36
IPやクッキーや携帯固有番号とかつかえ

430:nobodyさん
12/01/07 13:39:14.31
>>384
ありがとうございます。

431:nobodyさん
12/01/07 13:44:51.23
このPHPソースで情報とれたぞ。
このサイトで実験した。

URLリンク(gogomo.site90.net)

<?php
$ip = getenv("REMOTE_ADDR");
$host = getenv("REMOTE_HOST");
if ($host == null || $host == $ip) $host = gethostbyaddr($ip);
echo "IP = $ip</br>\n";
echo "HOST = $host</br>\n";
?>

432:nobodyさん
12/01/07 13:53:19.27
またおっさん頓珍漢なこと書いてるし
マジで頭おかしいんじゃねーの

433:nobodyさん
12/01/07 14:06:41.50 4WAxjW+f
>>428-429
ありがとうございます
しかしながら投稿時間とIPアドレスを保存して一定時間経過してない場合はエラーを返して終了する処理をしても多重投票されてしまいます。
国内サーバーの場合は問題ないのですが海外サーバーの場合レスポンスが遅いのでそれが原因でしょうか?


434:nobodyさん
12/01/07 14:13:32.73
ソース晒したら問題に答えるよ

435:nobodyさん
12/01/07 14:20:46.31
ただのPC向けサイトだったら

session_start();

$delay = 120; // 120秒制限

if($_SERVER['REQUEST_TIME'] - $_SESSION['posttime'] < $delay) {
echo '120秒の間隔をあけてくださいね';
exit;
}

// 初回もしくは120秒以上経過している
$_SESSION['posttime'] = $_SERVER['REQUEST_TIME'];
# ここでDBに投入
echo '投票しました';

こんだけ
コーラ買ってこいよ

436:nobodyさん
12/01/07 14:33:49.61
sessionだとブラウザ再起動で再投票できてしまうかもな
ボット避けにimgタグでcookie食わせるのもいいかもね
あと 焼きそばパン買って来い

437:nobodyさん
12/01/07 14:37:49.94
sessionを拒否してる場合は連投できるけど、初心者の習作だと思ってそこは説明しなかった
ややこしくなるだけだし

438:nobodyさん
12/01/07 14:40:19.64
ソース無い時点で丸投げか釣り
まともに答える必要はない

439:nobodyさん
12/01/07 15:25:05.07 4WAxjW+f
>>435
ありがとう。しかしながら

>>436-437
なるほど、sessionは使ってはいけないのですね
DBに投票時間とIPアドレス保存してそれをチェックが普通ですよね?

>>438
恥ずかしながらソース晒します笑わないでください

440:nobodyさん
12/01/07 15:27:18.81 4WAxjW+f
ソースです

$regtime = time();
$ip = GETENV("REMOTE_ADDR");

# テーブルロック
$sql = "LOCK TABLES touhyou WRITE";
$rst = mysql_query($sql,$con);

# 多重投票チェック
$delay = time() - 10;
$sql = "SELECT * FROM touhyou WHERE (regtime > '$delay') AND (ip = '$ip')";
$rst = mysql_query($sql,$con);
$rec = mysql_num_rows($rst);
if($rec){ errorpage("多重投票禁止"); exit(); }

# 投票
$sql = "UPDATE touhyou SET count = ifnull(count,0) + 1,regtime = '$regtime',ip = '$ip' WHERE (code = '$code')";
$rst = mysql_query($sql,$con);

# テーブルロック解除
$sql = "UNLOCK TABLES";
$rst = mysql_query($sql,$con);

441:nobodyさん
12/01/07 15:34:21.95
>>440
438じゃないけど
regtimeと$delayの比較が逆じゃない?

あとそのロジックだと1codeにregtimeとIPが1つずつしかないから
違うIPの人が交互に投票すれば制限なくなりそうだけど

442:nobodyさん
12/01/07 15:36:45.34
あごめん、引っかかったらエラーだからいいのか。

443:nobodyさん
12/01/07 15:47:58.06 4WAxjW+f
>>441
ありがとうございます
IPアドレスと投票時間だけのテーブルを別途作りました
これで多重投票はできない?

# 多重投票チェック
$delay = time() - 10;
$sql = "SELECT * FROM ipaddress WHERE (regtime > '$delay') AND (ip = '$ip')";
$rst = mysql_query($sql,$con);
$rec = mysql_num_rows($rst);
if($rec){ errorpage("多重投票禁止"); exit(); }

# テーブルロック
$sql = "LOCK TABLES touhyou WRITE";
$rst = mysql_query($sql,$con);

# IPアドレス追加
$sql = "INSERT INTO ipaddress (regtime,ip) values ('$regtime','$ip')";
$rst = mysql_query($sql,$con);

# 投票
$sql = "UPDATE touhyou SET count = ifnull(count,0) + 1 WHERE (code = '$code')";
$rst = mysql_query($sql,$con);

# テーブルロック解除
$sql = "UNLOCK TABLES";
$rst = mysql_query($sql,$con);

444:nobodyさん
12/01/07 15:54:48.70
>>443
440のソースでやってみたらF5連打しても多重投票されなかったけど

445:nobodyさん
12/01/07 15:56:38.23
ipだけ記録して24時間毎にデータベースを初期化すれば良い。

446:nobodyさん
12/01/07 15:57:13.89
>>445
それだと初期化する1分前に投票して初期化後にまた投票できるぞ

447:nobodyさん
12/01/07 16:00:43.57
いつ初期化されるのか確認するやつもいないだろ。
サーバーの処理が少ない方がいいんだ。
1分後に投票できたとしても次にできるまで24時間かかる。大した不正にならない。

448:nobodyさん
12/01/07 16:33:03.74 4WAxjW+f
>>444
はい自宅の環境でも問題なかったです
しかしながら海外のレスポンス遅いサーバーでやると多重投票されてしまうのです

>>445-447も上と同じだと思います

テーブルロックするタイミングとか問題なのかな?と思っているのですがよくわかりません

449:nobodyさん
12/01/07 16:54:16.52
>>448
そういうことなんで先に言わないの?

450:nobodyさん
12/01/07 17:18:09.00
センスないなー

テーブルを
ip(IP入れる) post(投票IDを入れる)
ipがプライマリーキー

# 投票
INSERT IGNORE INTO tableName (ip,post) VALUES ($ip, $postid);

# 投票結果集計
SELECT COUNT(ip) AS n FROM tableName WHERE post=?;

これだけでいいじゃん


451:nobodyさん
12/01/07 17:28:01.88
ちなみに>>450だとそのテーブルは投票イベントごとのテーブルね
1つのテーブルで何回も投票イベントを管理する場合はプライマリキーを組み合わせたり工夫すること

さっさとコーラ買ってこいよ
さっきから待ってんだけど

452:nobodyさん
12/01/07 17:46:08.75
さらに付け加えておくと
1つのレコードを不特定多数のユーザーがupdateかけるような設計は最低だから覚えといてね

カレーパン追加な

453:nobodyさん
12/01/07 18:02:56.85
同時アクセスの問題を処理するためのデータベースだろう。
あとテーブルのロックは不要だろ。それを命令することで不具合でないか?
それって一気に更新するトランザクション処理するとき用だろ。

454:nobodyさん
12/01/07 18:08:29.88
データベースは同時アクセス来ても待ち行列にいれて順に処理するから問題でないはずだろう。
調べてみたらロック命令が付いてるほうが特殊で、SQLiteだとトランザクションモードに入ったら勝手にロックがかかって他所から更新できないようだぞ。


URLリンク(www.advancesoft.co.jp)
接続Aでトランザクションが開始されている時に接続BでもINSERTを実行すると「SQL error: database is locked」とエラーになります。

455:nobodyさん
12/01/07 18:13:41.39
便利なやつ作ったよ。SQLite(PDO)を使ったMap。
これでデータベースを意識しないでデータベースを利用できる。
このサイトではPDOは動かずSQLITE2は動くようだがそれに対応するのは後回しにする。

URLリンク(ideone.com)

456:nobodyさん
12/01/07 18:20:31.25
だから>>450で済むだろーが
トランザクションかんけーねーしテーブルロックいらねーし

457:nobodyさん
12/01/07 18:22:54.07
>>455
なんだこのクソみたいなソース
よく恥ずかしげもなくこんなもん晒せるな

458:nobodyさん
12/01/07 18:27:53.31
ブルックスの法則だな
人脳を連結しても処理速度は上がらない が 出力が多様化する

459:nobodyさん
12/01/07 19:53:46.80 4WAxjW+f
>>450
1つのIPで(何分待っても)1回しか投票できないってことですか?
うーん、よくわからないです

460:nobodyさん
12/01/07 19:59:52.15
>>459
>1つのIPで(何分待っても)1回しか投票できないってことですか?
そう
もし何回でも投票可能にしたいならまた他の方法になる

いずれにしても1レコードを不特定多数ユーザーでupdateかける設計はウンコなのでそこは考えなおす
そんな設計してたらオレならリストラ候補の先頭に登録しとく

461:nobodyさん
12/01/07 20:11:43.08
仕様の打ち合わせからとかw

462:nobodyさん
12/01/07 20:39:54.59
どうせだから最強のアクセスカウンタ作ろうぜ
攻性防壁付きでステマをゲイツ砲で火達磨にしようぜ

463:nobodyさん
12/01/07 20:41:38.53
正確にカウントするには、取得できたIPだけの判定ではダメ。
携帯やプロキシやモデム再起動に対応しないと同じ人が何度も投稿できる。

464:nobodyさん
12/01/07 20:43:16.13
>>459
ルータ再起動でアドレス変わるから何度でも投票できます

465:nobodyさん
12/01/07 20:49:07.13
大阪市長選やAKB総選挙など不正が一大事になるようなものに対応できるようにするんだ。
IDとパスワードで認証すれば1度しかできないことは確定するが、そういう手間の掛かる認証はないの方向で。

466:nobodyさん
12/01/07 21:00:48.87
>>465
選挙だと同じ回線で複数の有権者の投票が考えられる たとえば2世帯住宅とか
IDパスワードより手軽というと生体認証となる が インフラ整備が大変そう
今 生体認証の変換で思いついたんだが VoIPで声帯認証ってどうだろか

467:nobodyさん
12/01/07 21:08:38.36
馬鹿の考え休むに似たり
認証うんぬん言ってる奴は他所でやれ

468:nobodyさん
12/01/07 21:31:52.64
だな

469:nobodyさん
12/01/07 21:34:52.36
おい>>450 おまえがIP認証のコードなんか書くから>>467が怒ってるぞ ちゃんとあやまっとけよ

470:nobodyさん
12/01/07 21:59:58.40
IPアドレス

471:nobodyさん
12/01/07 22:01:22.84
PHPer、レベル低くっ!
なんだこのスレ。

472:nobodyさん
12/01/07 22:01:37.59
>>455を利用して、プロキシチェックとアクセス数のカウントしてみた。

サイト
URLリンク(gogomo.site90.net)
ソース
URLリンク(ideone.com)

473:nobodyさん
12/01/07 22:18:10.36
また人生詰んだプログラマにもなれなかったおっさんが一人で暴れてるな

474:nobodyさん
12/01/07 22:18:31.53
>>472はここの公開プロキシを判定できずすり抜けてしまったよ。

URLリンク(www.cybersyndrome.net)

475:nobodyさん
12/01/07 22:29:20.11
ここも抜けられた。直IPとは違ってるから設定ミスはない。


URLリンク(taruo.net)
総合評価:?(A 以上 or 生 IP。下記参照) 疑惑 0%:proxy の兆候は全く見られません。


URLリンク(fula.jp)
総合判定 直接アクセスされているか、プロクシなら匿名での接続を確認しました。プロクシの可能性は低いです。

476:nobodyさん
12/01/07 22:34:40.92
2chのプロキシチェッカーは強力だった。突破できず。この精度まで持って行けないと不正を防げないなあ。


ERROR:公開PROXYからの投稿は受け付けていません!!

477:nobodyさん
12/01/07 22:39:41.39
>>449
>>433

478:nobodyさん
12/01/07 22:40:59.21
mixiとかの、ページがグーグル、ヤフーなどの検索サービスで
引っかからない仕様はphpっでどうやるのですか?

479:nobodyさん
12/01/07 22:42:14.56
ロボットにクロールさせない命令出してるか、ログイン必須サイト。

480:nobodyさん
12/01/07 22:46:10.95
BBQ使えば

481:nobodyさん
12/01/07 22:48:27.79
2chのチェッカーって一般人も使えるのか。今知った。

482:nobodyさん
12/01/07 22:48:37.01 qev3DgRj
abstractとinterfaceとtraitはどんな風に使い分ければいいですか?

483:nobodyさん
12/01/07 23:10:52.85
niku.2ch.netか
2shレベルの串規制だと簡単な投票には使えそうだな

484:nobodyさん
12/01/07 23:11:07.59
>>482
全然違うもんだろ。基礎勉強すれ。

485:nobodyさん
12/01/07 23:11:50.13
レベル低すぎ。

486:nobodyさん
12/01/07 23:18:01.62
>>484
分かんないならレスしないでもらえます?

487:nobodyさん
12/01/07 23:19:40.32
キーワードでしか語れないニートのオッサンか。
具体的に細かいとこ突っ込んだらすぐにボロを出して、顔真っ赤にして釣り宣言して逃亡するのがオチだろ。

488:nobodyさん
12/01/07 23:37:41.72
おっさんはそろそろブログでやるといいと思うぞ
もしかしたらファンがつくかもよ
アフィ貼ったら収入に!

もしくは早めに諦めて吊ったほうがいい

489:nobodyさん
12/01/08 00:47:02.84
>>482
class と interface は型の定義手段
abstract class と trait は差分プログラミングという名の手抜き手段の一つ

490:nobodyさん
12/01/08 00:52:14.60 5w8ZM1Tv
capthca 使うとかですかね?

491:nobodyさん
12/01/08 00:53:12.04 5w8ZM1Tv
captchaだった。。。

492:nobodyさん
12/01/08 11:20:03.75 phv4PYdF
PHPでアプリケーションスコープはどのように実装すればよろしいでしょうか?

493:nobodyさん
12/01/08 13:14:37.31
あきた

494:nobodyさん
12/01/08 13:27:05.48
無限ループってこわいよね

495:nobodyさん
12/01/08 13:40:15.60
まぁもうそろそろ吊る予定だろうから最期くらい多少好きにさせてあげなよ

496:nobodyさん
12/01/08 15:39:24.13
なんだこのスレ。

497:nobodyさん
12/01/08 17:49:54.61
何故動かないんだ、っとよく見たら$が抜けてる。
変数に$つけるのって忘れない? php歴2年目のオレが言ってみる。

498:nobodyさん
12/01/08 18:16:51.26
ASやJS弄った後にPHP使うとたまに忘れる

499:nobodyさん
12/01/08 18:54:15.86
変数の後ろに$付けちゃうことない?

500:nobodyさん
12/01/08 19:06:00.92
$this->$dataみたいに余計に$つけてエラーになる

501:nobodyさん
12/01/08 19:46:27.97
>>489
abstractとinterfaceの具体的な使い分けはどうしてますか?
実装が書きたかったらabstractっていうのはあまりにもアレなので
哲学とまでは言いませんが、確固たる理由をつけて使い分けたいんです

502:nobodyさん
12/01/08 19:49:55.78
確固たる理由が2chのカキコとかw

503:nobodyさん
12/01/08 20:09:47.40
>>502
分かんないならレスしないでもらえます?

504:nobodyさん
12/01/08 20:16:41.16
>>501
>>1

505:nobodyさん
12/01/08 22:55:18.22
PHPでできないことはJavaでできる
JavaでできないことはPHPでできる
一長一短だな

506:nobodyさん
12/01/08 23:48:20.26
PHPでできることはJavaでもできる
JavaでできることはPHPではできないかもしれない

507:nobodyさん
12/01/08 23:54:20.13
>>506
Javaってインタプリタで動作させることできるん?


508:nobodyさん
12/01/08 23:56:40.83
JavaでPHPは実装できる。
PHPでJavaは実装できない。

509:nobodyさん
12/01/09 00:04:39.31
>>507
できないJavaの完敗です


510:nobodyさん
12/01/09 00:07:08.56
>>507
当たり前だが、
Javaで実装されたPHPで可能。
最終的にJavaのクラスに変換されるので
ちょっと違うがmod_phpよりも早いよ。

511:nobodyさん
12/01/09 00:58:52.24
なんだこのスレ。バカばっかり。

512:nobodyさん
12/01/09 01:04:55.75
>>510
えっその理屈でいくとphpでもjava実装できるじゃん


513:nobodyさん
12/01/09 01:14:15.07
>>512
Javaで実装されたPHPはすでにあるから。

Quercus
URLリンク(www.caucho.com)

WordPressなんかで試してみたら?

とかJavaで実装されることは別に珍しい話じゃないと思うけど。
PHPで実装された言語は知らないけど、
Javaで実装された言語だったら他にもあるじゃん。
JRubyとかJython、Rhinoとか。


514:nobodyさん
12/01/09 01:17:33.12
phpだろうがJavaだろうがどうでもいいけど、
変な対抗意識を持つ前に両方を
経験してみたらいいかがだろうか?

515:nobodyさん
12/01/09 01:18:12.56
そもそもJavaで実装されたphpはphpそのものじゃん
Java と PHP そのものでできる・できないの話なのに

516:nobodyさん
12/01/09 01:20:20.67
>>512

こっちに詳しく書いてあるから、勉強してね。
URLリンク(quercus.caucho.com)

517:nobodyさん
12/01/09 01:23:11.79
>>515
変なこと書いているけど
Javaで実装されたphpではJavaとして最終的に動く。

メリットは以下のとおり(公式サイトより)。
Security: since Quercus and its modules are entirely in Java, C pointer overruns and segmentation violations are no longer possible.
Scalability: PHP programs can take advantage of distributed sessions in PHP and load balancing.
Performance: Quercus outperforms a straight mod_php implementation by about 4x (for Mediawiki and Drupal). Quercus roughly matches PHP performance with accelerators like APC.
Caching: PHP applications using Quercus can immediately take advantage of Resin's proxy caching. They can also use the PHP APC caching API since the APC functions are included with Quercus.
Connection pooling, transactions, JMS: PHP programs using Quercus automatically take advantage of Resin's connection pooling, and can use the full distributation transactions, and Java capabilities like JMS.
Java tools: PHP developers can use Java tools like profilers to get in-depth information about the PHP program performance.



518:nobodyさん
12/01/09 01:27:24.62
>>515
PHPはC言語やJavaで実装されているわけでしょ?
ということはPHPでできることはCやJavaでできるでしょ?
逆は無理の場合が多いことは想像つくでしょ?

519:nobodyさん
12/01/09 01:30:44.14
>>518
少ないの間違いね。

逆は無理の場合が多いことは想像つくでしょ?

520:nobodyさん
12/01/09 01:36:42.65
>>515
横レスで悪いが、
たとえば、PHPはC言語で実装されているのに、
PHPはC言語よりも優れているのですか?実装元よりも優れるのですか?
便宜上優れることはあってもパフォーマンスで優れることはないよ。

521:nobodyさん
12/01/09 01:40:05.31
そんなこと言ったらアセンブリ/Cが最強って話になるじゃん

522:nobodyさん
12/01/09 01:45:46.42
>>521
パフォーマンス上はマシン語が最高です。

>>515
C言語で実装されたPHPでC言語を実装し、
PHPで実装されたC言語でPHPを実装する・・・無限ループ
最高か?wwww

やっぱりこのスレ、次元低すぎ。

523:nobodyさん
12/01/09 01:47:48.94
>>521
当たり前やん。

524:nobodyさん
12/01/09 02:00:28.99
phpがjavaに劣ってるならこんなに普及しないさ
perl/phpが普及したのには理由がある





525:nobodyさん
12/01/09 02:08:44.11
すなわちその理由がjavaにできないこと

526:nobodyさん
12/01/09 02:09:01.17
>>512
あなたの一生涯をかけてphpでJavaを実装します?
C言語で実装されたphpでJava仮想マシンとJava言語を構築、
phpで構築されたJava仮想マシン上でJavaで実装されたphpが動き、
Java仮想マシン上で動くphpでさらにJava仮想マシンを動かすわけですか。
またmod_phpとしてAndroidやユニバーサルなV2CやEclipseみたいな
デスクトップアプリまでとして動いちゃったりするんですか?

>>524
それはすべてのプログラミング言語に当てはまるから議論にならない。
でなきゃすべてマシン語で書けということになる。

いや愉快だな。

527:nobodyさん
12/01/09 02:11:31.73
多言語覚えれば変な対抗心をなくなる。
こんな議論は時間のムダ。

528:nobodyさん
12/01/09 02:12:57.81
で結局javaはインタプリタで動かせるの?
phpのソースではなくjavaのソースをね


529:nobodyさん
12/01/09 02:14:01.78
インタプリタが実現できるならjava普及してるわ
できねえからwebでは普及してない

530:nobodyさん
12/01/09 02:18:14.84
>>528
意味不明だが、
PHPのソースは自動的にJavaに変換される。
またPHPとJavaのソースを混在させることもできる。
あなたがいうインタプリタのメリットは知らないけど、
Java上で動くPHPをためしに使ってみればいいのでは?
その感想を聞かせてくれ。WordPressとかすぐにできるでしょ?
がんばれよ。

531:nobodyさん
12/01/09 02:20:20.32
>>530
つまりjavaそのものはインタプリタ無理なのね

532:nobodyさん
12/01/09 02:21:21.28
>>529
簡単に配備できるという意味でPHPの方がは一般的なwebでは普及してるよ。
ただ、インタプリタのメリットなんだよ。容易にプログラムが書ける、
簡単に配備できるくらいか?

ただ俺の主張は>>527。双方できれば問題ないし、目くじら立てる必要ない。

533:nobodyさん
12/01/09 02:27:07.16
>>531
横レスで申し訳ないが、
インタプリタの処理速度はコンパイラ方式よりも遅いから、
それは特徴ではあるが実装コスト以外にメリットにはならないよ・・・・。

534:nobodyさん
12/01/09 02:27:59.03
>>532
俺の主張は>>505
あとは>>506にたいして言ってるだけ



535:nobodyさん
12/01/09 02:35:20.40
>>528
再度横レスで申し訳ないが、それ愚問だから。

「で結局C言語はインタプリタで動かせるの?
phpのソースではなくC言語のソースをね」

と同じ意味で変だよ。
phpはC言語やJavaで実装されるのにその言い方はないのでは?

536:nobodyさん
12/01/09 02:51:49.24
>>505-536
スレチ

Java VS PHP
スレリンク(php板)

537:nobodyさん
12/01/09 02:51:57.19
自転車置場の議論とはよく言ったもんだ

538:nobodyさん
12/01/09 02:57:30.55
>>535
インタプリタ自体否定するなら速度の話も出すべきじゃないよね
phpもコンパイルできるけどさ後は何を比較するのよ


539:nobodyさん
12/01/09 03:01:47.38
javaアプレットでflash作れますか?

540:nobodyさん
12/01/09 03:20:39.79
PHPの場合「Web特化」という特性があるから
JavaでいうJSPやサーブレットのような一部の機能しか言語として提供されていない
ゆえにJavaで出来ることはPHPでは出来ない「かもしれない」

541:nobodyさん
12/01/09 06:25:12.84
>>539
なぜそれをPHPスレで聞く?

542:nobodyさん
12/01/09 10:50:51.24
>>539
正確にいうとjavaでflashは作れる。
flexコンパイラはjavaだからwww

543:nobodyさん
12/01/09 10:58:42.33
この板の人たち、
一つの言語にこだわるひと多いね。
複数できればどうでもいいことにいつまでもグチグチ。

PHPの場合は「Web特化」だから
たぶんそれだと先はないよ。

544:nobodyさん
12/01/09 11:14:23.75
>>538
Javaプラットフォームでインタプリタを使いたいなら、
以下から選んください。

Groovy
URLリンク(ja.wikipedia.org)

jRubyという選択肢もあり、
URLリンク(ja.wikipedia.org)

Jythonという選択肢もあり、
URLリンク(ja.wikipedia.org)

Quercus(PHP)もある。
URLリンク(www.caucho.com)

545:nobodyさん
12/01/09 11:20:52.66
いい加減スレ違いだと気付け

546:nobodyさん
12/01/09 11:26:55.06
スルーできない残念な人ばかり

547:nobodyさん
12/01/09 11:34:19.45
>>543
たかがひとつの言語如きに先など無くてもいいのに、
無いと困るだろって思うのを、言語にこだわるというんだよ。

548:nobodyさん
12/01/09 12:06:17.06
ドヤ顔でwikipediaのせちゃって低学歴だとバレたねw

549:nobodyさん
12/01/09 12:06:54.27
多分高卒か専門卒の子なんだろうなぁ

550:nobodyさん
12/01/09 12:07:28.35
>>547
Web特化だから他にはできないでしょ?そういう意味。

551:nobodyさん
12/01/09 12:19:05.77 bsExuDph
配列やchrを使わずにforで回してaからzまでアルファベットを生成できる方法を教えてください
たしか↓みたいな書き方で出来た覚えがあるんですが書き方忘れました
for ($i='a'; $i<'z'; $i++) echo $a;

552:nobodyさん
12/01/09 12:19:47.72 bsExuDph
自己解決
変数名がおかしくて動かなかっただけだった

553:nobodyさん
12/01/09 12:57:43.10
>>539
>>542

おもろい。


554:nobodyさん
12/01/09 14:27:21.52 7f0AwpQn
安藤優子、木村太郎は、某プロパイダの社外取締役、かつ、安藤は、フジ社外の人間にもかかわらず、フジテレビジョンのM&Aの最中、フジのホワイトナ
イトの【親会社】の本業を無視して、「インターネットは虚業だ。具体性がない
。」というようなことをコメントしました。この虚業は、livedoorを指していた
としても、「同業者」であったということは、非常に、違和感を感じずには、い
られません。

555:nobodyさん
12/01/09 17:05:12.94
さぁ冬休みも今日でおしまいですよ

556:nobodyさん
12/01/09 18:22:21.45 IGqUpTKq
exitとdieって同じ働きってphpマニュアルに載ってました、
みささんはどっちを使ってますか?

557:nobodyさん
12/01/09 18:23:58.57
dieはexitのエイリアス
joinがimplodeのエイリアスみたいなもん
どちらかといえばオリジナル使え

558:美佐
12/01/09 18:24:11.49
あたしはexit派よ

559:nobodyさん
12/01/09 18:31:34.53
>>476
2chのは、疑わしきは通さずで、公開proxyじゃなくても通さなかった。

560:nobodyさん
12/01/09 18:33:25.70
無知は怖い。

561:nobodyさん
12/01/09 19:41:08.39
>>559
そうだったとしても、2chのチェッカー通せば多くの広告やスパムをはじけて良いと思う。

562:nobodyさん
12/01/10 00:05:10.49
アプリケーションサーバーはどんなもの使ってらっしゃいますか?

563:nobodyさん
12/01/10 00:06:30.20
>>1

564:nobodyさん
12/01/10 00:35:57.99 OfX0eCZx
sshってphpは関係あるのですか?

565:nobodyさん
12/01/10 00:37:38.41
関係ありません

566:562
12/01/10 02:01:24.77
>>563
【OS名】CentOS 5.6
【PHPのバージョン】5.3.8
【連携ソフトウェア】
Apache Http Server 2.2
MySQL Community Server 5.5.19

567:nobodyさん
12/01/10 02:25:09.67
>>1

568:562
12/01/10 03:15:44.30 5jaiW7yr
>>567


>>562

569:nobodyさん
12/01/10 03:20:22.76
◆質問する時の注意
・ 質問者として、態度をわきまえること。

570:562
12/01/10 03:22:55.62 5jaiW7yr
>>569

大変失礼いたしました。
教えて下さいませんか?

571:nobodyさん
12/01/10 03:26:33.03
PHPにアプリケーションサーバは不要ですし使ってないですよ

572:562
12/01/10 03:27:09.50 5jaiW7yr
>>571
なぜ不要ですか?

573:nobodyさん
12/01/10 03:29:52.42
Apacheにモジュールとして組み込まれてますので

574:nobodyさん
12/01/10 03:31:45.86 5jaiW7yr
zendのところ存在意義は何でしょうか?

575:nobodyさん
12/01/10 06:40:02.10
>>535
Cのインタプリタって割と最近どっかのスレで見たと思う。

576:nobodyさん
12/01/10 06:46:36.93
>>574
Windowsに対するMicrosoftの存在意義を問うているの?

577:nobodyさん
12/01/10 09:12:23.38 5jaiW7yr
>>576

すいません。
>>574はZend Serverを意味してました。

578:nobodyさん
12/01/10 11:48:47.01
ニートのオッサン何やってんだ。
相変わらず支離滅裂な事言っちゃって。
家に引きこもってないで早く病院行けよ。

579:nobodyさん
12/01/10 15:33:30.34
Zendのサーバー、誰か使っている人はいませんか?

580:nobodyさん
12/01/10 16:01:26.75
>>577
まとまってるところじゃないかな。あとはもしかするとGUI

>>579
別の人?
その質問でどうしたいのか

581:349
12/01/10 16:06:05.01
>>349 です。
非同期ページ、PHPから取得することができました。
並列ダウンロードしながらそれぞれにプログレスバーなんかつけてみたりして完璧です。
ググっても全然出てこない情報なので結構必要とする人が多い解決方法になったと思いますが
ここに書くとまた反応されそうなんでお礼だけ。ありがとうございました。

582:nobodyさん
12/01/10 16:14:23.40
>>581
ああ、おつかれさん。
スルースキルと、感情的になりすぎるのに気をつけるといいと思うよ。

583:nobodyさん
12/01/10 16:21:07.06 HU7fZVh4
フォームにてページ間を移動しようとしてsessionを使用しようと思いました
まず例えばpage1にて$_SESSION['aaa'} = $_POST['aaa']のようにしました
次に、page2へ行く場合に
$_SESSION['aaa']を保持したままで$aaa = $_SESSION['aaa']とするのがいいのか、
それとも、page1からpage2へ送る際に、<input type="hidden" name="aaa" value="$_SESSION['aaa']"/>のように
いったんフォーム内に値を入れてからpage2のスクリプト内でまた$aaa = $_POST['aaa']のようにした方がいいのでしょうか?

やってることは同じだとは思うのですが、例えばフォーム移行中にエラーが出たり、ブラウザの戻るなどにて意図しない
挙動をされた際に最初の方法だと問題が発生するかなとも思ったもので

すみませんがアドバイス頂けないでしょうか?

584:nobodyさん
12/01/10 16:23:21.05
フォームに値を入れるんなら、セッション使う意味がないじゃない。

585:nobodyさん
12/01/10 16:33:08.57
何がやりたのかさっぱりわからん

page1 <-> page2
でフォームの値を維持したまま行き来したいってこと?

まずブラウザのバックボタンでは「有効期限切れ」ってのが発生する
これの解決方法はややこしいので説明しない

で、ページ内に戻るボタンを設置して行き来させるならそのまま$_POSTを引き回せばいい
前のページの値はhiddenに入れておいてもいいしsessionが良ければsession使ってもいい
session使った場合に$_POSTと同期させる方法は代入なりなんなり好きなようにやればいい

586:nobodyさん
12/01/10 19:10:58.95
もうこのスレでお世話にならなくても解決できる力が身に付きました
これも皆様のア辛口による熱血指導の賜物です
卒業式は3月にやりますのでよろしくお願いします

587:リボンちゃん
12/01/10 19:45:37.78 cS2s7PkD
phpについて、困っています。

掲示板等で、$dateを使って日付を表示させているのですが、
特殊な事情があって、過去14日よりも前のものだった場合、
表示は10日前で表示したいのです。
簡単な記述方法があれば、教えていただけると助かります。
よろしくお願いします m(_ _)m

例:1月1日投稿されたもの→5日に閲覧した場合は、そのまま投稿日時は1月1日。20日に閲覧すると投稿日時は1月10日で表示される。



588:nobodyさん
12/01/10 20:01:42.81
>>587
$date = 書き込んだ日;
$date = mktime($date);
$now = time();
$date = $now - $date > 60*60*24*10 ? 10 : $date;


589:nobodyさん
12/01/10 20:02:28.76
あ、ごめん、最後の行読んでなかった

590:nobodyさん
12/01/10 20:03:08.26
>>587
$dateってただの変数じゃん
これでどうかな
<?php
$posted_str = "2011/12/26"; //投稿日
$posted = strtotime($posted_str);
$now = time();
$date_format = "Y/m/d";

$posted_disp = $posted<($now-(60*60*24*15)) ? ($now-(60*60*24*10)) : $posted;

print "今日:".date($date_format)."<br />
元投稿日:".date($date_format,$posted)."<br />
表示投稿日:".date($date_format,$posted_disp);

591:nobodyさん
12/01/10 20:03:29.35
あ、ごめん、よく読み直したら全然ちがったw

592:590
12/01/10 20:14:05.38
>>588,589591 は違う人

593:nobodyさん
12/01/10 20:28:04.95
回答も含めて色々ひどいな

$post_date // これを投稿日時だとする(UNIXTIME)
$limit = 60 * 60 * 24 * 14; // 期限14日前とする

if($_SERVER['REQUEST_TIME'] - $post_date > $limit) {
$post_date -= 60 * 60 * 24 * 10;
}

echo date('Y-m-d', $post_date);

594:587
12/01/10 21:08:57.11
皆さん、レスありがとうございます!
すごい助かります!

60 * 60 * 24 * 10 の10は10日前という数字だとわかりますが、
他の数字60,60,24 の意味を教えていただけると勉強になります。
よろしくお願いしますm(_ _)m


595:nobodyさん
12/01/10 21:16:12.68
60 * 60 * 24 = 1日
1秒をかけてる

596:nobodyさん
12/01/10 21:17:14.75
>>593
$_SERVERは使うな!!!!!!!!!!!!!!!
getenvを使えっ!!!!!!!!!!!!!!!!!!!!

597:nobodyさん
12/01/10 21:17:39.58
60秒 * 60分 * 24時間 = 1日


598:nobodyさん
12/01/10 21:28:09.69
>>596
公開するプログラムでもあるまいに、
自分の環境チェックもしないやつになっちまうだろ。

599:nobodyさん
12/01/10 21:34:28.20 HU7fZVh4
データベースをPDOにてプレースホルダを利用し、変更したいのですが、質問させてください
カラム名がaaa、bbb、cccとして、
その内の一つ、または複数の値を変更するような場合にはどのように記述すればいいのでしょうか?

マニュアルなどを見ると、VALUESのようにデータベースに与える値をプレースホルダに割り当てるのは分かるのですが、
自分は値だけでなく、カラム名にも変数を割り当てたいのです
prepare('UPDATE table SET $name = :name WHERE $url = :url')のような型です
まさかprepare('UPDATE table SET :name1 = :name2 WHERE :url1 = :url2')のような型にはできないでしょうし
この場合、どのように記述すればいいのでしょうか?

600:nobodyさん
12/01/10 21:34:55.57
>>596
は?その根拠は?
おまえENVの意味もわかってないだろどうせ

601:nobodyさん
12/01/10 21:37:15.54
>>599
SQLごとに作れ

602:nobodyさん
12/01/10 21:39:00.09
>>599
普通に
UPDATE table SET col1=? WHERE col2=?
でいいんじゃねーの
カラム名に変数割り当てるなら上を
"UPDATE table SET {$col1}=? WHERE {$col2}=?"
すりゃいいじゃん

603:587
12/01/10 22:25:58.95
みなさんレスありがとうございます。
とても助かります!

とりあえず593の$post_dateを$dateに変えて記述してみたのですが、
$limit = 60 * 60 * 24 * 14; // 期限14日前とする
の行でエラーが出てしまいます。

最終的に表示させたい場所に
echo date('Y-m-d', $post_date);
を書けばいいという認識であっていますか??
初歩的すぎて、すいませんが、よろしくお願いします。



604:nobodyさん
12/01/10 22:33:03.94
>>603
その行でいきなりエラーはないだろw
投稿日時はどうやって受け取って、どういう形式で保存してんの?
例)2012/01/10、とか、2012-01-10、とか、1326121200、とか。

605:nobodyさん
12/01/10 22:33:49.35
>$limit = 60 * 60 * 24 * 14; // 期限14日前とする
>の行でエラーが出てしまいます。

んなアホな
違うところだろ

>最終的に表示させたい場所に
>echo date('Y-m-d', $post_date);

しらんがな
どんなソースになってるのかもわからんし

606:nobodyさん
12/01/10 22:40:12.89
>>600
ggrks

607:nobodyさん
12/01/10 22:42:27.44
>>603
$dateの中身を書きなさい

608:nobodyさん
12/01/10 22:49:22.50
素人相手に偉そうに語るのがこのスレです。

609:nobodyさん
12/01/10 22:49:50.87 DbdGI1rD
【OS名】CentOS 5.5
【PHPのバージョン】5.2.17
【連携ソフトウェア】MySQL GD
【質問内容】
GDの機能を使って画像を作成して、データベースに入れていくのですが、
imagepng()とかで画像をファイルに保存したり、ブラウザに出したりしますよね?
これの出力結果を直接文字列として変数に格納したいのですが、どうすればよいでしょうか?
$data = imagepng()とかも試してみましたが、trueしか返ってきませんでした。

610:587
12/01/10 22:52:45.04
ありがとうございます。
すいません、違うところのエラーですか。(^^;


メールで投稿する形式の掲示板で、メールサーバーに
投稿記事を取りに行くphpには、以下のように記載されています。
※日付は1323413498等という形で保存されています。

// 日付の袖しつ
eregi("Date:[ \t]*([^\r\n]+)", $head, $datereg);
$now = strtotime($datereg[1]);
if ($now == -1) $now = time();

呼び出すphpの冒頭にはには
$date = date("y/m/d", $ptime);
とだけ書かれています。
最終的には、$dateと書いたところに日時が表示されています。


611:nobodyさん
12/01/10 22:54:19.13 DbdGI1rD
自己れす。下記で行けそうです。
ob_start();
imagepng($resource);
$data = ob_get_contents();
ob_end_clean();

612:nobodyさん
12/01/10 22:56:28.46
>>609
ヒント:base64_encode

>>610
もうここで聞く以前の学習を
>$date = date("y/m/d", $ptime);
$ptimeには何が入ってるの?すでにUNIXTIMEが入ってるなら
$date = $ptime;
でいいよ、代入する意味ないけど

613:nobodyさん
12/01/11 00:11:45.44
>>610
dateとstrtotimeは使うな
datetimeを使え

614:nobodyさん
12/01/11 00:23:58.10
ついに使うな厨も登場したか

615:nobodyさん
12/01/11 00:26:28.08 dfPHpXiU
phpにおける分散オブジェクトについて語りましょう!

616:nobodyさん
12/01/11 00:29:05.90
>>615
スレリンク(php板)

617:nobodyさん
12/01/11 00:35:11.26 dfPHpXiU
さあ、分散オブジェクトについて語りましょう!

618:nobodyさん
12/01/11 00:37:35.15 dfPHpXiU
>>616
PHPの分散オブジェクト技術にはどのようなものがありますか?

619:nobodyさん
12/01/11 00:41:39.74
荒らし認定

620:nobodyさん
12/01/11 12:55:49.06 eyRErrPB
aaa.example.comとbbb.example.comで同じセッションを使いたいのですが、
php.iniで session.cookie_domain = ".example.com" を指定してもうまくいきません。
また、.phpの中で直接設定しようと以下のようにテストしたんですがやはりうまくいきません
(aaaとbbbを変更するとセッション値がカラになる)

//session_set.php
ini_set("session.cookie_domain", ".example.com");
session_start();
$_SESSION['animal'] = "cat";
echo "animal>>>";
echo $_SESSION['animal'];

//session_check.php この.phpをaaa.example.comとbbb.example.comで確認する
ini_set("session.cookie_domain", ".example.com");
session_start();
echo "animal>>>";
echo $_SESSION['animal'];

何が原因でしょうか?
php.iniで他に何か設定しなきゃいけないのでしょうか。
ご意見よろしくお願いします

621:nobodyさん
12/01/11 13:00:09.61
>>620
ドメインが違うんだから無理。
それでセッション引き回しできたら、ハッキングやりほうだい

622:nobodyさん
12/01/11 13:15:03.58
>無いが原因でしょうか?
マニュアルを読まないのが原因です

623:nobodyさん
12/01/11 13:27:59.44 eyRErrPB
>>621
ありがとうございます
URLリンク(php.net)
を見てるんですが、
「すべてのサブドメインでクッキーを有効にしたい場合は、先頭にドットをつけて '.php.net' のようにします。」
とあるようにサブドメインの変更までなら対応できるのではないですか?

624:nobodyさん
12/01/11 13:30:15.06
URLリンク(d.hatena.ne.jp)

625:nobodyさん
12/01/11 13:36:51.45
>>624
そのブログの設定ファイルがphp.iniより優先するということでしょうか
実はちょうど今session_set_cookie_params();で対応できたんですが
そちらの勉強もしてみます
ありがとうございました

626:nobodyさん
12/01/11 13:44:43.70
>>621
へぇ

627:nobodyさん
12/01/11 14:07:42.61 VbJoExbW
質問させてください
皆さんはPHPにて「並行処理」をしたい場合、どのようにされていますでしょうか?
自分がやりたいのは、あるスクリプトがあり、それを引数(設定値)だけを変えて
決められた時間の間隔にて(sleep()等を使って)繰り返し、大量に(少なくとも20位)かつ”同時に”実行したいと思っております
子プロセスの同期は必要ないと思います
ファイルをコピーして、各スクリプト毎に設定値を書いて・・・って言うのは現実的ではないので
データベースなどからリストを取得して、その設定値を使ってそれぞれを同時に実行したいと思っております
(fwrite()などで、設定毎にスクリプトを作成していこうかとも考えましたが・・・)

しかし色々考えたのですが、全然いいアイデアが浮かんできません
このような場合、どのようにすればいいのでしょうか?

628:nobodyさん
12/01/11 14:08:07.06 VbJoExbW
pcntl_fork()という関数があるという事は知ったのですが、これを使った場合もどのように実装すればいいのかいまいち分かりません
$list = array(~DBからの設定値~);
$pid = pcntl_fork();
if ($pid == -1) {
die('ダメ');
} else if ($pid) {
pcntl_wait($status);
} else { //子プロセス
foreach(~$list~)とかイテレータ{
system()とか
}
}
上記のようにforeach()で回してしまうと、設定値を読み込んだ順に実行されていくので
普通のイテレータ使ったスクリプトと同じで、並列処理にはならないように思います
それともforeach()をif()の外で回して配列に格納しておいて、$iという数字をインクリメント
した後に子プロセス内にてfor()にて一気にsystem($list[$i])等で実行すればいいのでしょうか?

>>627のような実装をしたい場合に何かアドバイスを頂けないでしょうか?

629:nobodyさん
12/01/11 14:20:29.14
並列させたい分だけforkすりゃいいだろ

630:nobodyさん
12/01/11 15:00:30.88

foreach ( $list ... ) {
if ( ($pid = pcntl_fork()) === 0 ) {
子でやりたいこと
exit(0);//終わる
} else if ($pid == -1) die("x");
}

//親での処理(終わるの待つとか)




631:nobodyさん
12/01/11 15:07:26.35
>>627
並列処理したい処理をもうちっと具体的にくれ

632:nobodyさん
12/01/11 15:25:25.54 VbJoExbW
皆さん、返答ありがとうございます

自分のやりたい事とは少し違いますが、説明が簡単な例としては、Googleのクローラなんかがあると思います
データをどういう手法か分かりませんが、初期のものでも1サーバに300ものクローラを使っていたとの事です

クローラは動き回っているので考え方が違うかもしれませんが、例えば自社や関連会社のデータなど固定されたターゲットの場合はcronなどで定期的に訪問出来るでしょうが、
それらの設定値をいちいちファイルに記述するのも大変なので、それぞれの場所にてデータを取得するためのxPathなど設定値リストを読み込んで、
スクリプトにて一気に並行処理にて自動的に行う、という事をやりたいと考えております

ただ、アクセスし続けるのも相手側に付加がかかるので、各スクリプトの訪問間隔を大きい相手は5分、小さい相手は1時間などにしたいと考えております

また、それらのデータを正常に取得したら、その瞬間に今度はそのデータを解析・整形するようなスクリプトを起動させたいと考えております

以上の点にて宜しくお願いいたします

633:nobodyさん
12/01/11 16:03:46.74
いまいち何をやりたいかわからんが
取得先が大量にあって直列処理だと時間がかかりすぎるしそれぞれ取得設定を書くのもめんどいから
並列にしたいってことでおk?
ならcURLのマルチ使って、設定値をdbなどから引っ張ってきてから
回しながらcallbackなんかをうまく設定して一気にゴー、で行けるんじゃないか。
やりたいことと違っていたならすまん。
参照:URLリンク(techblog.ecstudio.jp)


634:nobodyさん
12/01/11 16:19:22.57
>>632
Webのクローラーはデータ取得に暇がかかるのが明白だから並列処理するのが当たり前のアプローチ

635:nobodyさん
12/01/11 16:46:00.24
あえてクローラーをPHPで作ることもないだろ。
PHPは標準で並列処理できない仕様だ。
並列処理できる言語、並列処理できるソフトを使って保存してから
PHPでそこにアクセスしたら良い。

636:nobodyさん
12/01/11 16:58:01.39
しかしcurlだけは標準でダウンロードが完了してなくても処理が帰ってくるから擬似的には並列処理できるな。
通信だけは並列にできるいうことだが。クローラーはパフォーマンスを落とさずに、並列処理可能な言語・ツールに並べる可能性はある。

637:nobodyさん
12/01/11 17:09:13.29
ここで適切なアドバイスしても、馬鹿には無理だろ。


638:nobodyさん
12/01/11 17:40:57.15
返事なくなっちゃったね。

639:nobodyさん
12/01/11 17:43:06.65
スレリンク(linux板:427番)
のコンパイルは結局うまくいったのか?

640:nobodyさん
12/01/11 18:11:13.28
>>630 じゃだめなん?

641:nobodyさん
12/01/11 18:17:50.79
よくわからないから無視したんだろw

642:nobodyさん
12/01/11 19:03:57.60
質問してしっぱなしかよ・・・

643:nobodyさん
12/01/11 19:05:55.41
いつも質問答えてる側の奴らから難易度高めの問題がほしい

644:超難問!
12/01/11 19:10:37.65
>>643が彼女をつくるにはどうしたらいいでしょうか?

645:nobodyさん
12/01/11 19:31:49.93
彼女(笑)

646:nobodyさん
12/01/11 20:04:08.13
$list = array("清美", "里子", "友恵", "友里", "とめ", "愛子", "雅子", ...... );
for ($i = 0; >>643の心が折れるまで; $i++) {
$result[] = kokuhaku($list[$i]);
}
if ($result == NULL){
die("まだ2次元がある");
}

647:nobodyさん
12/01/11 20:48:30.27 tHZDD+V0
質問です

hoge.txtというテキストファイルがありまして

100バイトの文字列\n
100バイトの文字列\n
100バイトの文字列\n



と500行ある500KBののテキストファイルがあるとします
このファイルから
「499行目と500行目」

「1行目と2行目」
だけを取り出すとき、サーバーの負荷は
両方1~500行の文字を取り出すときとほぼ同じ負荷でしょうか?

648:nobodyさん
12/01/11 20:50:49.28
>>643

501 :nobodyさん:2012/01/08(日) 19:46:27.97 ID:???
>>489
abstractとinterfaceの具体的な使い分けはどうしてますか?
実装が書きたかったらabstractっていうのはあまりにもアレなので
哲学とまでは言いませんが、確固たる理由をつけて使い分けたいんです

649:nobodyさん
12/01/11 20:52:56.46
読み方に依るだろ。
読み込む位置が確定していたら、シークするだけの違いしかなく負荷に大差ないが。
改行位置の判定からやっていたら後ろの方が手間掛かる。

650:nobodyさん
12/01/11 21:08:42.58
一般的には常識とされている、
 真実は一つだけ
 怒りは自然な感情
 戦争・テロは無くならない
 死刑には殺人の抑止力がある
 虐められる側にも虐めの原因がある
 自己チューな人間ほど自己愛が強い
などの間違いを解説中
感情自己責任論

651:nobodyさん
12/01/11 21:13:42.02 tHZDD+V0
>>649
という事はどんなやり方でも最低でも500KBかかってしまうという事でしょうか?
200バイト(2行分)程度だけで住む方法ないかなーと思ってたのですが

652:nobodyさん
12/01/11 21:34:41.86
固定長なら200バイトだけで済むだろ。

653:nobodyさん
12/01/11 22:26:31.01
>>649はちょっと読み間違いをしているね。
> 「499行目と500行目」
> 「1行目と2行目」
この二つの負荷には大差がないといっているんだろう。

本来の質問であるところの、
> 1~500行の文字を取り出すとき
との負荷には大きな差があるよ。

固定長じゃない場合は、最後の2行を得るのが少し面倒だけど。

654:nobodyさん
12/01/11 22:33:40.13
500行のロードと、2行のみロードでは負荷に違いがある。

655:nobodyさん
12/01/11 22:33:46.01
実験してみればいいじゃん

656:nobodyさん
12/01/11 22:45:01.77
500Kくらいたいした事で無い。
fileで全行読み込んでも良いよ。
そこがボトルネックになってから改良したら良い。

657:nobodyさん
12/01/11 22:47:30.54
全ての箇所で低リソースを目指していたら手間が掛かって進まない。
一応動くやつを作ってから速度測定して、
全体の中で時間掛かっているところに手を加えれば良い。

658:nobodyさん
12/01/11 23:02:44.07 tHZDD+V0
ごめんなさい、1~500行の文字を取り出すと比べて
「499行目と500行目」「1行目と2行目」この二つは差があるのでしょうか?という質問でした
説明不十分で申し訳ないです

やっぱりテキストファイルを固定長形式にするしか無いですかね?
この場合
100バイトの文字列
2Kバイトの文字列
4バイトの文字列

となった場合、全部2KBになって500行あったら1Mになってしまうので避けてたのですが

659:nobodyさん
12/01/11 23:06:53.90
理解不可能ですが。
全て(1~500行)のロードと2行のみでは負荷は違う。
可変長だったらindexをファイルの後方か先頭に配置して必要なところを読めば速いです。

660:nobodyさん
12/01/11 23:16:37.71
ファイルサイズがでかくて全読込をさけたいなら、データベースにいれとけよ。
そしたらメモリ管理など気にしなくて済むしキャッシュなども自動で使ってくれる

661:nobodyさん
12/01/11 23:39:54.74 GX2tXR1t
PHPとAsp.netってどう違うんですか?

662:nobodyさん
12/01/11 23:50:01.97 VbJoExbW
>>633-642
すみません、今まで色々試しにやってて返事が遅くなりました
URLリンク(ja.wikipedia.org)を参照に
#!/usr/local/bin/php -q
<?php
$pid = pcntl_fork();
if ($pid == 0) {
$j;
for ($j=0; $j < 10; $j++) {
printf("child: %d\n", $j);
sleep(1);
}
} else if($pid > 0) {
$i;
for ($i=0; $i < 10; $i++) {
printf("parent: %d\n", $i);
sleep(1);
}
print "wait begin.\n";
pcntl_wait($status);
print "wait end.\n";
} else {
die('fork できません');
}としました

663:nobodyさん
12/01/11 23:50:43.62 VbJoExbW
ただ、結果が
child: 0
child: 1
child: 2
child: 3
child: 4
child: 5
child: 6
child: 7
child: 8
child: 9
parent: 0
parent: 1
parent: 2
parent: 3
parent: 4
parent: 5
parent: 6
parent: 7
parent: 8
parent: 9
wait begin.
wait end.
のようになってparentがwikipediaのようにchildの間に入っておりません
"出力の順序はカーネルが決定する"とは書かれていますが、PHPではこのようなものなのでしょうか?

学習不足で申し訳ないです

664:nobodyさん
12/01/12 01:50:16.25
>>662
なぜPHPを使っているのですか?

665:nobodyさん
12/01/12 02:58:10.26 KRgm5yh1
やっぱりphpでは並列無理ぽ。

666:nobodyさん
12/01/12 03:08:54.02
ニートおっさんには無理

667:nobodyさん
12/01/12 03:25:30.76
>>662
そのコードでできたよ。

child: 0
parent: 0
child: 1
parent: 1
child: 2
parent: 2
(略)
child: 8
parent: 8
child: 9
parent: 9
wait begin.
wait end.

668:nobodyさん
12/01/12 03:39:54.92
>>667
できてない。

669:nobodyさん
12/01/12 03:43:15.46
並列と分散はPHPの泣きどころ。

670:nobodyさん
12/01/12 03:52:56.74
かろうじて並列できても実用性は全くないことに気づけよ

671:nobodyさん
12/01/12 04:51:39.62
同じやつが同じ話題を繰り返してるんだな

672:nobodyさん
12/01/12 05:35:36.73
>>668
どういうこと?

673:nobodyさん
12/01/12 10:36:29.57
>>663
これって実行には何秒かかったんだろ。

674:nobodyさん
12/01/12 12:24:55.33
>>664 >>665 >>668 >>669 >>670 は並列処理を理解できてない馬鹿。

675:nobodyさん
12/01/12 12:27:31.97
>>667
>>663
実行環境(カーネル)の違いでプロセスの優先度が変わるのかな?

676:nobodyさん
12/01/12 13:02:25.38
PHPにはpcntl_forkというプロセスをフォーク(複製)することが
できる関数がありますが、これはPHPをCGIモードで
動かしている場合にのみ有効です。
通常はPHPをApacheモジュールとして動作させていることが
多いので、これが使えないケースが多々あります。
URLリンク(techblog.ecstudio.jp)

677:nobodyさん
12/01/12 13:15:01.92
っていうか、何でPHPで作ることにこだわってんだ?
Perlで良いじゃん。

678:nobodyさん
12/01/12 13:19:01.14
>>676
pcntl_fork関数は存在するし、forkも成功したように見えるけど、並列処理されないなんて結果になるということですか

679:nobodyさん
12/01/12 14:01:06.08
ちなみに俺も>>662やってみた
俺は並列処理の事なんか分かっていないので、このやり方で合っているか分からないけれど
<?phpの後に、$time = time();
最終行に、echo 'time:' . (time() - $time) . 'sec' . PHP_EOL;を付けてみた

2chの改行規制で出力形式変えるけど結果は
child: 0 child: 1 child: 2
child: 3 child: 4 child: 5
child: 6 child: 7 child: 8
child: 9
time:10sec
parent: 0 parent: 1 parent: 2
parent: 3 parent: 4 parent: 5
parent: 6 parent: 7 parent: 8
parent: 9
wait begin.
wait end.
time:10sec
となった

>>676
URLリンク(www.php.net)
にはCLI版も可能って書いてるんじゃないの?

>>675
ちなみに自分はcentOSです

680:nobodyさん
12/01/12 14:01:29.80 QAUYYhrI
phpとmysqlでカウンターが作りたいのですが
書き込むときの排他制御はどのようにやるのでしょうか?

681:nobodyさん
12/01/12 14:01:52.50
>>676
CLIでも使えるよね?

682:nobodyさん
12/01/12 14:02:25.17
もういい加減ニートのおっさんは飽きた

683:679
12/01/12 14:02:52.80
書き忘れたけど、この出力結果みると並列処理ってされてない・・・んだよね?

684:nobodyさん
12/01/12 14:10:41.80
基本的にはマルチスレッドはサポートされてないだろ。
レンタルサーバーとかでは。
自宅で一人で使う目的だったらマルチスレッドをONにしてコンパイルすればいい。
しかしソースコードに汎用性が無くなる。
Curlをつかっとけ。5.3か5.2から標準で並列に使える。

685:nobodyさん
12/01/12 14:15:13.44
forkだからマルチスレッドの話ではないでしょ。

686:nobodyさん
12/01/12 14:16:07.48
PHPがサポートするプロセス制御機能は、デフォルトでは有効となってい ません。
プロセス制御機能を有効にするには、 configure のオプションに --enable-pcntl を付け、
CGI 版あるいは CLI 版の PHP をコンパイルする必要があります。
注意: 現在、このモジュールは非 Unix 環境(Windows)では動作しません。
URLリンク(www.php.net)

687:nobodyさん
12/01/12 14:18:28.39
>>686
何が言いたいの。

688:679
12/01/12 14:27:53.78
>>682には悪いけど、俺にはせっかくの機会だから色々試してみた
>>662
if ($pid == 0) {
system('php forkc1.php');
system('php forkc2.php');
}
に変えて、それぞれに
<?php
$time = time();
$i;
for ($i=0; $i < 10; $i++) {
printf("child1: %d\n", $i);
sleep(1);
}
echo 'c1-time:' . (time() - $time) . 'sec' . PHP_EOL;
のように書いた


689:nobodyさん
12/01/12 14:28:15.56
実行結果は
c1: 0 c1: 1 c1: 2 c1: 3 c1: 4 c1: 5 c1: 6 c1: 7 c1: 8 c1: 9
c1-time:10sec
c2: 0 c2: 1 c2: 2 c2: 3 c2: 4 c2: 5 c2: 6 c2: 7 c2: 8 c2: 9
c2-time:10sec
p-time:20sec
parent: 0 parent: 1 parent: 2 parent: 3 parent: 4 parent: 5 parent: 6 parent: 7 parent: 8 parent: 9
wait begin. wait end.
p-time:20sec
となった
で、実際の時計を見ていたら、20秒後に表示された

system('php forkc3.php');
も加えたら実際の時計では30秒後に表示された
これってどういうこと?
並列処理されていないってことだよね?

690:nobodyさん
12/01/12 14:30:51.41
なんでそんなトンチンカンなことが平気で言えるのか
system('php forkc1.php');
system('php forkc2.php');

この時点で気付けよ

691:nobodyさん
12/01/12 14:36:08.80
ん?
30秒かかるのは当たり前か・・・笑
>>679は10秒で済んでるから親プロセスと子プロセスはちゃんと並列処理されてるってことだね
自分の>>688の書き方が悪いだけか

この流れの話は、親プロセスから子プロセスを複数作成し、それを同時に実行
つまり3つの子プロセスがあれば4つとも10秒後に終わらせるということだよね?
となると実装法が思いつかないけど、pcntl_fork()っていうのを3回呼び出せばいいってことじゃないかな?

分からん

692:nobodyさん
12/01/12 14:37:16.69
>>690
ごめん、投稿した後すぐに気がついた(苦笑

693:nobodyさん
12/01/12 14:54:03.86
>>686
>>678

694:nobodyさん
12/01/12 14:56:29.29
>>691
system('php forkc1.php &');
と、バックグラウンドプロセスにすればよろしい。
プロセスの終了待ち処理を入れる必要があるけど。

695:nobodyさん
12/01/12 15:05:23.27
>>694
なるほど
実はまだ挑戦してて(笑
一度やり始めたら意地でもとなってしまってw

$pid[$i] = pcntl_fork();等と複数回呼び出して、
その後system()を呼び出すとかやってみたのですが30秒かかったりで

バックグラウンドプロセスという発想はなかったです
今から外に出ないといけないんですが、最後にちょっと試してみます

696:nobodyさん
12/01/12 15:10:13.69
>>694
アハハ、今>>688のコードにて
if ($pid == 0) {
system('php forkc1.php &');
system('php forkc2.php &');
system('php forkc3.php &');
}
としましたが
今度は31秒かかってしまいましたw
どこがおかしいのか分かりませんが、また帰ってからやってみます

697:nobodyさん
12/01/12 15:17:35.81
時間のムダ。

698:nobodyさん
12/01/12 15:23:17.54
pcntl_fork()の話してんのになんでsystem()になってんの。

699:nobodyさん
12/01/12 15:29:16.52
アホですから

700:nobodyさん
12/01/12 15:30:19.76
>>696
アハハ、なんで標準出力捨てないの

701:nobodyさん
12/01/12 15:31:28.10
>>698
たぶん>>686のWindowsでは動かないというのをみたからじゃないのかな。
ほんとに動かないか知らないけど

702:nobodyさん
12/01/12 15:50:09.93 at33kcZ9
ちょっとしたポータルサイトや、管理機能付きサイトを作るとき、
CMSを使うか、フレームワーク使うかどっちがよろしいですかね・・・。

703:nobodyさん
12/01/12 16:55:38.26
>>702
その文章だけを読んで「ちょっとしたポータルサイト」がどれほどの規模のものを指しているのか
わかる人は少ないだろう

704:nobodyさん
12/01/12 17:15:27.45
ヤフーくらい

705:nobodyさん
12/01/12 17:19:26.21
>>702
自分がやりやすい方でいいんじゃないすか。

706:nobodyさん
12/01/12 17:30:43.50
どっちも使えるようになるまで時間かかる
どっちも詳しくない私は
使わない方がやりやすい。

707:nobodyさん
12/01/12 17:42:30.00
PHPが出来るならWPはすぐに使えると思うが

708:nobodyさん
12/01/12 20:44:35.20
そもそもなんでこのスレで質問するのか

709:nobodyさん
12/01/12 20:59:53.31
確かに、なんでここで聞いたの?

710:nobodyさん
12/01/12 21:35:47.31
質問するスレだろ何が駄目なんだ

711:nobodyさん
12/01/12 21:41:21.83
>>710
>>1

712:nobodyさん
12/01/12 21:42:14.04
CMSを使うかフレームワークを使うかっていう質問はここじゃねぇと思うが

713:nobodyさん
12/01/12 21:43:04.05
質問するスレすらわからん馬鹿はポータルサイトなんか作れんよ

714:nobodyさん
12/01/12 22:20:03.29
PHPのフレームワークスレって確かあったよな

715:679
12/01/12 22:21:38.91
ギブ・・・
俺には自力では無理でした

>>699の言うようにアホですな
プログラム板にでも行ってきます

716:nobodyさん
12/01/12 22:29:06.06
>>697
なんで人の質問を俺がやってるのか分からんが、それが出来たら楽に処理できるような事も
出てくるかなと思ってやってみたんだけど

>>698
いや、だって引数とって一気に別ファイルのスクリプト実行するんでしょ?
system()じゃないの?

>>700
ごめんどういうこと?
$php fork-test.php > /dev/null
とかってこと?
同時に実行されていくということは
c1:0
c2:0
c1:1
c2:1
のように出てくるのかなとか思ってたんだけど違うん?

717:nobodyさん
12/01/12 22:31:19.98
>>716
バックグラウンドプロセスの標準出力を捨てろってこと。

718:nobodyさん
12/01/12 22:36:09.30
>>716
一気に別ファイルのスクリプトを実行するのにforkではダメだと思った理由を書いてみ

719:nobodyさん
12/01/12 22:48:45.79
>>718
ごめん、分かりませんw
forkって子プロセスを作成->親プロセスは待機->子プロセス終了->親プロセス実行
って動作だよね?
で、子プロセスは親プロセスのコピーであると
だから元々親プロセスの時点で実行されていたり、格納していた変数の値とかは子プロセスも保持していると

ま、自分の分からない所は子プロセスを複数作成するにはPHPだとpcntl_fork()をその回数実行すると
ただ、自分がやったのでは
$pid1=pcntl_fork();
$pid2=pcntl_fork();
それぞれにて上記のようなfor()を使うと一緒に実行されるんじゃなくて、直列(逐次)処理になってて「う~ん」と

別ファイルのスクリプトを実行するのにPCNTL関数内にそんな感じの関数もないし、
データベースなどから設定値を取得してきて、そこから得てきたそれぞれの設定値を渡すとなると
system()かなと考えて・・・

例えばどんな風に書けばいいんですかね?


720:nobodyさん
12/01/12 22:50:08.98
>>719
大前提がおかしい
>>667

721:nobodyさん
12/01/12 22:54:57.73
>>719
ちなみに>>662におけるsleepをタイムスライス放棄のみのコードに変更した場合の出力結果例はこんな感じ。
child1: 0
parent: 0
parent: 1
child1: 1
parent: 2
parent: 3
child1: 2
parent: 4
parent: 5
child1: 3
parent: 6
child1: 4
parent: 7
child1: 5
parent: 8
child1: 6
parent: 9
wait begin.
child1: 7
child1: 8
child1: 9
wait end.

あとID出せよカス

722:nobodyさん
12/01/12 23:11:37.74 QxDXzJq0
タイムスライス放棄のみのコードって何だと思いググってました(苦笑
sleep(-1)ってのが出てきましたがこれの事ですかね?

俺は>>667のようにはならないんですが、OSは何ですか?
つまり、>>662のようなfor()文使った場合は、子プロセス->親プロセス->子プロセス->親プロセス->
という挙動をすると言うことですか?

しかし俺全然だめだなぁ・・・

723:nobodyさん
12/01/12 23:45:38.66
phpファイルで、以下のようにjava scriptのファイルを読み込んでいるのですが、
<script type="text/javascript" src="test.js">

test.jsを変更しても反映されないことがあります。
ブラウザがキャッシュか何かをしているのでしょうか?
回避策とかありましたらご教授お願いします。


724:nobodyさん
12/01/12 23:49:13.05
>>723
日付が変わってればキャッシュを破棄しそうなもんだけど。
プロキシ的なものが挟まってたりしない?
一応試せることとしては、たとえばIEならCtrl+F5ですべて再読み込みする

725:nobodyさん
12/01/12 23:52:16.83
>>723
ブラウザ特有の現象かもしれないから後でちゃんと自分で調べるとして
とりあえずそういう時は応急処置にファイル名に適当な文字列を追加するもんだ

echo '<script type="text/javascript" src="test.js?' . md5(microtime(true)) . '">';

726:nobodyさん
12/01/13 00:05:03.08
なんでmd5かけるの?

727:nobodyさん
12/01/13 00:11:52.36
バカだからに決まってるじゃん

728:nobodyさん
12/01/13 00:29:29.21
ドットが入るのが嫌だっただけ
かけたくないならかけなくていい

729:nobodyさん
12/01/13 00:33:49.01
ドット・・・?

730:nobodyさん
12/01/13 00:36:37.67
小数点

731:nobodyさん
12/01/13 00:37:36.05
くだらんとこに突っ込むなよバカども

732:nobodyさん
12/01/13 01:00:13.01
しかしまぁ俺プログラマーとか言って
>>725みたいなクソコード書いてるのもひどい話だな

733:nobodyさん
12/01/13 01:16:41.96
言ってることは間違ってないけどこれはないな
>echo '<script type="text/javascript" src="test.js?' . md5(microtime(true)) . '">';

time()とかuniqid()で事足りる
>md5(microtime(true))
ない

734: 忍法帖【Lv=8,xxxP】
12/01/13 01:22:37.06


735:nobodyさん
12/01/13 01:43:03.96
>適当な文字列を追加する
これが実現できればなんでもいいだろ
何を拘ってるんだ?パフォーマンス?(笑)
そんなミジンコみたいなところでケチつけるなレスの無駄使い

736:nobodyさん
12/01/13 01:48:42.10
しょうがないだろミジンコしかいないんだから

URLリンク(stackoverflow.com)

737:nobodyさん
12/01/13 02:15:09.35
>>733
> time()とかuniqid()で事足りる
えっ

> >md5(microtime(true))
> ない
こっちの方がまだマシ

738:nobodyさん
12/01/13 02:18:26.75
必死だなw

739:nobodyさん
12/01/13 02:22:50.77
特定ユーザに対してユニークであればいいんだから、ミリセカンド精度で事足りると思うよ。

>>738みたいな意味のないレスをする人がどう考えてるのかさっぱりわからんけど。

740:nobodyさん
12/01/13 02:28:45.64
そんなに悔しかったか ごめんよw

741:nobodyさん
12/01/13 02:30:22.51
必死すぎw

742:nobodyさん
12/01/13 02:31:28.69
理解できる範囲の話になったとたん沸くやつってなんなの

743:nobodyさん
12/01/13 02:34:35.61
…ねないの?

744:nobodyさん
12/01/13 02:43:41.18
なんでPHPでするのか不思議。

745:nobodyさん
12/01/13 02:45:27.34
>>742
全くだな
自分につっこむ機会があると思うと頑張ってつっかかってきちゃうやつワロスwwww
上級者からすればそんなこまけーこたぁどうでもいいんだよって感じだがな

746:nobodyさん
12/01/13 02:47:04.65
ニートのおっさんだろどうせ糞コード晒してんのは
上級者()
早く吊れよ

747:nobodyさん
12/01/13 02:51:11.50 KkkOzRWt
NATポートマッピングを自動でやる方法を教えてください。
Bitcometみたいに。

748:nobodyさん
12/01/13 03:12:53.61
PHP使ってるって言ったら
ヴォエエエエエエ ブヒョー コーヒー吹かれた

749:nobodyさん
12/01/13 03:14:54.14
>>747
uPnPってわけでもなさそうにみえるが、NAPTを自動でやりたいってこと?
なら、ネットワーク越しに操作できるルータを手に入れる必要がありそう。
そんな話じゃないよ!ってことならBitcometの動作をもっとよく見ること。

750:nobodyさん
12/01/13 03:15:41.52
ニートのおっさんだろどうせ煽ってんのは
低級者乙
早く吊れよ

751:nobodyさん
12/01/13 03:23:44.99
おっさんだってPHPでできなさそうなことを考えるのに必死なんだよ

752:nobodyさん
12/01/13 03:25:36.98
forkの人はム板に行って静かになった。彼に説明する人が他にもっといればよかったのに

753:nobodyさん
12/01/13 03:32:16.25
PHPで並行処理wwwwwwwwwwwwwwwwwwwwwwwwwwww。
無理ぽ。

754:nobodyさん
12/01/13 03:32:56.22
最近あれだな>>747みたいなやつ多いな
同一人物だとは思うけど
俺が課題出してやるから解決してみろ的な
ほんと消えてくれないかな

755:nobodyさん
12/01/13 03:37:04.13
>>753
forkとストリームソケット使えばどうにかなるだろ
てか少し前にそれ系のレスあるから読んでみ

756:755
12/01/13 03:40:02.10
>>753
補足だけど、5.1系のセマフォがバグありだったから気をつけて。
いまさらあえて5.1使うこともないだろうけど、割と最近のRHELまでは5.1系だった気がするので遭遇することもあるかもしれない

757:nobodyさん
12/01/13 03:52:09.82
>>755
あなたの言うように、
forkとストリームソケット使えば「遊び程度」ではどうにかなるだろうね。

しかし、商売用には素直にマルチドレッド言語を使ったほうがいい。
デフォルトで並行できるので開発スピードとパフォーマンスが
「圧倒的に」優れる。forkくんの質問と回答のあまりの馬鹿馬鹿しさに
気持ち悪い。

758:nobodyさん
12/01/13 04:15:10.88
PHPで並行処理が無理だというから、それの返事だったんだが、並行処理はできるけど遊び程度だという風に話をずらされても困る

パフォーマンスについてはまったくもってそのとおり。ただ、それらを同じ土俵にあげること自体が間違えているよね。
開発スピードについては比較対象に依存する。マルチプロセス処理を記述する場合に圧倒的に開発スピードが優れる言語は何?
マルチスレッド言語とやらが何を指しているのかわからないが、たとえばCLRで提供されているワーカースレッドのようなものを指している?

ちょっと内容が漠然としているように思うよ。

759:nobodyさん
12/01/13 09:09:47.21
当たり前話を、ドヤ顔で言ってて恥ずかしくない上に、気持ち悪いとか言ってる人がいるよ。

760:nobodyさん
12/01/13 09:19:15.93
phpでできないこともあるんだね~。

761:nobodyさん
12/01/13 09:21:03.11 1Ih2hdXs
新規にポータルサイトを開発しようと思ってます。
管理機能とかもついてます。
作成の仕方として以下の3つの方法が浮かびました。

フレームワークを使って作成する。(codeigniter)
CMSを使って作成する。(MT or WP)
フレームワークにCMSプラグインを入れて作成する。

どれがいいでしょうか?


762:nobodyさん
12/01/13 09:21:55.46
好きにしろ

763:nobodyさん
12/01/13 11:33:36.37
CMSは非プログラマ向けで、FWはプログラマ向けなだけなの。
悩むほどの話じゃないし、どれつかえばいいかえらべないならけんさくしていちばんうえつかえばいいだけ

764:nobodyさん
12/01/13 13:32:56.37
>>757


765:587
12/01/13 16:04:33.77
皆さんレス、本当にありがとうございます。
しばらく勉強して、なんとか14日以前の日付を10日前で表示するところまで辿り着いてきましたが、なぜか1969年になってしまいます。。

$ptimeはUNIXTIMEではなく1323413498等という数字が入っているのですが、
これを一度UNIXTIMEにするには、どのように記述すればいいでしょうか?
ここがうまくいけば、なんとかなりそうです。
よろしくお願いしますm(_ _)m


↓年だけおかしくなっている現状です。
$post_date = date("y/m/d", $ptime);
$limit = 60 * 60 * 24 * 14; // 過去14日よりも前のものだった場合、
if($_SERVER['REQUEST_TIME'] - $post_date > $limit) {
$post_date -= 60 * 60 * 24 * 10; // 表示は10日前の日付にする。
}
$date = date(y/'m/d', $post_date);

※$dateで表示させています。


766:587
12/01/13 16:09:06.03

すいません、よく確認したら、表示されている日付が20日ぐらい前になっていました(^^;
とりあえず$ptimeはUNIXTIMEにすれば解決できるのかと思います。
度々すいませんが、よろしくお願いします。。

767:nobodyさん
12/01/13 16:20:08.93
なんか面倒な事してるな
俺はこっち使ってる

strtotime("- 10 day",time())

768:nobodyさん
12/01/13 16:32:32.90
12日前のは12日前と表示されることになるだろうけど、それも含めて特殊な事情?

769:765
12/01/13 17:03:53.19
はい、特殊な事情で、13日以前は、そのままで大丈夫なんです。(^_^)

770:765
12/01/13 17:05:44.03
>>767
その記述だと、全体的にかわりますか??(^_^;)


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch