バックグラウンドプロセスを使用する場合、セッション変数は機能しますか?
私は2つのphpスクリプトを持っています-index.php:
session_start();
$_SESSION['test'] = 'test';
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("C:/xampp/php/php-cgi.exe -f C:/xampp/htdocs/sand_box/background.php".session_id(), 0, false);
/*
continue the program
*/
およびbackground.php:
session_id($argv[1]);
session_start();
sleep(5);
$test = $argvs[1];
$myFile = "myFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, $test);
fclose($fh);
バックグラウンドプロセスでmyFile.txtが作成されますが、セッション変数は機能しません。私は他のいくつかのテストを行いましたが、どのような場合でも機能しません。誰もが理由を知っていますか?
バックグラウンドプロセスの使用の制限ですか?
コードを編集しましたが、問題は、引数として変数を渡すことができないことです。$argvは常に空です。
私はついにそれを解決しました、register_argc_argvはphp.iniで有効にされなければなりません!