12/01/05 03:17:13.41
>>211
代替案を出せなかったら>>211がウンコだなwwww
214:nobodyさん
12/01/05 03:19:25.31
>>211
さあ、どうでるか。ヒヒヒwwww。
215:nobodyさん
12/01/05 03:23:45.71
なるほど、つれなかったときはこうなるのか…
216:nobodyさん
12/01/05 03:24:40.47
>>211
「おかしなコードを書くことを助長する言語」
by まつもとゆきひろ
ヒヒヒwwww。
217:nobodyさん
12/01/05 03:25:36.35
>>211
なんでおかしなコードになるんでしょうか?
ヒヒヒwwww。
218:nobodyさん
12/01/05 03:25:37.26
>>212>>213>>214
そうあわてんなって。
こんなウンコみたいな設計で動いてるサイトの詳細ってお前らも知りたくないか?
本人が来たら詳しく聞いてみようぜ。
219:nobodyさん
12/01/05 03:26:40.76
>>218
もういいから早く代替案を答えて。
ヒヒヒwwww。
220:nobodyさん
12/01/05 03:27:43.85
>>218
ねぇ、質問していい?
なんどfacebookって今C++になったの?
ヒヒヒwwww。
221:nobodyさん
12/01/05 03:28:57.55
>>215
そういいながら、釣られたお前。
ヒヒヒwwww。
222:nobodyさん
12/01/05 03:30:09.30
>>211
代替案まだ?
ヒヒヒwwww。
223:nobodyさん
12/01/05 03:33:34.93
こりゃ、だめだ。
レベル低すぎ。
224:nobodyさん
12/01/05 03:38:42.21
>211
「PHPはおかしなコードを助長する言語」
同意だよね。ヒヒヒwwww。
225:nobodyさん
12/01/05 03:39:35.00
>>220
facebookってCじゃなくてC++採用したんだ?
226:nobodyさん
12/01/05 03:41:49.18
>>225
HipHop for PHP
言語の選択に間違えたfacebookの苦肉の策。
227:nobodyさん
12/01/05 03:43:26.68
>>211
ねぇ、まだ?
228:nobodyさん
12/01/05 03:46:05.91
>>226
あらあらなるほど
ちゃっちゃと作る分にはPHPは楽だからな。
人が集まった時点で作り直せばよかったんだろうけどなぁ。
229:nobodyさん
12/01/05 03:47:09.77
って、それ自体がfacebookの成果物だったんだな。
無知ですまんかった。
230:nobodyさん
12/01/05 03:50:18.84
>>226
そんなわけがわからないものを作るよりは
初めからC++で作っとけば良かったんだ。
HipHopにしてもネイティブのC++に比べると
オーバヘッドがあるわけでムダだよね。
231:nobodyさん
12/01/05 03:56:56.20
>>230
まったくだな
まあこっちのほうが遙かにわけわからないけどねw
>>203
>>204
>>208
232:nobodyさん
12/01/05 03:58:28.05
>>230
C++で作ったからといって、1000ユニークアクセスに対して1000DBアクセスが発生しなくなるわけじゃあないからな。
なんの工夫もなしにそれは変わることはない
233:nobodyさん
12/01/05 04:44:02.06
すげー自演だなw
234:nobodyさん
12/01/05 04:50:42.28
自演としても成立してないよ
HipHopはPHPの開発ツールとしての優位性が強まる、つまり「PHP最強だろ!」って話だからね
PHP憎しで完全に狂ってるけど、はたから見ると面白い
235:nobodyさん
12/01/05 08:46:23.61
>211
もういいから早く代替案を答えて。
236:nobodyさん
12/01/05 08:57:14.69
>>234
C++で作ったからといって、1000ユニークアクセスに対して1000DBアクセスが発生しなくなるわけじゃあないのに、
なぜHipHopで「PHP最強だろ!」になるのですか?
237:nobodyさん
12/01/05 09:06:53.72
>>232
PHPってそんなこともできないの?
238:nobodyさん
12/01/05 09:14:31.17
一人で一生懸命ごくろうさん
よく死にたくならないなと感心するよ
239:nobodyさん
12/01/05 09:22:13.73
>>238
もういいから早く代替案を答えて。
240:nobodyさん
12/01/05 11:42:14.54 ACIe1UJA
標準関数を自分で定義したものに置き換える方法ありませんか。
241:nobodyさん
12/01/05 11:48:53.94
PHPのソース書き換えてビルドかな
じゃなければmyTrim()とかmyPhpinfo()みたいにプレフィックスでも付けて差別化するしかない
242:nobodyさん
12/01/05 11:55:13.54 ACIe1UJA
ソース書き換えなしで不具合の出る関数の動作を修正したかったのですが。
PHPコードからではできないですか。
諦めて別名でやってみます。
243:nobodyさん
12/01/05 12:05:52.58
>>230
それはC/C++ソースをコンパイル時にアセンブラ出力して書き換えるようなもの。
無駄をなくすとすれば機械語、アセンブラにたどり着く。
しかし開発効率からそのあたりには手を出さず、PHPやC/C++のコードの範囲でできる事をした方が良い。
244:nobodyさん
12/01/05 12:15:28.46
いま荒らしてる人ってMatzを「まともと」「まともと」って言ってた人か
Matzも知らないから素人なんだろうと思ってたけど納得だわ>>218
facebook級のサイトのを運営してるSEというなりきり設定がワロタ
PHPの高速化に HipHop vs APC てのがあるみたいだけど
現時点でほとんど性能は変わらないようだし安定性の面でAPCに軍配が上がるのかな。
サクッと作って高速で動かすという技術はPHPが先を行ってる感じ
URLリンク(blog.candycane.jp)
URLリンク(dsas.blog.klab.org)
245:nobodyさん
12/01/05 12:28:51.85
HIPHOPの実行ファイルはPHP上で動くんじゃないだろ。
どれだけPHPが高速化できたとしても、リソースの少なさ、速度の速さではネイティブ実行形式が上だろ。
246:nobodyさん
12/01/05 12:43:16.59 WqkweKyi
結局のところ、アプリケーションスコープの代替ってみなさんどうされています?
247:nobodyさん
12/01/05 12:50:18.95
ニートが目覚めたな
248:nobodyさん
12/01/05 12:52:26.30
いい歳して可哀想なもんやで
249:nobodyさん
12/01/05 12:57:19.29
Javaで挫折したニートのオッサンだろう
シングルトン・マルチスレッド・アプリケーションスコープ、全部理解してないからな
250:nobodyさん
12/01/05 13:02:42.94
まぁプログラマーはここにいるおっさんのように池沼になるリスクをはらんでるよな
精神病むには最適な職種と言える
251:nobodyさん
12/01/05 14:48:43.61 r8xFdMd/
配列のキー指定で
$ary[expr1 ? expr2 : expr3]ってしたとき
expr3の結果を$ary[]にする方法ってないよね
ちなみにnullや''は空文字列で[]とは違う
252:nobodyさん
12/01/05 14:56:30.73 FPSYlk7p
あるソースを読んでいる中で
class SQLというのがありまして
function getRecord($limit = NULL, $offset = 0) {
if ($limit) return array_slice($this->record, $offset, $limit);
else return $this->record;
}
というファンクションがあったんですが、
$this->record;のrecordが何を指しているかがわかりません。
recordてもともとPHPに用意されているファンクションなんでしょうか?
253:nobodyさん
12/01/05 14:57:37.19
だれか翻訳頼む
254:nobodyさん
12/01/05 14:58:56.94
class SQLのメンバ
255:nobodyさん
12/01/05 15:09:18.10
$this->の時点で気付こうよ
256:nobodyさん
12/01/05 15:09:19.83
一回PHPのクラスで何が出来るか勉強してくるべき
257:nobodyさん
12/01/05 15:20:05.60
クラスを知らないか、理解していない人の相談なんです。
258:nobodyさん
12/01/05 15:22:06.79 FPSYlk7p
すみません。クラスをちゃんと理解していませんでした
class SQLの中にrecordというファンクションがなかったので
もともと用意されている何かだとおもったのですが
ググってもでてこなかったので聞いてみました。
まだよくわかっていないのでちょっとクラスについて調べてきます
259:nobodyさん
12/01/05 15:25:35.51 yQXwn+vl
DBを使ったサービス作るんだけど、
DB操作しやすいライブラリとかでおすすめないかな?
プログラム自体は大したことないのに、
テーブルやらカラムやらを大量に作らなきゃいけない予定なんで、
SQLで書くのめんどくさいから、
ソースコードだけで片付くものを探してるとこなんだけど
260:nobodyさん
12/01/05 15:26:13.26
もっと頭を柔らかくしようよ
$this->recordが必ずしもファンクションとは限らないのにファンクションと決めつけてるだろ
そんなことだといつまでも謎のままだぞ
>if ($limit) return array_slice($this->record, $offset, $limit);
これ見たらあー配列なんだなってわかるし
つーことは、名前からしても$this->recordにはどこかでSELECTの結果かなにかを配列としてセットしてるメンバだとわかるだろう
261:nobodyさん
12/01/05 15:26:51.23
>>258
recordというデータメンバもないですか。
親クラスがあればそちらにも
262:252
12/01/05 15:29:33.28 FPSYlk7p
class SQL {
private $count = 0;
private $host = "localhost";
private $error = null;
protected $link = null;
protected $record = null;
function connect() {
$this->link = mysql_connect($this->host, "???", "?????");
if (!$this->link) return false;
if (!mysql_select_db('recnomi', $this->link)) return false;
return true;
}
function disconnect() {
mysql_close($this->link);
}
function getRecord($limit = NULL, $offset = 0) {
if ($limit) return array_slice($this->record, $offset, $limit);
else return $this->record;
}
263:nobodyさん
12/01/05 15:30:55.18
>>259
そーゆーことならフレームワークのスレへ
ただSQL書かないで最適なクエリを発行することはまず無理だと思う
DB抽象化ライブラリがインデックスまで把握して最適なクエリを発行してくれるものがあればオレも欲しい
264:252
12/01/05 15:31:28.29 FPSYlk7p
ソースは262なんですけど
5行目のprotected $record = null
で定義しているからしたで使えているということなんですか?;
265:nobodyさん
12/01/05 15:31:53.77
>>262
>protected $record = null;
メンバとして定義されてるじゃん
266:nobodyさん
12/01/05 15:33:04.94
>>264
まぁいい
とりあえずクラスってなぁに?どう使えてどう動くの?ってことを30日間勉強して
267:252
12/01/05 15:35:46.96 FPSYlk7p
そうですか。。。
$this->recordでrecordに$がついてなかったので
ファンクションだと思ってました。。
勉強してきます
268:nobodyさん
12/01/05 15:36:05.47
>>263
了解
おもしろそうだから、一回自作できるか挑戦して、それでもダメだったらどこかのFW探してみます
269:nobodyさん
12/01/05 15:38:38.34
>>268
使う機能だけを関数化すればよい。
SQLはコマンドラインでも動作する。難しければそこからやってみてそのあとPHPにするというのもある。
270:nobodyさん
12/01/05 15:44:23.54
>>269
何言ってるのこのひと
すごく的外れ
271:252
12/01/05 15:45:28.44 FPSYlk7p
すみません。最後に一個ききたいんですが
5行目のprotected $record = nullでは配列が入っていないとおもうんですが
recordには配列はどうやって入れているのでしょうか?
272:nobodyさん
12/01/05 15:50:04.64
$this->recordやrecordでソースを検索したら代入しているところが出てくる。
273:262
12/01/05 15:51:51.85 FPSYlk7p
ありがとうございます。もう一度調べてみます
274:nobodyさん
12/01/05 16:09:56.66
$this->$recordと記述してしまうと、
$recordという変数を探して、
名無しの変数なんてねえよ。とわめいたり、
素知らぬ顔で空データ返してくれるPHPを見てると
ちょっと萌えるよね。
こんな技法滅多に使わないけど。
275:nobodyさん
12/01/05 16:19:40.25
自分でフレームワークライクなもの書いたりする場合によく使うよ
/hoge/fugaというアクセスはclass hogeのfugaメソッドを実行とかね
どんな名前でアクセスしてくるかわからないものを一箇所で処理しようと思ったら便利でしょ
276:nobodyさん
12/01/05 16:26:11.82
つか、>>262のクラスひどくね?w
>if ($limit) return array_slice($this->record, $offset, $limit);
クエリ発行時点でoffsetとlimitつけとけよ…
これごっそりレコード取って後から切り出してるだろ
とりあえずこんなクソコード捨てちまえ
277:nobodyさん
12/01/05 19:28:56.82
>>267
ファンションを呼び出すなら$this->record()って書くだろうよ
278:nobodyさん
12/01/05 19:29:38.66 m/6w1Eth
mysql_queryに、複数のクエリを;で区切って実行したところ、エラーになりました
そこでクエリごとに分けて別々に発行すればOKでした。
phpMyAdminでは;で区切ったクエリを実行できるのですが、
これはphpMyAdmin側で複数のクエリに分割して実行しているのでしょうか?
それともこちらのプログラムミスでしょうか?
279:nobodyさん
12/01/05 19:31:31.15
プログラムミス
280:nobodyさん
12/01/05 19:40:52.08
>>278
今どきただのmysql使うなんて時代後れすぎですね
mysqliを積極的に使いなさい
そして○○_query系でsqlを実行するのは今すぐやめましょう
これからは○○_prepareを使いましょう
queryでsql実行してたら業務でやってる人たちに笑われますよ
281:nobodyさん
12/01/05 19:43:07.94
とりあえずマニュアル嫁
URLリンク(www.php.net)
mysql_query() は、 ひとつのクエリを送信します (複数クエリの送信はサポートしません)。
282:nobodyさん
12/01/05 19:45:35.06
>>279
適当にいうな
>>280
ありがとうございます
>>281
クエリのパースってmysql側でやるものだと思ってたのですが
そういうものなのですか
ありがとうございました
283:nobodyさん
12/01/05 19:46:47.22
>>280の言うようにmysqliのほうが速いしなにかと捗るぞ
mysqliのmulti_queryはマルチクエリ実行できるよ
ただ得意気に
>そして○○_query系でsqlを実行するのは今すぐやめましょう
>これからは○○_prepareを使いましょう
とか言ってると笑われるから注意な
すべてケースによるから自分で最適なコーディングを探すこと
エスケープやアプリに合わせたサニタイズも考えながらやって
284:nobodyさん
12/01/05 19:47:41.25
適当だったが、Sqlite3、PDOの関数では複数行の一括処理できるが。
Sqlite2の古い関数使うからダメなんだ。
285:nobodyさん
12/01/05 19:50:55.00
>>284
何言ってるのこのひと
SQLite関係ないでしょ
PDOの話もしてないし
286:nobodyさん
12/01/05 19:53:46.88
○○_prepareはわずかに速くなるだろうが大差ない。
ボトルネックでないだったら直に送信した方がソースは短くて済む。
決定的な差になるのはトランザクション指定。
287:nobodyさん
12/01/05 19:54:50.31
ほんとだ。データベースは主にSqliteを使うからそれだけの様な気になってた。
288:nobodyさん
12/01/05 19:55:28.06
↑
バカだwwwwwwwwwwww
prepare使うのは速度のためじゃねえよwwwwwwwwwwwww
289:nobodyさん
12/01/05 19:58:19.19
だからケースによるだろう
そもそもprepareは速く実行するためのものじゃねーし
エスケープを機械的にほぼ保証してくれるから使えるところでは極力使うべき
おまえ>>269,>>284だろ
ずっと明後日の方向見ながらレスしてるぞ
知ったかぶりにも程があるぞ
290:nobodyさん
12/01/05 21:07:49.16 m/6w1Eth
mysqliについて調べ始めました
二種類のモードのうちMYSQLI_USE_RESULT
というのが、従来のmysqによる結果セットと同じなのかなと思うのですが
URLリンク(php.net)
クライアント側で 大量の処理を行う際は、mysqli_use_result() を 使用すべきではありません。
なぜなら、この関数はサーバとの接続を保持 し続け、取得しているデータに関連するテーブルについて、
他のスレッドから 更新ができなくなるからです。
と書いてありました。
これは接続が保持されている間はテーブルがロックされるということでしょうか?
結果セットはテーブルとは別の領域に作成されるのだから奇妙な処理に思えますが
どういうことなのでしょう
今までのmysql関数でも、接続が保持されている間はテーブルがロックされていたのでしょうか?
291:nobodyさん
12/01/05 21:17:34.84
>>290
これ
>バッファに取得しないで結果オブジェクトを返します。 エラー時には FALSE を返します。
バッファに取得しないってことはなんらかの方法で現状をキープする必要があるでしょ
テーブルロックしてるかどうかしらんけど、してる可能性は高いよ
だからバッファリングしてから使うべき(このメソッドはあまり使うべきではない)ってことになるんじゃね
292:nobodyさん
12/01/05 21:19:13.82
PHPのお馴染み特定厨さん降臨キタ-ーーーーーーー!
293:nobodyさん
12/01/05 21:29:46.87
>>290
ちなみに
>二種類のモードのうちMYSQLI_USE_RESULT
>というのが、従来のmysqによる結果セットと同じなのかなと思うのですが
こういう変な固定概念的なものは取り払って素直にゼロから学習しなさいな
じゃないと自分の思うようにいかないことばかりでイライラすることになるよ
一応mysqliでSELECTを投げる場合の標準的な手順だけ
1. プリペアドステートメントセット
2. クエリ実行
3. 結果オブジェクト取得
4. オブジェクトから結果(レコード)取得
概ねこんな感じ
294:nobodyさん
12/01/05 21:32:31.52
>>291
データ取得している間中ロックするとか
なんかありえない処理に思えるのですが・・・
同時に一人しか同一テーブルを読めないってことでしょう
いやありえない
mysqliがおかしいのか
今までも実はそうだったのか・・・
295:nobodyさん
12/01/05 21:35:54.28
>>294
>>293読んでね
で、他にメソッド色々あるでしょ?マニュアル熟読してみてよ
しかも読めないとは書いてないじゃん、更新できないとは書いてあるけど
イロイロと勝手にわかったフリするのは学習の妨げになるよ
296:nobodyさん
12/01/05 21:43:24.56
>>293
プリペアドステートメントを使う以外は従来と同じですね
あまり気にせず、
データが巨大な場合はmysqli_store_result
そうでない場合はmysqli_use_result
を使っておけばいいのかなぁ
297:nobodyさん
12/01/05 21:52:18.06
>>291を理解できるまで何回か読んで考えてみたら
バッファリングせずにデータを読みたい場合とバッファリングしてからデータを扱いたい場合で変わってくるでしょう
前者はクエリを投げた時の状態を固定したままにしておきたいような場合に使えるでしょう
後者は別にデータ取得直後に変更が加えられても問題ない場合に使える
通常どちらを使えば良いかは考えなくてもわかるよね
>データが巨大な場合はmysqli_store_result
>そうでない場合はmysqli_use_result
どうしてこういう考えに至ったのかオレにはわからんけど、マニュアルの読解力もしくは理解できるまで辛抱強く読む努力が必要だと思うよ
なんとなくわかった気になるのが一番マズイ
298:nobodyさん
12/01/05 22:42:32.96
…prepareは本来パフォーマンスをあげるためのものだよ。
何でもかんでも使えばいいってもんでもないけど。
299:nobodyさん
12/01/05 22:48:03.29
>>286と>>298は同一じゃん
おまえわかりやすくていいけどいい加減うぜーよ
しかもおまえ上で暴れてたニートのおっさんじゃん
300:298
12/01/05 22:51:18.40
>>299
証明ができなくてすまんが、おっさんにレスをしてた>>202とか>>232は俺ね。
301:nobodyさん
12/01/05 22:54:20.43
>>299って同一認定レスしかしてないんだろうか
302:nobodyさん
12/01/05 23:00:39.07
「PHPでは出来ないのですね、言語を切り替えます」が口癖のニートおっさんはネタさがし中じゃない?
303:nobodyさん
12/01/05 23:10:21.50
釣れる魚がいる間しか釣りをしないんだろう。
そういう意味ではおっさんの方が釣られる魚(>>289とか)より賢い。
304:nobodyさん
12/01/05 23:17:52.42
>>303
だから気づけよおっさんwww
わかりやすすぎだろw
305:nobodyさん
12/01/05 23:18:41.31
>>297
むしろあなたの方がだいぶ頓珍漢なこと言ってると思うけど・・
306:nobodyさん
12/01/05 23:19:45.77
>>304
まさかの句読点マスター?
307:nobodyさん
12/01/05 23:21:33.78
知っているのか雷電
308:nobodyさん
12/01/05 23:22:45.03
釣りってのは能力の高い人間にしか出来ないわけで、ニートおっさんがやってるのは自爆ショー
常人だったら死にたくなるレベルの赤っ恥でも、それに気付く能力が無いので無敵とも言える
309:nobodyさん
12/01/05 23:25:35.71
エスケープを保証してくれるって言っても
自分でdbクラス書く時はもともとそういう風に書くし、
mysqliって言うほど良くなくね
明確なメリットが見えてこない
310:nobodyさん
12/01/05 23:26:02.65 YvCiXMC9
しかしこのスレはよく釣れるなあ!
311:nobodyさん
12/01/05 23:28:08.68 YvCiXMC9
>>232
312:nobodyさん
12/01/05 23:33:10.88
>>309
だから主目的はパフォーマンスにあるんだって。
313:nobodyさん
12/01/05 23:37:21.48
mysqli_stmt::bind_param
注意:
データのサイズがパケットサイズの最大値(max_allowed_packet)を こえた場合、types に b を 指定して
mysqli_stmt_send_long_data() を使用し、 データをパケットに分割して送信する必要があります。
とか。
これ便利になってなくね
変な制限があちこちに加わってるんだけど。
本当にいいものなのかこれは?
314:nobodyさん
12/01/05 23:44:12.21
プリペアドステートメントで得られるパフォーマンスメリットって
「同じプロセスの中でほぼ同じクエリを何度も発行する場合」だけでしょ?
そんな処理がほとんどないと思う
315:nobodyさん
12/01/05 23:45:29.12
mysql_queryなんてつかわねえからwwwwwwwwwwwwww
だからRubyやPythonにPHPはなめられるんだってwwwwwwwwwwwwwwwwwwwww
まあ止めはしねえよwwwwwwwwwwwwwwww
恥かくのはおめえらだからしらねwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
316:nobodyさん
12/01/05 23:55:28.29
>>314
ないところにニーズは生まれない
317:nobodyさん
12/01/05 23:57:16.33
>>292 == >>315
318:nobodyさん
12/01/06 00:01:59.06
>>316
phpの場合そうでもないからなぁ
クソ実装が単にみんなに使われているからという理由で使われたりする
319:nobodyさん
12/01/06 00:33:30.11
それはお前が低レベルなだけだろ
320:nobodyさん
12/01/06 00:34:16.78
いやいやw
それはない
321:nobodyさん
12/01/06 01:17:56.10 egPD7RrR
dbに関連しての質問ですが、
コネクションプーリングはどうやればいいのですか?
322:nobodyさん
12/01/06 01:19:48.56
php関係ないw
323:nobodyさん
12/01/06 10:58:36.82 9fGZTwoM
勉強してはや半年。やっとPHPの基礎がわかってきた感じで
掲示板くらいならつくれるようになったんですが、もっと腕を上げたいです。
なにかいい勉強法はありませんか?
書店に並んでいるのはどれも入門書ばかりで物足りないです。
コードリーディングというのがいいらしいですが、おすすめはありますか?
324:nobodyさん
12/01/06 11:18:14.02
>>323
フレームワークで同じものが作れるようにする
325:nobodyさん
12/01/06 11:20:45.87
フレームワークより直の関数呼び出しの方が省メモリ・高速だしできるだけ使わない方が良い。
使った方が簡単で生産性がいいなら使っても良い。
アセンブラよりC/C++を使うようなものだ。
326:nobodyさん
12/01/06 11:23:14.96
>>323
それくらい慣れたと思ってる人を対象にした本って、
セキュリティメインに書いてる本くらい。
勿論読んでおくべきだけど、
他人のコードを解析するのが一番の勉強になる。
ZendFramework なんかは他のフレームワークと違って分解されることを前提としてるし、OOPな構造なんで、
解析もしやすいし、勉強にもなる。
ちいたんみたいな小さいフレームワークを解析するってのも、解析しやすいし、ためになる技法が結構集まる。
327:nobodyさん
12/01/06 11:43:21.25
>>325
趣味とか一人で制作するのならそれでいいよ
328:326
12/01/06 11:45:07.14
自作フレームワークちっくを作るのもおすすめ。
いままで作った関数とかから、応用性があるものを探し出して、
さらに実用的になるように修正して、プロジェクトに追加する。
ちょこっとそれで簡単なシステムを作って、
命名規則やディレクトリ位置などを確定させる。
フレームワークちっくの設定を定義するファイルも作って、細かい設定を変更できるようにする。
で、これとそれとあれを丸まんまコピーして、設定少し合わせれば、
別のサーバーで1からシステム作るのが楽になるぞ。
みたいなプロジェクトを作るのが目標。
329:nobodyさん
12/01/06 11:54:44.26 DYaNhYpb
質問です。クラスのメンバと、クラスの変数を同一視させる方法ありますか。
$queue = new QUE;
$queue->push(1,2,3);
$x = $queue->pop();
print_r($x);
print_r($queue); ←ここで{2,3}を表示させたい。
class QUE {
protected $queue = array();
function pop() { return array_shift ( $this->queue ); }
function push($x) { array_push( $this->queue , $x); }
}
330: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
読み方に依るだろ。
読み込む位置が確定していたら、シークするだけの違いしかなく負荷に大差ないが。
改行位置の判定からやっていたら後ろの方が手間掛かる。