Для моего проекта домашней автоматизации (с использованием Raspberry Pi с сервером Apache и веб-страницей конфигурации) я пытаюсь сохранить настройки флажка в файл на стороне сервера, но не могу заставить его работать в моей ситуации.
Используя php с fopen () и fwrite (), я могу сохранить любую строку в текстовом файле, это не проблема. Проблема в том, что форма использует POST, и я не могу понять, как написать свой код таким образом, чтобы:
1) сам флажок установлен на значение, которое в данный момент присутствует в текстовом файле («запоминание и извлечение» настройки);
2) параметр, который был только что установлен пользователем, записывается в файл, что происходит при загрузке страницы (POST).
Эти действия, похоже, мешают друг другу, потому что php на стороне сервера. Если страница обновляется или посещается в первый раз, проблем нет, проблема заключается в перезагрузке страницы после отправки формы.
Неважно, какой метод или язык я использую, чтобы сохранить настройки флажка на стороне сервера.
Какой метод может помочь?
Вы можете установить файл, выполнив что-то вроде этого, предполагая, что файл содержит только значение 1 или 0, если флажок должен быть установлен или нет (вызовите этот скрипт при отправке формы):
if(isset($_POST["mycheckboxname"])){
file_put_contents('file.txt', '1');
}
else{
file_put_contents('file.txt', '0');
}
Это поставить флажок в правильном формате на экране. Используйте это при отображении формы флажка.
$checked = file_get_contents('file.txt');
echo '<input type="checkbox" name="mycheckboxname" ';
if($checked=='1') echo 'checked ';
echo '/>';
Обязательно установите правильные разрешения при создании файла, чтобы у процессора PHP был доступ для записи в него.
Можете ли вы опубликовать код fopen (), fwrite ()? Если вы отправляете POST на эту php-страницу, вы можете получить сообщение, содержащееся в вашем HTML-элементе, так:
<?php
$message = $_POST['textarea_value_name'];
...