我遇到了$ _POST和$ _GET的嚴重問題。我是新來的PHP。剛剛開始一週前。
我有一個調用PHP的動作的HTML表單。
<html><body>
<form action="ls_sample1.php" method="post">Submission ID: <input type="text" name="sub_id" />
<input type="submit"/></form>
</body></html>
我有一個PHP它接受sub_id和exectute系統命令
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
?>
<?php
$input = $_POST['sub_id'];
echo "Entered submission id is $input";
system('/auto/ash/g2k/bin/gt -F stat -s $input',$ret);
if($ret) {
echo "its invalid input because return value is $ret";
}
?>
忽略在上述代碼的命令。它就像任何其他的Unix命令一樣。當我在shell中執行時,一切正常,返回值爲0.當我在瀏覽器中執行它時,返回值是1,並且沒有執行任何操作。但提交ID正在傳遞給PHP。
瀏覽器輸出: 進入提交id爲0000268801其無效的輸入,因爲返回值是1
我在這裏缺少什麼?請幫忙。
退出時,我相信該命令會以不同的用戶身份執行:www-data通常。該用戶是否有權執行該命令? –
您是否期望'$ input'在單引號字符串中被展開? – Musa
單引號表示$輸入不會被'擴展'爲可變內容,使用雙打 – 2012-10-24 20:56:00