使用PHP记录用户输入和文本文件的时间

时间:2017-07-09 08:07:50

标签: javascript php jquery html

我一直在尝试创建一个HTML表单来收集用户数据并将其记录到文本文件中。我在“store.php”中放置了什么,以便将日期/时间的日志和文本框内的内容写入名为“log”的目录内的文本文件中?

此外,一旦用户点击完成后,如何使用JS(或jQuery)隐藏整个表单,以防止他们再次提交表单,但仍允许他们查看页面的其余部分?

表单的现有HTML是:

  <form method="post" action="store.php">
   <input placeholder="Name" id="Name" type="text"/><br>
   <input type="submit" value="Done"/>
  </form>

2 个答案:

答案 0 :(得分:2)

根据store.php中发生的情况,您必须使用PHP的文件系统函数(如fread(),file_get_contents(),file_put_contents()等),打开/创建文件,将数据写入其中,关闭并保存它

http://php.net/manual/en/ref.filesystem.php

对于JQuery部分,请查看表单事件。简单的例子:

$('#myForm').on('submit', function() {
   $(this).hide();   
}

或发布更多代码,我们可以为您提供更好的解决方案。

编辑: 这是我从一个旧项目中提取的函数:

function write_log( $error,$logtype="error" ) {
// get date and time for the log entry
$t = time();
$date = date('d/n/Y H:i:s', $t);

// prepare log string
$log = "#{$date} : {$error}<br>\n";

// decide what type of log to write to
$type = $logtype;    
switch($logtype) {
    case("error"):
        $type = "errors";
        break;
    case("user"):
        $type = "users";
        break;
    case("db"):
        $type = "db";
        break;
}
$log = trim( $log );    
$filename = LOG_PATH."/{$type}_log.txt";  
file_put_contents($filename, $log, FILE_APPEND | LOCK_EX );       
}// end of function

它是一样的。第一个参数采用日志内容,第二个可选参数采用日志类型(或默认为“错误”)

希望有所帮助。

答案 1 :(得分:0)

您应该使用PHP freadfwrite函数 为了隐藏表单,首先需要禁用表单默认操作,然后通过AJAX传递参数然后隐藏它。

$("#myForm").submit(function(e){
    e.preventDefault();
    $.ajax(...)
    .done(function(){
        $("#myForm").fadeOut();
    });
});