当用户单击“提交”按钮时将信息捕获到日志文件

Posted

技术标签:

【中文标题】当用户单击“提交”按钮时将信息捕获到日志文件【英文标题】:Capture information to log file when user clicks 'submit' button 【发布时间】:2015-07-15 18:42:08 【问题描述】:

这个问题的解决方案很可能涉及到数据库,但不幸的是 Squarespace 还不能很好地处理许多数据库,例如 mysql

我的问题是,当网站上的用户单击“提交”按钮和管道时,是否有任何方法或代码可以实现,而无需设置数据库来捕获一些信息(用户名、IP 地址、位置、时间戳)它到一个日志文件?我确信必须有,我很抱歉没有准备好与我的问题相关的任何代码,我仍在研究解决方案。我可以为按钮提供 jQuery 代码:

<body>
  <div id="popup" align="right">
    <object type="text/html" id="terms" data="/popup-form"   style="overflow: auto">
    </object><br>
    <form>
      <input id="cancel" type="button" value="Cancel" onClick="history.go(-1);return true;"/>
      <input id="submit" type="submit" value="I Agree" />
    </form>
  </div>

  <script src="http://code.jquery.com/jquery-latest.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
  <script>
    $("form").on("submit", function(e)
      e.preventDefault();
      $("#popup, #overlay").hide();
      $.cookie("popup", "displayed",  expires: 7 );
    );
    var hasSeenpopup = $.cookie('popup');
    if(!hasSeenpopup)
      $("<div>", id : "overlay" ).insertBefore("#popup");
      $("#popup").show();
    
  </script>
</body>

【问题讨论】:

如果你真的想编码,就不要使用 squarespace - squarespace 是为那些不想编码的人准备的。 决定已经做出,所以我们需要在 squarespace 环境中实现一些东西;没有其他选择。我在这里阅读有关 Parse javascript SDK 的更多信息:parse.com/docs/js/guide,有人知道它在 Squarespace 中的工作情况吗? 【参考方案1】:

使用 jQuery 使用 AJAX 发送数据

$("form").on("submit", function(e)
    //your previous code
    $.ajax(
         type: "POST",
         url: "myform.php",
         data: 'form': $("form").serialize(),
         success: function(message) 
            //do whatever
         
      );
   return false;
);

然后将myform.php和write the data中的$_POST处理成some.log

$string = '';

$date = date('Y-m-d H:i:s');

$ip = '';
if (!isset($_SERVER['SERVER_ADDR'];))
   $ip = $_SERVER['SERVER_ADDR'];

$string = $date.' : '.$ip.PHP_EOL;

file_put_contents('some.log', $string,  FILE_APPEND);

关于位置 - 可能有问题需要深入了解此post.

【讨论】:

以上是关于当用户单击“提交”按钮时将信息捕获到日志文件的主要内容,如果未能解决你的问题,请参考以下文章

我正在尝试将我的表单链接到我的 PHP 页面,并且我想在用户单击提交按钮时将用户的输入打印到该页面上

Goldengate搭建

JavaFX - 未填充文本区域时发出警报

如何在通过 log4j 创建新日志文件时将日志添加到 Syslog?

需要处理未捕获的异常并发送日志文件

在按钮单击时将文本添加到现有输入字段