[PHP-users 7148] Re: start_session() と バックグラウンド処理で質問

Akifumi Konishi php-users@php.gr.jp
Thu, 25 Apr 2002 19:46:04 +0900


小西です。

>session_start() をコールした場合は、
>ブラウザ表示はされるのですが、ブラウザから操作を行うと、
>バックグラウンドの処理が終わるまで、ブラウザが固まります。
>#下記サンプルでは、複数の shell の起動が出来ない。
>#session_destroy() を行うと、ちゃんとバックグラウンド動作します。

私もこれではまりました。

>何らかの制限なのでしょうか?。回避方法はあるのでしょうか?。

<?php
    session_start();

    echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
    echo "<HTML>\n";
    echo "<BODY>\n";
    echo "<FORM action=\"{$_SERVER["PHP_SELF"]}\" method=\"POST\">\n";
    echo "<INPUT type=\"submit\">\n";
    echo "</FORM>\n";
    echo "</BODY>\n";
    echo "</HTML>\n";

    system("/tmp/sleep.sh > /dev/null &");

    session_destroy();
    session_start();

    exit;
?>

これでどうでしょう。
sessionを使ってデータを保持している場合、system関数をコールする前に一度変数に
落とし、再度session_startしたあとにsessionに格納すれば問題ないはずです。