我是菜鸟,所以请耐心...我遇到了一个问题,我的Python脚本(由PHP从Apache服务器启动)忽略了除第一个参数以外的所有其他参数。
PHP GETS变量,在像这样启动脚本时将它们用作参数:
echo exec( "sudo python3 /var/www/html/motor_arg.py $n1 $t1 $n2 $t2" );
Python代码开始,但除$n1
以外的所有内容均被忽略,股款结束。当我像这样从shell运行脚本时:python3 motor_arg.py 10 5 20 5
效果很好...
老实说,我不知道为什么会这样。非常感谢您的帮助。
HTTP GET请求变量以"superglobal"结尾。您最可能需要这样的东西:$n1 = $_GET['n1']
或$n1 = $_REQUEST['n1']
。我希望您真的信任向此服务器发出请求的任何人。
您还将遇到exec('sudo')
的问题。这里有一些答案,也很不安全。 sudo in php exec()