人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPで質問です。
mcryptで暗号化したものを復号化して、その一覧を出そうとしているのですが
何故か、無限ループのように、サーバーが止まってしまいます。
原因は何でしょうか?

ちなみに、単一で復号化した場合、ローカル環境で行った場合は問題ないのですが
Linuxサーバーで複数回連続して行った場合のみでます。

●質問者: makocan
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● 牛乳先生(tukihatu)
●200ポイント

ズバリ正解なところはわからないですが、単一で動くのに複数回で動かない場合は命令の問題ではなく件数の問題ではないでしょうか?(メモリ系)
あまりにも膨大な件数を扱うとサーバタイムアウトしてしまい処理が止まってしまいます。
(ループ関数のオーバーヘッド)
オーバーヘッドの場合は止まる前までの処理は行いますが、止まると強制的にexitした形になるのでその後のecho関数が実行されなくて何も表示されないことが良くあります。
またPHPエラーではないのでエラー文を表示しません。よってログに残りません。


どのくらいのデータを扱っているんでしょうか。配列が100とか200で止まるのであればこの問題ではないと思いますが、1000件越えならサーバのスペックによってはあるかもしれません。
解決方法はこのような考え方があります
http://ja.wikipedia.org/wiki/%E3%83%AB%E3%83%BC%E3%83%97%E5%B1%95%E9%96%8B#.E9.9D.99.E7.9A.84.2F.E6.89.8B.E5.8B.95.E3.83.AB.E3.83.BC.E3.83.97.E5.B1.95.E9.96.8B
また、以前自分が質問したものがあるのでこちらももしかしたら参考になるかもしれません。
http://q.hatena.ne.jp/1208832776

追記
すみません書き忘れ。
あと、読み込みがずーっと終わらず砂時計の状態でも、件数が多い場合は処理が続いているのかもしれません。ただ単に重いだけという可能性。
まとめて複合化したデータを表示しようとすると全ての処理が終わるまで何も表示されません。一件一件処理が終わったら表示するようにしたら動いているのが確認できるかもしれません


makocanさんのコメント
件数は、3件前後だったので、その問題では無いかもしれません。 ただ、Crypt_Blowfishに変更したら、対応出来ました。 謎ですが、どこか、自分のソースがおかしかったのかもしれません。

牛乳先生(tukihatu)さんのコメント
mcryptのインストールが不完全だったりバージョンが古かったり? ちょっと謎ですね。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ