从网站存储数据(在服务器端)的最简单方法

18

我有一个非常简单的网站(实际上只有一个页面),其中有一个输入字段和一个按钮。
我需要在服务器端存储用户提交的数据。最佳方式是将每个按钮点击后追加到简单的文本文件中。日志文件也可以。
据我所知,JavaScript本身无法实现此功能。我正在寻找最简单的解决方案,最好不需要服务器端编程(但如果需要,应尽可能简单并且可以直接使用)。如果有用的话,我可以使用一些其他服务。
请帮忙。
提前致谢。

更新。我只是想重新表述主要问题。我并不真正需要在服务器端存储任何东西。我只需要收集一些来自用户的输入。是否可能?例如,将其发送到我的电子邮件也可以。


2
你需要在服务器端做一些事情。在我看来,使用PHP或CGI脚本最容易,因为它是自包含的。但是你有哪些可用的编程语言呢? - Brad Christie
@BradChristie 谢谢回复。最好不要使用任何东西 :) 但看起来我至少需要 PHP。:( - kardanov
4个回答

10

针对一个非常简单的表单提交到服务器日志脚本:

您的表单:

<form action="save-to-log.php" method="POST">
  <fieldset>
    <legend>Add to log</legend>
    <p>
      Message:
      <textarea name="message"></textarea>
    </p>
    <p>
      <input type="submit" value="SAVE" />
    </p>
  </fieldset>
</form>

然后将 save-to-log.php 保存。
<?php
  $log_file_name = 'mylog.log'; // Change to the log file name
  $message = $_POST['message']; // incoming message
  file_put_contents($log_file_name, $message, FILE_APPEND);
  header('Location: /'); // redirect back to the main site

如果是Unix主机,您需要将日志目录添加755权限,以便PHP可以访问并写入它。除此之外,您将拥有一个表单,它会不断将信息附加到mylog.log中。
后续:
如果您不一定需要在服务器上存储(您提到了电子邮件),则可以改用以下PHP脚本:
<?php
  $to_email = 'kardanov@domain.com';
  $subject = 'User feedback from site';
  $message = $_POST['message'];

  // this may need configuring depending on your host. If you find the email isn't
  // being sent, look up the error you're receiving or post another question here on
  // SO.
  mail($to_email, $subject, $message);

  header('Location: /');

不错!但是如果我不想把我的php代码放在另一个文件中怎么办?这还有可能吗? - Samie Bencherif
@SamyBencherif,是的,只需将代码放在页面顶部,但首先检查传入的数据,然后在呈现输出之前退出。 - Brad Christie

3

如果没有服务器端脚本,无法在服务器上存储信息。

数据可以存储在客户端和服务器上的两个不同位置。

客户端,有很多方式,从cookie到Store.js等,但看起来您想将信息存储在服务器上。

要在服务器上存储数据,需要某种应用程序,可以接收来自JavaScript / HTTP的Post请求并将其保存在文件中。

对于您的情况,下面这个非常简单的PHP脚本就非常适合:

<?php

//Was the request (post or get) parameter data supplied?
if(!empty($_REQUEST['data']) {
    $file = 'log.txt';
    $data = $_REQUEST['data']."\n";

    // using the FILE_APPEND flag to append the content to the end of the file
    // and the LOCK_EX flag to prevent anyone else writing to the file at the same time
    file_put_contents($file, $data, FILE_APPEND | LOCK_EX);

}

?>

感谢您的回复。我最近重新表述了主要问题(请参见UPD)。我真正需要的是从用户那里获取一些输入数据。如果我可以通过电子邮件获得它,那就太好了。有什么建议吗?或者您认为我肯定需要PHP吗? - kardanov

1

感谢您的回复。如果没有更简单的方法,我会尝试类似这样的东西。实际上,我重新描述了最初的问题,可能我的目的会更清楚。我只是想从用户那里收集一些输入。例如,可以通过电子邮件收到。有什么建议吗? - kardanov
2
嗯,你可以通过 AJAX http://www.tizag.com/ajaxTutorial/ajaxphp.php 将数据发送到 PHP,然后使用 mail: http://php.net/manual/en/function.mail.php 从 PHP 发送邮件。 - stamat
好的,我会尝试类似这样的东西。谢谢。 - kardanov

1
如果您想将数据发送到您的电子邮件地址,有几个免费服务可以在不安装任何服务器端应用程序的情况下完成此操作... 仍然使用PHP或CGI脚本,但由服务托管,而不是由您托管。您只需将一些代码粘贴到您的站点中,然后所有提交的数据都将发送到您的电子邮件地址。

很多人没有自己做这件事的知识,或者他们的托管服务不允许send-mail工作。这就是为什么这些服务存在的原因。当然,大多数服务都支持在从表单接收的电子邮件中放置广告。

无论如何,这是我找到的一个好服务的链接。您还可以通过Google搜索“免费表单处理”以查找更多服务。

https://secure.tectite.com/hf/auth/GetStarted?WWWTECTITE

希望这能帮到你。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接