PHP - 传递session_id时脚本不通过shell_exec完成

PHP - Script don't finish via shell_exec when passing session_id

提问人:Georg 提问时间:11/5/2023 更新时间:11/7/2023 访问量:35

问:

嗨,伙计们,

如果我通过 shell_exec 调用 php 脚本并通过参数传递session_id,如果我在第二个脚本中使用“session_id(previous_session_id);”和“start_session();”调用session_id,则调用的 php 脚本不会终止。 第二个脚本在点 “session_start();” 停止。

脚本 1(执行程序 .php)

<?php
  session_start();
  $sessionID = session_id();
  $return = shell_exec('php '.__DIR__.'/job.php sessionID='.$sessionID);
  print_r($return);
?>

脚本 2 (job.php)

<?php
  parse_str($argv[1], $params); //Get params
  
  session_id($params['sessionID']); //Set the previous session_id
  session_start(); //Start the previous session 

  $returnValues = array('Submitted Arguments'=>$argv);
  print_r($returnValues);
?>

你能帮帮我吗?

我也尝试了 session_write_close();

php 会话 shell-exec

评论

1赞 Honk der Hase 11/5/2023
“我也试过session_write_close();”如何?
1赞 brombeer 11/5/2023
会话是否通过 CLI 工作?
0赞 Georg 11/5/2023
@HonkderHase:我是个白痴。我在错误的位置上尝试了“session_write_close()”。我把它放在 exec call 之前,现在,它:)

答:

0赞 Georg 11/5/2023 #1

我是个白痴。我试错了位置。我把它放在exec调用(job_executer脚本)之前,现在,它可以:)session_write_close()

评论

0赞 Álvaro González 11/7/2023
为什么它处于错误的位置?问题中的代码甚至没有使用它。