亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當用戶輸入是多個單詞時,PHP 不執行 bash 腳本

當用戶輸入是多個單詞時,PHP 不執行 bash 腳本

PHP
慕碼人8056858 2021-11-26 18:03:55
我正在使用 PHP 的 exec 函數來執行 bash 腳本。<?php if(isset($_POST['submit'])) {   $input = $_POST['submit'];   exec("sudo -u root sh /var/www/html/script.sh '$input'"); }?><form action="" method="POST"><input type="text" name="submit" value=""></form>如您所見,exec 命令依賴于用戶輸入。當用戶的輸入只有一個詞時,一切正常,bash 腳本接收輸入。但是,當用戶輸入多個單詞時,PHP 不會運行 exec 命令。當從命令行運行時,PHP 正在執行的完全相同的命令在多個單詞的情況下工作得非常好,所以這絕對是 PHP 的問題。
查看完整描述

2 回答

?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

我剛剛嘗試使用您的代碼和我的腳本來測試它,如下所示:

printf "$1\n" >> f.txt

有效。唯一的版本是<input type="submit">提交表格。


查看完整回答
反對 回復 2021-11-26
?
莫回無

TA貢獻1865條經驗 獲得超7個贊

如果你把1 2 3結果應該是1 2 3。檢查下面的代碼


/var/www/html/script.sh


#!/bin/sh


for i in "$*"

do

   echo $i

done

測試.php


<?php


 if(isset($_POST['submit']))

 {

   $input = $_POST['submit'];

   print exec("sh /var/www/html/script.sh $input");

 }

?>


<form action="" method="POST">

<input type="text" name="submit" value="">

</form>


查看完整回答
反對 回復 2021-11-26
  • 2 回答
  • 0 關注
  • 167 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號