2

この問題についていくつかの調査を行った後、満足のいく修正が見つかりませんでした。

問題は、GET 要求をプログラムで実行していることです。リクエスト自体は正常に機能し、リクエストされたページも同様に機能します。要求されたページ内で他のアクションを実行する前に、有効なログインを確認する必要があるため、セッション Cookie を送信してセッションの ID を受け取りましたが、これも正常に機能します。しかし、*session_start( )* を呼び出すとすぐに、リクエストは実行時間制限の 60 秒を超えます。ただし、要求されたページに直接アクセスすることは問題なく機能します。

これは重要な注意点かもしれません: リクエストしているページは、同じチェックのためにセッションも使用します。

要求されたページを「リモート」/「スタンドアロン」/どのように呼び出したいかという理由は、AJAX 経由でもアクセスできるようにしたいからです。単にファイルをインクルードして、ファイルが直接呼び出されているかどうかを確認するだけでも機能すると思いますが、現在はこの方法で実行しており、ほぼ満足しています。

私の質問は次のとおりです: session_start がスクリプトをクラッシュさせる理由を誰か教えてもらえますか? そして、誰かがこれに対するパッチを知っていますか?

4

1 に答える 1

2

セッションは PHP でブロックされています。つまり、同じセッションを使用する同じホストで 2 つのリクエストを実行すると、最初のリクエストが完了するまで、そのうちの 1 つがブロック (待機) されます。

あなたの状況では、プログラムによる GET リクエストがクライアントのセッション ID を使用している場合、2 つのスクリプトが互いにブロックしている可能性があります。一方が他方を呼び出しているため、「子」スクリプトは無期限に待機します。

プロジェクトを知らずに解決策を提案するのは難しいですが、クライアントのセッション ID を使用してプログラムで GET 要求を行うのは適切ではないと感じています。その行動を変えることができるかもしれません。

于 2011-08-15T15:47:16.367 に答える