【发布时间】:2018-02-05 06:07:14
【问题描述】:
我用表格制作了一个数据输入网页。 我想使用网页中的值在服务器上运行 python 脚本并在服务器上创建一个输出文件。 现在我可以输入数据并提交网页了。但是python脚本没有在服务器上创建输出文件。
以下是我的脚本。
首先,我连接到 index.php 并在表单上输入一些文本并提交
下面是index.php
<html>
<body>
<form action="1test.php" method="get">
<input type="text" name="name" />
<input type="submit" />
</form>
</body>
</html>
其次,1test.php 使用 index.php 上的表单值执行 test.py。
下面是1test.php
<?php
$name = $_GET['name'];
$cmd = "python test.py " . $name;
echo $cmd;
exec($cmd);
?>
我的脚本在 python 脚本之前工作。我可以在网上看到 $cmd 值。但是php不能执行python。 python脚本具有执行权限。 最后,python 脚本在服务器上创建文件。表单值将是 python 上的数组数据。
下面是test.py
import sys
sip = sys.argv[1]
with open("doc.txt",'w') as f:
f.write(sip)
f.close()
【问题讨论】:
-
我尝试使用文件完整路径。但是不行。
-
哪个用户拥有 python 脚本?小心命令注入,这不是很好。例如:
Hello; rm ../ -rf -
python 脚本所有者是用户。该用户可以直接在服务器上执行脚本
-
那个问题的答案是行不通的。
-
您是否尝试过检查错误,例如
exec...的输出?