我需要对代码示例进行故障排除,但似乎找不到任何错误。
$date = $_POST['date'];
$strcommand = "python3 python.py ".$date.""; //date argument is passed to python
echo $strcommand;
$command = shell_exec($strcommand);
echo $command; //proceeds a lot of calculations and then sends an automatic mail with python
使用此代码示例时, Python会运行,但邮件不会发送。我可以说它运行是因为python返回了print()
语句,这些语句显示在浏览器中。 但是,当发生错误时,我不会从系统收到任何错误消息!
这是我尝试识别错误的方法:我从浏览器中复制了$ str命令,并将其输入命令行(仅用相应的字符串替换$date
),完全相同的目录位于php文件所在的位置,并猜测是什么,python按预期运行,并且邮件已发送。
如何识别此错误?
答案 0 :(得分:1)
如果将错误消息打印为标准错误而不是标准输出,则需要重定向它,以便可以在PHP中捕获它。
$date = escapeshellarg($_POST['date']);
$strcommand = "python3 python.py $date 2>&1";