[英]running bash code from php button
我想通過PHP在Linux服務器中測試4個文件,並且顯示結果應顯示在文本區域中。 讓我知道解決此問題的正確方法。
sh test_batch.sh
$ {dict_file} $ {locale} $ {keyboard_layout} $ {golden_test_file} $
{auto_correction_file} (optional)
if (isset($_POST['files'])) {
foreach ($_POST['files'] as $value) {
echo $dir . $value . '<br />';
$result = shell_exec('sudo sh test_batch.sh $dir .$value. ');
}
}else {
exit('No files selected');
}
}
?>
<br/>
<table>
<tr>
<td><b>Result to Display and Save:</b></td></tr>
<tr>
<td colspan="3">
<textarea disabled id="inputTextToSave" style="width:512px;height:256px" value = "'.$result.'"></textarea>`
首先,您應該避免在網絡腳本中使用sudo做任何事情。 如果有人決定在$ _POST中向服務器提供字符串“ && rm -rf /” ,並將其串聯到sudo sh test_batch.sh $ dir。$ value字符串中怎么辦? 那將是非常糟糕的一天。
相反,考慮將test_batch.sh所做的任何事情實現到某種工作腳本中,以處理排隊到該請求的請求(您可以使用Node.JS在Perl,PHP中進行此操作...有幾種方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.