Хранение значения флажка на стороне сервера

Для моего проекта домашней автоматизации (с использованием Raspberry Pi с сервером Apache и веб-страницей конфигурации) я пытаюсь сохранить настройки флажка в файл на стороне сервера, но не могу заставить его работать в моей ситуации.
Используя php с fopen () и fwrite (), я могу сохранить любую строку в текстовом файле, это не проблема. Проблема в том, что форма использует POST, и я не могу понять, как написать свой код таким образом, чтобы:

1) сам флажок установлен на значение, которое в данный момент присутствует в текстовом файле («запоминание и извлечение» настройки);

2) параметр, который был только что установлен пользователем, записывается в файл, что происходит при загрузке страницы (POST).

Эти действия, похоже, мешают друг другу, потому что php на стороне сервера. Если страница обновляется или посещается в первый раз, проблем нет, проблема заключается в перезагрузке страницы после отправки формы.
Неважно, какой метод или язык я использую, чтобы сохранить настройки флажка на стороне сервера.

Какой метод может помочь?

3

Решение

Вы можете установить файл, выполнив что-то вроде этого, предполагая, что файл содержит только значение 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 был доступ для записи в него.

2

Другие решения

Можете ли вы опубликовать код fopen (), fwrite ()? Если вы отправляете POST на эту php-страницу, вы можете получить сообщение, содержащееся в вашем HTML-элементе, так:

<?php
$message = $_POST['textarea_value_name'];
...
1

По вопросам рекламы [email protected]