写入PHP文件

时间:2018-02-04 01:45:12

标签: php file

我试图将基本错误表单写入文件,但是当我提交文件时,我的PHP总是崩溃。我已经尝试了一些基本的错误修复,例如if语句是否正在发生,如果我使用的所有变量都不为空等等......

在我的代码中,所有字符串变量都是有效的,我100%确定它们不会导致错误。

我通过错误测试将其减少为行

 $destination  = fopen($filename,"w");

 $fclose($destination);

我的代码:

  if(isset($_POST['submit']) && $_POST['name'] != "" && $_POST['email'] != ""){
    $filename = "message_" . date('Y-m-d H:i:s') . ".txt";
    $issueType = "Type of issue: " . $_POST["issues"] . "\r\n";
    $submitter = "Submitted by: " . $_POST["name"];
    $email = "Email ID: " . $_POST["email"];
    $time = "Submitted at: " . date('Y-m-d H:i:s') . "\r\n";
    $message = "Details: " . $_POST["details"];


    $destination = fopen($filename,"w");
    fwrite($destination,"Issue Alert!");
    fwrite($destination,$issueType);
    fwrite($destination,$submitter);
    fwrite($destination,$email);
    fwrite($destination,$time);
    fwrite($destination,$message);
    $fclose($destination);
  }

我实施的任何其他代码都无关紧要,因为我已将这些代码视为错误点。

当我尝试使用基本的硬编码字符串时,我不会遇到任何错误。感谢所有帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

尝试更改$filename,就像你写的那样

$filename = "message_" . date('Y-m-d H:i:s') . ".txt";

因为您无法使用冒号(&#39; <&#39; 来自&#39; H:i:s&#39; )在文件名中。

也许你可以试试这个:

$filename = "message_" . date('U') . ".txt";

您的文件名中仍有日期时间信息

但请记住,如果您的网站流量很大,也许您会在一秒内获得相同的文件名,并且之前的现有文件将被覆盖