2013-01-15 48 views
1

我試圖創建一個包含一些infotmation一個日誌文件,我的代碼,

$info = date("Y-m-d H:i:s")." ".$_SERVER['REMOTE_ADDR']."    ".$_SERVER['REQUEST_METHOD']."   ".$_SERVER['REQUEST_URI']."   ".$_SERVER['HTTP_REFERER']."\n".$_POST."\n"; 


$req_dump = print_r($info, TRUE); 
$fp = fopen('request.log', 'a'); 
fwrite($fp, $req_dump); 
fclose($fp); 

代碼記錄這樣的信息,

2013年1月15日17點10分15秒192.168.0.50 POST的index.php http://www.domain.com/article/12 陣列

的$ _POST值是數組,沒有值正被達姆PED。 如何解決此問題並獲取記錄的$ _POST值?

在此先感謝

+2

要在$ _POST var上使用'print_r'。 – jeremyharris

回答

1

您只是將$_POST添加到您的字符串中。這將它轉換爲單詞"Array",因爲這是Array - > String轉換的工作方式。

你想要print_r數組,而不是連接字符串。

$info = date("Y-m-d H:i:s")." ". 
    $_SERVER['REMOTE_ADDR']."    ". 
    $_SERVER['REQUEST_METHOD']."   ". 
    $_SERVER['REQUEST_URI']."   ". 
    $_SERVER['HTTP_REFERER']."\n". 
    print_r($_POST, true)."\n"; 

$fp = fopen('request.log', 'a'); 
fwrite($fp, $info); 
fclose($fp); 
+0

這樣做是因爲我想要的工作。謝謝你eveyone的投入。 –

+0

很高興我能幫忙:-) –

2

使用var_export()

$postString = var_export($_POST, true); 
    $info = date("Y-m-d H:i:s")."" .$_SERVER['REMOTE_ADDR']." ". 
            $_SERVER['REQUEST_METHOD']." ". 
            $_SERVER['REQUEST_URI']."". 
            $_SERVER['HTTP_REFERER']."\n". 
            $postString."\n"; 
+1

將'$ var_export'更改爲'var_export',我將刪除我的答案,因爲你的答案會更好。 –

+0

@BogdanBurim Doh!接得好! – Ray

+0

完成........... –

-1

嘗試file_put_contents功能。 fwrite預計只有一個字符串作爲參數,而你傳遞一個數組

+0

他正在傳遞一個字符串。該字符串包含'$ _POST'數組,因此字符串中包含'Array'。 – jeremyharris

-1
$info = date("Y-m-d H:i:s")." ".$_SERVER['REMOTE_ADDR']."    ".$_SERVER['REQUEST_METHOD']."   ".$_SERVER['REQUEST_URI']."   ".$_SERVER['HTTP_REFERER']."\n".var_export($_POST)."\n" 
0

你把從$ _POST數組中的一個字符串變量,這就是爲什麼你的陣列。 嘗試這樣的事情。

$info = date("Y-m-d H:i:s")." ".$_SERVER['REMOTE_ADDR']." ".$_SERVER['REQUEST_METHOD']."   ".$_SERVER['REQUEST_URI']."   ".$_SERVER['HTTP_REFERER']."\n"; 
$info .= var_export($_POST) . "\n"; 
1

試試這個:

$info = date("Y-m-d H:i:s")." ". 
     $_SERVER['REMOTE_ADDR']."    ". 
     $_SERVER['REQUEST_METHOD']."   ". 
     $_SERVER['REQUEST_URI']."   ". 
     $_SERVER['HTTP_REFERER']."\n". 
     print_r($_POST, TRUE)."\n"; 


//$req_dump = print_r($info, TRUE); 
$fp = fopen('request.log', 'a'); 
fwrite($fp, $info); 
fclose($fp); 

你需要做的print_r$_POST,而不是$info

0

您是否嘗試過使用

var_dump($_POST); 

相關問題