Php 如何将文本框值传递给bash脚本
这是我的第一个问题,CMIIW: 这里是我的php脚本示例Php 如何将文本框值传递给bash脚本,php,bash,shell,cgi,Php,Bash,Shell,Cgi,这是我的第一个问题,CMIIW: 这里是我的php脚本示例 <form method="GET" action="/var/www/cgi-bin/mode2.sh"> <table align="center" nowrap> <tr>><td>IP address :</TD><TD><input type="text" name="ip"></td></tr> <
<form method="GET" action="/var/www/cgi-bin/mode2.sh">
<table align="center" nowrap>
<tr>><td>IP address :</TD><TD><input type="text" name="ip"></td></tr>
<tr><td>netmask :</TD><TD><input type="text" name="ip2"></td></tr>
</tr></table>
<input type="submit" value="Send">
<input type="reset" value="Reset"></p></form>
我想从web浏览器输入文本框值,例如IP和netmask,然后将值发送到bash并保存到ifcfg-eth0文件。我知道这听起来很危险,我只是想学习。有什么建议吗?不要让action属性指向要运行的shell脚本,而是让action属性指向php文件,如
<form method="GET" action="UserInputIPAddrPHP.php">
使其可执行:
me@somewhere$ chmod +x mode2.sh
希望这对你有帮助
谢谢您不应该将bash用作cgi脚本。 但如果确实需要,您可以通过操纵变量
$QUERY\u STRING
#!/bin/bash
echo Content-type:text/plain
echo ""
read IP MASK <<< $(echo $QUERY_STRING | sed -r 's/&?ip2?=/ /g')
#/bin/bash
回显内容类型:文本/普通
回声“”
读取IP掩码这不会像这样工作,至少您需要将操作设置为web服务器可以访问的路径,在您的情况下可能是:/cgi-bin/mode2.sh
。然后web服务器可能会将mode2.sh
作为文本文件显示给您,除非您有一些特殊的配置,允许web服务器执行shell脚本。我的示例php,我剪切了我的脚本。有什么帮助吗?我试着按照您的步骤操作,但仍然无法将值发送给bash。UserInputIPAddrPHP.php sript:$sh=“/path/to/mode2.sh”.escapeshellarg($IP_Addr)。”.escapeshellarg($NetMask);exec($sh,$output=array(),$return\u value)
bash脚本:echo=echo“IPADDR=$1”>/etc/sysconfig/network scripts/ifcfg-eth0 echo“NETMASK=$2”>/etc/sysconfig/network scripts/ifcfg-eth0
@Haruru请找到下面的脚本,将用户输入(IP,NETMASK)重定向到文件/etc/sysconfig/network scripts/ifcfg-eth0 IP=“$1”;网络掩码=“$2”;echo“$IP”>>/etc/sysconfig/network scripts/ifcfg-eth0 echo“$NetMask”>>/etc/sysconfig/network scripts/ifcfg-eth0希望这可能会帮助您感谢您,所以在发送到bash脚本之前,请尝试打印变量的值,即打印$IP和$Netmask@Haruru欢迎光临。有什么需要帮忙的请告诉我
#!/bin/sh
command "$1" "$2"; # command is actual command you want to run like cp,mv etc
me@somewhere$ chmod +x mode2.sh
#!/bin/bash
echo Content-type:text/plain
echo ""
read IP MASK <<< $(echo $QUERY_STRING | sed -r 's/&?ip2?=/ /g')