2014-02-10 248 views
-2

我試圖用輸入框中的值更改網絡配置。當頁面加載時,它們顯示字段的地址,並且它們可以由用戶編輯。當用戶點擊更新按鈕時,它們必須更改爲新值。我無法將參數傳遞給服務器。我有一個bash腳本,它改變了/etc/network/interfaces文件,但我無法用正確的值更新文件。如何將參數從php傳遞給bash腳本

<?php $mask=shell_exec("some grep for netmask' "); ?> 
<?php $gateway=shell_exec("some grep for gateway"); ?> 
<?php $ip=shell_exec('hostname -I'); ?> 
<?php $domain=shell_exec('hostname -d'); ?> 

<tr><td>Mask</td><td><input name="mask" value="<? echo $mask ?>"</input></td></tr> 
<tr><td>Gateway</td><td><input name="gateway" value="<? echo $gateway ?>"</input></td></tr> 
<tr><td>Address</td><td><input name="ip" value="<? echo $ip ?>"</input></td></tr> 
<tr><td>Domain</td><td><? echo $domain ?></td></tr> 
<tr><td>Update</td><td><form name="input" method="post"> 

回答

0

所以基本上你需要修改一個文件?首先你需要考慮的是,php是由用戶運行的,並且該用戶應該有足夠的權限來訪問和修改bash腳本文件。 然後你只需要讀取文件,修改參數然後回寫。由於我們沒有你的bash腳本的代碼,我們不能幫你操作它,但你的php代碼應該看起來像這樣:

<?php 
$bashscript =file_get_contents("yourbashfile.sh"); // read the bash script 
//code to manipulate your bash script with the data in $_POST 

file_put_contents("yourbashfile.sh",$bashscript); // and put it back 
?>