2012-04-13 4 views
0

共有サーバー上で実行しているときに何らかの理由で、機会に、私は私のPHPコードから、次の致命的なエラーが出ます:セッションは最大実行時間を超えてIDを再生成しますか?

Fatal error: Maximum execution time of 30 seconds exceeded in C:\HostingSpaces[username][subdomain]\wwwroot\index.php on line 8

、その行だけです:

session_regenerate_id(); 

この問題は可能かもしれません共有サーバーでホストされているコードとリソースが利用できないまたは、この問題の原因がいくつかありますか?

共有サーバーなので、PHPの設定を変更することはできません。

EDIT:

ライン8の前にのみ行は、モデルオブジェクトのためのいくつかのrequire_once線です。唯一の他の行はsession_start()です。

PHPの設定を確認しましたが、session.save_handlerはローカル値とマスター値の両方のファイルです。ファイルを使用しているので、ディスクから読み書きしようとしている可能性がありますか?

+0

セッションファイルまたはデータベースはベースですか? –

+0

どうすればわかりますか? – Ivan

+2

もっとコードを提供できますか?おそらく8行目の前の行ですか? セッションハンドラは、デフォルトでファイルを使用します。 'phpinfo();'を見れば、二重チェックができます。 ( "session.save_handler"を探してください) – ghbarratt

答えて

1

あなたの疑問にお答えしますと、あなたの問題はパフォーマンスとリソースの問題かもしれませんが、私はそれが行8で停止しているのが奇妙なことがわかります。コードの残りが非常に最小限。

タイムアウトが異なる行に発生するようにコードを変更しようとしましたか?たとえば、sleep(25);を追加し、その行に致命的なタイムアウトが発生していないかどうかを確認できます。

また、最大実行時間制限を設定できないことは確実ですか?私はあなたが共有のphp.iniを変更できない場合でも、あなたはこれらの他のオプションの1つを介してmax_execution_timeを設定することができることを疑うでしょう:あなたのコードでset_time_limitを使用して.htaccess file

  • php_value max_execution_timeディレクティブを設定

    • あなたのコード私はあなたが0(ゼロ)に設定している場合max_execution_timeの値/引数は秒単位であり、そして信じる

    その後、NOの実行時間制限にini_set and max_execution_timeを使用して使用されます。 (ゼロを使用するのが安全かどうかはあなた次第です)

  • 関連する問題