Задать вопрос
calirails
@calirails

Как выполнить условие в PHP?

Здравствуйте, коллеги. Есть данные, которые при поступлении в php://input данных обрабатывается инструкциями в php-файле.

В данном примере

function processMessage($message) {
  $message_id = $message['message_id'];
  $chat_id = $message['chat']['id'];

  if (isset($message['text'])) {
	$text = $message['text'];
	$lastcom = $text;

		if ($text === "/start") {
		apiRequestJson("sendMessage", array('chat_id' => $chat_id, "text" => '
Привет! Вы стартовали бота!
	', 'parse_mode' => 'Markdown'));
		} 
	
		else if ($text === "/stop") {
		apiRequestJson("sendMessage", array('chat_id' => $chat_id, "text" => '
Вы остановили бота!
	', 'parse_mode' => 'Markdown'));
		} 

		else if ($text === "Оставить отзыв") {
		apiRequestJson("sendMessage", array('chat_id' => $chat_id, "text" => '
Оставьте свой отзыв:
	', 'parse_mode' => 'Markdown')); 
		} 
// любой текст, который поступает после команды "Оставить отзыв" должен записываться в файл, пока не будет введено "Стоп"


  }

}


$content = file_get_contents("php://input");
$update = json_decode($content, true);

if (!$update) {
  // receive wrong update, must not happen
  exit;
}

//если message не является пустым, то отправляем сообщение

if (isset($update["message"])) {
  processMessage($update["message"]);
}


Вопрос такой. Мне нужно добавить команду "Оставить отзыв". То есть, как только бот получает текст "Оставить отзыв" — далее всё, что ему отправляется, допустим, записывается в файл.

Любое поступившее сообщение после того, как человек отправил "Оставить отзыв" записывается в файл. То есть выполняется цикл, до тех пор пока человек не введет "Стоп".

Как только бот получает команду "Стоп", он прекращает выполнение инструкций, которые идут после "Оставить отзыв", и уже свободно реагирует на любой введенный текст. Команда "Оставить отзыв" прекращается.

Куда именно должен вставляться код, который бесконечно выполняется, пока не поступит команда "Стоп"?
  • Вопрос задан
  • 728 просмотров
Подписаться 1 Оценить 18 комментариев
Пригласить эксперта
Ответы на вопрос 1
@nllm
Надо фиксировать текущее состояние пользователя бота, с кем идет диалог.
Описать правила, какие команды при каких состояниях могут выполняться.

При команде "Оставить отзыв" менять состояние на ожидание ввода отзыва. После команды "Стоп" состояние меняете на ожидание ввода команд.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы