Самый простой способ хранения данных с веб-сайта (на стороне сервера)
У меня очень простой веб-сайт (который на самом деле является одной страницей), есть одно поле ввода и кнопка.
Мне нужно хранить данные, представленные пользователями где-то на стороне сервера. Совершенным способом может быть простой текстовый файл и новые строки, добавленные к нему после каждого нажатия кнопки. Файл журнала будет также в порядке.
Насколько я понимаю, это невозможно с самим JavaScript. Я ищу простое решение, желательно без серверного программирования (но если это необходимо, оно должно быть максимально простым и готовым к работе). Я могу использовать некоторые побочные услуги, если это может быть полезно.
Пожалуйста, помогите.
Заранее спасибо.
UPD. Просто хочу перефразировать главный вопрос. Мне не нужно что-то хранить на стороне сервера. Мне нужно собрать некоторые данные от пользователей. Является ли это возможным? Было бы также хорошо, если он, например, будет просто отправлен на мой e-mail.
Ответы
Ответ 1
Для очень простой формы-сервера-журнала script:
Ваша форма:
<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
.
Follow-Up
Если вам не обязательно нужно хранить его на сервере (вы упомянули письмо), вы можете использовать следующее вместо PHP script:
<?php
$to_email = '[email protected]';
$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: /');
Ответ 2
Вы не можете хранить информацию на сервере без какой-либо стороне сервера script.
В хранилище два хранятся данные, на клиенте и на сервере.
На стороне клиент существует множество способов от куки файлов до Store.js, однако это звучит как вы хотите сохранить информацию на сервере.
Для хранения на сервере вам потребуется какое-то приложение, которое может получать сообщения из javascript/http и сохранять их в файле.
В вашем случае будет очень простой PHP script, как показано ниже:
<?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);
}
?>
Ответ 3
Как насчет того, чтобы сбрасывать JSON в файл с PHP, а затем загружать его по запросу?
Как безопасно записывать данные JSON в файл с помощью PHP
Ответ 4
Если вы хотите получить данные, отправленные на ваш адрес электронной почты, существует несколько бесплатных сервисов, которые могут это сделать без установки каких-либо приложений на стороне сервера... PHP или CGI script все еще используется, но он размещен на услуга, а не вы.
Все, что вам нужно сделать, это вставить код на свой сайт, а затем все отправленные данные будут отправлены на ваш адрес электронной почты.,
У многих людей нет ноу-хау, чтобы сделать это самостоятельно, или их хостинг-сервис не позволит отправлять почту. Вот почему эти службы существуют. И, конечно, большинство из них поддерживаются объявлениями, которые помещаются в электронное письмо, которое вы получаете из формы.
В любом случае, вот ссылка на хороший сервис, который я нашел. Вы можете также "Бесплатная обработка формы" Google, чтобы найти больше.
https://secure.tectite.com/hf/auth/GetStarted?WWWTECTITE
Надеюсь, что это поможет.