2013-01-15 44 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); 

相关问题