Начал программировать на PHP не так давно, и начал писать проект Telegram Bot-а.
Столкнулся с проблемой реализации диалогового окна, и меня возник вопрос. В задании, мы должны узнать 2 входных параметра у человека. 1 - ссылка на канал, 2 - число. Эти параметры человек должен вводить в чат, после того, как сам бот скажет ему это делать. И тут у меня возникла сама проблема.
Конструкция "elseif", работает таким способом, что если выполнилась одна ветка, то по определению другие выполняться не будут. И соответственно, после ввода пользователем ссылки, мы должны спрашивать число. Если введенные пользователем данные прошли валидацию, то бот переходит к следующему шагу и задает второй вопрос.
Вопрос заключается в следующем. Когда пользователь ввёл ссылку, а потом число, как мы можем сохранять эти 2 параметра глобально? Т.е записывать эти параметры навсегда, дабы вызывать их в любом участке кода.
Единственные логический ответ мне пришёл с использованием БД, и записывать введённые данные туда. Но на сколько я знаю, в PHP можно сохранять все данные в сессию, это я бы и хотел реализовать.
Пример кода:
$saveChannelLink = '';
$saveChannelNumber = '';
if ($message === '/start') {
$method = 'sendMessage';
$send_data = [
'text' => "Привет! Я бот для анализа активности подписчиков в каналах, чатах и группах."
];
}
# Проверяем, вводит ли пользователь ссылку.
elseif (strpos($message, 'http') === 0) {
$saveChannelLink = $message;
$method = 'sendMessage';
$send_data = [
'text' => "Отлично! Отправь мне число:"
];
}
elseif (is_numeric($message)) {
$saveChannelNumber = $message;
$method = 'sendMessage';
$send_data = [
'text' => "Отлично! Ссылка: " . $saveChannelLink . "\nЧисло: " . $saveChannelNumber
];
Как я уже объяснял выше, сама конструкция elseif не готова к тому, дабы сохранять 2 параметра, и этот код вообще никак не будет сохранять и выводить ссылку. Т.к в поле $message после ввода ссылки, уже будет число,потому что пользователь 2-ым параметром вводит именно его. Какие пути решения существуют дабы обойти это? Заранее спасибо за ответы!