1

我正在尝试创建一个包含一些信息的日志文件,我的代码是,

    $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-01-15 17:10:15 192.168.0.50 POST /index.php http://www.domain.com/article/12 数组

$_POST 值是数组,没有值被转储。如何更正此问题并记录 $_POST 值?

提前致谢

4

6 回答 6

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";
于 2013-01-15T16:28:17.870 回答
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_ron $_POST,而不是 on $info

于 2013-01-15T16:31:03.983 回答
1

你只是附加$_POST到你的字符串。这会将其转换为 word "Array",因为这就是 Array -> String 转换的工作方式。

您想要数组,print_r$_POST不是连接的字符串。

$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);
于 2013-01-15T16:32:42.643 回答
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";
于 2013-01-15T16:30:57.970 回答
0

你试过用

var_dump($_POST);

?

于 2013-01-15T16:31:17.123 回答
-1

试试file_put_contents函数。fwrite只需要一个字符串作为参数,并且您正在传递一个数组

于 2013-01-15T16:29:06.230 回答