2012-08-12 93 views
-2

我在PHP 5.3.15上的VPS(Linux)上運行CentOS。我需要知道如何發佈獲取數據。當我進入頁面時,它是空白的。exec with get方法

下面的代碼:

第一次嘗試:

$a = $_POST['a']; 
$c = $_POST['b']; 
$c = $_POST['c']; 
$d = $_POST['d']; 
$k = include("newb.php?a=$a&b=$b&c=$c&&d=$d"); 
exec("php newb.php?a=$a&b=$b&c=$c&&d=$d"); 

第二次嘗試:

$a = $_POST['a']; 
$c = $_POST['b']; 
$c = $_POST['c']; 
$d = $_POST['d']; 
$k = include("newb.php?a=$a&b=$b&c=$c&&d=$d"); 
exec("php $k"); 
+0

那麼,這些領域有什麼東西嗎?當你迴應他們時,你會看到什麼? – 2012-08-12 16:45:50

+0

你究竟想要做什麼?你只需要你的文件包含newb.php,但newb.php期望$ _GET PARAMS(你只有$ _POST PARAMS)? – 2012-08-12 16:46:55

+0

newb.php除了$ _GET,但我需要通過exec來完成。 – user1588878 2012-08-12 16:51:39

回答

0

無需使用的包括查詢字符串(對於不工作首發) 。查詢字符串是URI的一部分。你有什麼不是一個URI,它只是一個文件名。

包含的文件已經可以訪問已定義的變量。

P.S.你給變量的名字並不是很清楚和可以理解;)

P.P.S.你想做什麼?因爲幾乎肯定有更好的辦法。

0

查詢字符串(帶有?key=value的部分)是URL的一部分。它只能在你的地址欄中使用。您不能用查詢字符串調用命令行腳本,也不能在包含的文件中使用它們。

  • 所包含的文件,只需包括文件,這將有機會獲得你聲明的任何varaibles:

    include("newb.php"); 
    
  • 對於執行文件,傳遞參數給命令準確,你會在命令行:一次一個,用空格分隔:

    exec("php newb.php $a $b $c $d"); 
    

    然後,通過訪問它們。

注意,你在你的代碼中嚴重漏洞。您正在傳遞任意值以在命令行上執行。如果攻擊者在您的程序中發佈了"`rm -rf /`",您會盲目地刪除服務器上的每個文件。您必須從不盲目執行用戶提交的數據作爲代碼,這實際上是你在這裏做的。

+0

非常感謝。我會嘗試 – user1588878 2012-08-12 16:59:33